Zum Inhalt springen

Verlinkung in einer SQL Tabelle einfügen


Empfohlene Beiträge

Hey, ich versuche gerade eine Verlinkung innerhalb einer SQL Tabelle einzufügen.
Ich schaffe es einfach nicht und finde ich Internet auch nicht wirklich weiter. 
Kann mir jemand helfen? Dankeschön! :)

Die Aufgabenstellung von mir heißt:
Diese Seite zeigt alle Bookmarks des gewählten Mitarbeiters. Hierbei genügen die Darstellung des Titels und die ersten 20 Zeichen der URL. Die URL soll direkt per Mausklick geöffnet werden können, ein zweiter Link in jeder Zeile soll auf die Seite „Bookmark bearbeiten“ führen. Außerdem soll die Seite den Namen des Mitarbeiters als Überschrift tragen und einen Link „Neues Bookmark anlegen“.

Mein Code:

<!DOCTYPE html>
<html>
<head>
<title>Marge Bookmarks</title>
<meta charset="UTF-8">
</head>
<body>

<?php
        echo " 
        <table width='´800' align='left' cellspacing='2'> 
        <TR>  
        <td ><strong>ID</strong></td> 
        <td ><strong>Bookmark</strong></td> 
        <td ><strong>URL</strong></td> 
        </TR> 
        "; 

        $verbindung = mysql_connect("localhost", "jschubert", "xx")
        or die ("Fehler im System");

        mysql_select_db("mindworks'")
        or die ("Verbindung zur Datenbank nicht möglich.");

        $abfrage = "SELECT * FROM `margebookmark";
        $ergebnis = mysql_query($abfrage);
        while ($row = mysql_fetch_object($ergebnis)) {

        echo " 
        <tr>  
        <td >$row->Nummer</td>        
        <td >$row->Bookmark</td>
        <td >$row->URL</td>
        </tr> 
        ";
        } 
        echo "</table>"; 
?>
</body>
</html>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bin mal fies: es geht bei deiner Frage um eine Aufgabe, die du lösen sollst um einen Ausbildungsplatz zu bekommen.

Dann mach mal - denn die Aufgabe soll deinen Wissensstand widerspiegeln. Ausserdem ist die Aufgabenstellung für einen Azubibewerber deutlich zu heftig.

Kurz: such dir einen anderen Ausbildungsbetrieb.

Link zu diesem Kommentar
Auf anderen Seiten teilen

9 hours ago, Kingyobachi said:

Die Aufgaben sollen nicht nur meinen Wissensstand widerspiegeln, sondern auch wie ich selbstständig mit Technologien umgehe und zielorientiert eine Aufgabe löse.

Selbstständig mit Technologien umgehen = Forenmitglieder um Hilfe bitten?


Sollte es sich wirklich um einen Ausbildungsplatz handeln solltest du dir lieber einen anderen Betrieb suchen. Das klingt ganz stark nach Ausbeutung.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das sind ganz bestimmt ganz böse Ausbeuter. Würde mich nicht wundern, wenn der Chef ein Holzbein und einer Hakenhand, sowie​ einen Papagei auf der Schulter hat.
Was fällt denen eigentlich ein Eigeninitiative zu verlangen? Wissen die denn nicht, das man nur zur Arbeit geht um auf Facebook zu surfen und alles wie von der Vogelmutter vorgekaut zu bekommen, damit man die zwei Hirnzellen die vom ganzen WoW spielen noch übrig geblieben sind bloß nicht weckt?

Ich bin empört!

Gesendet von meinem SM-N910F mit Tapatalk


Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 27 Minuten schrieb V1RTU4L:

Was fällt denen eigentlich ein Eigeninitiative zu verlangen? Wissen die denn nicht, das man nur zur Arbeit geht um auf Facebook zu surfen und alles wie von der Vogelmutter vorgekaut zu bekommen, damit man die zwei Hirnzellen die vom ganzen WoW spielen noch übrig geblieben sind bloß nicht weckt?

Man sollte da aber zwischen Ausbildung und bezahlter Arbeit differenzieren.

Die Ausbildung zum Fachinformatiker ist so ausgelegt, dass man diese ohne jegliche Programmier-/IT-Kenntnisse beginnen kann. Dann zu verlangen, dass man direkt mit HTML und SQL umgehen kann, klingt leider Gottes schon nach ziemlicher Ausbeute. Immerhin geht es in den 1 1/2-3 Jahren Ausbildung darum, dass der Auszubildene von dem Betrieb dahingehend ausgebildet wird und nicht, dass dieser ab Woche eins produktiv für ~700€/Monat mitarbeitet und das leistet, was eigentlich auf eine Juniorstelle passt.

Ein Betrieb sollte auch dahingehend "testen" beim Bewerbungsverfahren - sprich logisches Denken, Wissenserwerb, lösungsorientiertes Denken, etc pp., und nicht direkt mit Code um sich werfen und sagen "mach mal!". Und wenn so eine Aufgabe doch verlangt wird, dann sollte man sich selber der Recherche bedienen und nicht in einem Forum nach der Lösung fragen. Google zu bedienen ist das A und O als Programmierer. XD

Bearbeitet von Rienne
Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin,

ich gebe dir gleich ein paar Links mit die dir helfen könnten besseren Code zu schreiben.

Zur Strukturierung deines Codes

https://php-de.github.io/jumpto/eva-prinzip/

Startest du direkt mit HTML und baust dann irgendwann auf der Seite die Verbindung zur Datenbank auf, wenn die Verbindung scheitert wirfst du eine Fehlermeldung und beendest die Verarbeitung. In dem Fall werden dem User aber trotzdem schon die ersten Brocken an HTML dargestellt.

Wenn du die Verbindung gleich zum Anfang aufbaust wird in deinem Fall sofort die Meldung "Fehler im System" bzw. "Verbindung zur Datenbank nicht möglich." angezeigt. Das ist immer noch nicht schön, aber schonmal besser als 50:50 aus Content und Fehlermeldung anzuzeigen.

Eine andere Variante wäre es die Fehlermeldungen erst einmal abzuspeichern und dann im HTML darzustellen. Anstatt deine Tabelle anzuzeigen steht dann dort die Fehlermeldung, aber der Rest des HTMLs wird auch übertragen.

 

Genauso kannst du das auch mit dem Ergebnis deiner Abfrage machen. Bevor du dich an die Ausgabe der Daten machst, könntest du abfragen ob

- die Abfrage erfolgreicht war, oder du z.B. einen Fehler in der Syntax hattest

- das Ergebnis der Abfrage Datensätze enthält oder leer ist

Bei einem leeren Ergebnis kannst du auch einen Hinweistext "noch keine Bookmarks angelegt" statt einer leeren Tabelle anzeigen.

Bei einem Fehler wäre wieder eine Fehlermeldung möglich.

Mal als Beispiel wie ich deinen aktuellen Code strukturieren würde (auf die schnelle ohne Garantie auf Korrektheit und ohne die Datenbankverbindung umzustellen, siehe unten):

Spoiler

<?php
$errors = array();
$verbindung = mysql_connect("localhost", "user", "xx");
if (!$verbindung) {
    $errors[] = "Fehler im System";
}

if (!mysql_select_db("db'")) {
    $errors[] = "Verbindung zur Datenbank nicht möglich.";
}

$abfrage = "SELECT * FROM `margebookmark";
$ergebnis = mysql_query($abfrage);
if (!$ergebnis) {
    $errors[] = "Bei der Abfrage ist ein Fehler aufgetreten.";
}
?>
<!DOCTYPE html>
<html>
    <head>
        <title>Marge Bookmarks</title>
        <meta charset="UTF-8">
    </head>
    <body>
        <?php
        if (count($errors) > 0) {
            foreach ($errors as $error) {
                echo '<p>' . $error . '</p>';
            }
        } else {
        ?>
        <table width='800' align='left' cellspacing='2'>
            <thead>
                <th>ID</th>
                <th>Bookmark</th>
                <th>URL</th>
            </thead>
            <tbody>
                <?php while ($row = mysql_fetch_object($ergebnis)) { ?>
                <tr>  
                    <td><?= $row->Nummer ?></td>        
                    <td><?= $row->Bookmark ?></td>
                    <td><?= $row->URL ?></td>
                </tr>
                <?php } ?>
            </tbody>
        </table>
        <?php } ?>
    </body>
</html>

Dein Zugriff auf die Datenbank

https://php-de.github.io/jumpto/pdo/

Die mysql_* Funktionen sind veraltet und solltest du dir auf keinen Fall mehr anlernen. In aktuellen PHP-Versionen sind die Funktionen auch schon nicht mehr vorhanden.

PDO ist die komfortabelste Schnittstelle zur Datenbank. Es gibt auch noch mysqli, die könntest du auch nehmen... ich empfehle aber wirklich PDO.

 

Sicherheit

https://php-de.github.io/#security

In deiner Anwendung speicherst du User-Eingaben und gibst sie wieder aus. Solche Eingaben müssen immer mit Vorsicht behandelt werden weil ganz einfach Schadcode eingeschleust werden kann.

Aus der Liste solltest du dir unbedingt die Punkte "SQL-Injection" und "Cross-Site-Scripting" durchlesen und die Prinzipien anwenden. Der Punkt "Kontextwechsel" fässt nochmal zusammen warum die beiden Dinge mit unterschiedlichen Funktionen behandelt werden müssen.

 

Deine Frage

Aus deinem Code wird nicht deutlich an welcher Stelle du gerade steckst.

Den Link selbst kannst du per Insert in deine SQL-Tabelle einfügen, genauso wie auch die anderen Daten. Und mit einem Update aktualisieren.

 

Bearbeitet von PVoss
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 26 Minuten schrieb Rienne:

Und wenn so eine Aufgabe doch verlangt wird, dann sollte man sich selber der Recherche bedienen und nicht in einem Forum nach der Lösung fragen.

Beim Googlen trifft man doch eh nur auf andere Leute die bereits ähnliche Fragen in Foren gestellt haben. (Wobei ich zugeben muss, dass sich die Frage auch als nach einer Bitte um Code lesen lässt.)

Wenn er hier Fragen stellt, übt er gleich die Fragen richtig zu stellen. Die Fähigkeit wird er auch in der Ausbildung brauchen wenn er die zuständigen Kollegen nicht mit ungenauem Zeug quälen will.

Im Gespräch kann man zwar noch ein bisschen mehr nachhaken als auf schriftlichem Wege, aber irgendwann wird einem das auch zu anstrengend. Ich sehe es als gutes Ziel an, Fragen mit technischem Hintergrund klar formulieren zu können.

Zu der Frage vom TE, wie sie aktuell da steht, könnte ich ein paar Sachen nachfragen, aber schriftlich ist mir das zu anstrengend.

Bearbeitet von PVoss
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 9 Minuten schrieb PVoss:

Zu der Frage vom TE, wie sie aktuell da steht, könnte ich ein paar Sachen nachfragen, aber schriftlich ist mir das zu anstrengend.

Da liegt das Problem. Ohne Nachfragen unsererseits bzw. Präzisierung des Problems durch den TE, wird es schwer zu helfen.

Aber ich kann ja mal als HTML/PHP-Noob das aufzählen, was mir dazu einfällt:

  • Was ist mit dem "gewählten" Mitarbeiter? Wo wird der ausgewählt bzw wo wird dieser berücksichtigt?
  • Der Aufbau der Datenbank und der vorhandenen Tabellen ist uns unbekannt.
  • Was genau ist mit Verlinkung gemeint? Dass die URL auch als Hyperlink fungiert?
  • vor 11 Stunden schrieb Kingyobachi:

    "SELECT * FROM `margebookmark";

    Ist das ` dort beabsichtigt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 51 Minuten schrieb Rienne:
  • Was ist mit dem "gewählten" Mitarbeiter? Wo wird der ausgewählt bzw wo wird dieser berücksichtigt?
  • Der Aufbau der Datenbank und der vorhandenen Tabellen ist uns unbekannt.
  • Was genau ist mit Verlinkung gemeint? Dass die URL auch als Hyperlink fungiert?
  • Ist das ` dort beabsichtigt?

Zu 1) Klingt danach, als gäbe es ein Drop-Down-Menü, in der die Nutzer aufgelistet werden.
Zu 2) Die Datenbank soll selber erstellt werden. Siehe den anderen Thread vom TE:


Zu 3) Das Wort "Verlinkung" verwendet nur der TE. In der Aufgabenstellung steht, dass es Links geben soll, die zu einer weiteren Webseite führt.
Zu 4) Da fehlt wohl noch ein ` am Ende der Query. 

Ich muss aber auch sagen, dass so eine Aufgabe für jemanden, der eine Ausbildung anfangen möchte, einfach zu viel ist. So etwas stellt man vielleicht Junior Entwickler, um deren Wissen zu überprüfen aber keinen potenziellen Anwärter für eine Ausbildung. Entweder hat der Betrieb kein Plan oder die suchen wirklich eine billige Arbeitskraft.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Stunde schrieb Whiz-zarD:

Ich muss aber auch sagen, dass so eine Aufgabe für jemanden, der eine Ausbildung anfangen möchte, einfach zu viel ist. So etwas stellt man vielleicht Junior Entwickler, um deren Wissen zu überprüfen aber keinen potenziellen Anwärter für eine Ausbildung. Entweder hat der Betrieb kein Plan oder die suchen wirklich eine billige Arbeitskraft.

So sehe ich das auch. Ich würde auch nicht bei einem Betrieb, in dem man nicht weiß was der Sinn und Zweck einer Ausbildung ist, meine Ausbildung vollziehen.

Wie schon richtig mehrmals gesagt wurde, dient die Ausbildung dazu dich für solche Aufgaben vorzubereiten, sodass du sie selbstständig lösen kannst.

Das hier geht weit über "Einsteigerkenntnisse" in der Informatik, die für den Ausbildungsberuf vorausgesetzt werden, hinaus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 20 Stunden schrieb Chief Wiggum:

Dann mach mal - denn die Aufgabe soll deinen Wissensstand widerspiegeln. Ausserdem ist die Aufgabenstellung für einen Azubibewerber deutlich zu heftig.

Da kann ich dem Chief nur recht geben.

Wenn Du in der Tat erst Azubi-Lehrjahr 0 bist, sollest Du Dir in der Tat überlegen, ob das die Klitsche ist, bei der Du gerne arbeiten möchtest. Ohne die Details zu kennen, liest sich das so, als suchte eine Firma "billige Arbeitskräfte", die für einen AzuBi-Lohn jobben kommen. Und zur Belohnung dürfen die ab und zu mal in der Berufsschule auflaufen - aber auch nur dann, wenn der Chef gerade keine wichtigere Arbeit für die Leute hat.

Gegen die Anforderung ist per se nichts zu sagen. Allerdings gibt der Kontext zu denken. 

Und der Rat vom Chief ist bestimmt nicht böse gemeint. Hoffen wir, dass Du es nicht bereust dort angefangen zu haben. Aber dann bleibt uns leider nur: Told you so!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Please, nervt nicht mit eurem ausnutzen. Es ist im Gespräch abgemacht worden, dass ich noch mal mein Interesse für den Beruf zeige in dem ich entweder ein Praktikum mache, eine Aufgabe löse etc. Ich wollte insbesondere dabei etwas mit PHP machen. Außerdem ist es ein kleines Unternehmen in dem ein Freund von mir gearbeitet hat. 
Er kann mir schon sagen, was für ein Unternehmen das ist. 
Eure Vorurteile sind fantastisch. Natürlich nehme ich eure Tipps nicht böse, aber es reicht. Man muss nicht alles doppelt und dreifach zitieren und wiederholen. 

Da es nicht hervorgeht (Ja ich weiß meine Fragestellung ist schlecht und unkonkret) was meine Frage ist, erläutere ich nochmal meine Fragestellung:

Ich habe eine SQL Datenbank in meinen PHP Code aufgenommen. 
Darin befindet sich eine Tabelle mit Nummer, Seite und deren Url. 
Ich möchte, dass man in der Tabelle die Seite oder den Url anklicken kann und sich dann die jeweilige URL öffnet.
Ich suche nach keinen Code sondern nach einer Quelle wo es mir erklärt wird. 

Bearbeitet von Kingyobachi
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 23 Minuten schrieb Kingyobachi:

Ich möchte, dass man in der Tabelle die Seite oder den Url anklicken kann und sich dann die jeweilige URL öffnet.

Dann geht es um folgende Stelle, oder?

<td >$row->URL</td>

Da musst du dann nicht direkt die Url ausgeben, sondern den <a> Tage nutzen und darin das href-Attribut mit der URL befüllen.

https://www.w3schools.com/html/html_links.asp

Link zu diesem Kommentar
Auf anderen Seiten teilen

Achso ich kann direkt in der SQL Tabelle die Verlinkung reinschreiben. Gut, zu wissen. :D
Ich dachte ich muss direkt im Code den <a> Tag verwenden und die Funktion irgendwie im href-Attribut einfügen. Kein Wunder, dass es nicht geklappt hat. 

Bearbeitet von Kingyobachi
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 8 Minuten schrieb PVoss:

Wie meinst du das? In die Tabelle komm die Url, z.B. www.example.com

In deinem HTML gibst du das dann als Link aus. <a href='$url'>$url</a>

Bei der Ausgabe das Escapen nicht vergessen.

So habe ich es gemacht. Ich habe das ">" vergessen, aber er nimmt es trotzdem an. :o

SQL Tabelle.PNG

Page.PNG

Bearbeitet von Kingyobachi
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ne schreib nur die URL in die Datenbank, ohne das HTML.

Einen Link kannst du immer an der Stelle zusammenbauen an der du ihn brauchst.

Wenn du jetzt aber das HTML für den Link in der Datenbank speicherst und sich die Anforderung ändert und du nur die URL in anzeigen sollst müsstest du deinen gespeicherten Wert erst auseinander nehmen.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...