Dichti: PHP / MYSQL Bestimmter Datensatz löschen/ansehen/bearbeiten

Hallo ihr Tüchtigen,

Ich hab da eine kleinere Frage.
Bisher habe ich alles mit Probieren und endlosem Nachschlagen irgendwie hingebracht. Nun steh ich aber am Ende meines Lateins...

Mein Problem nun ist zu folgendem Code:

<?php
         include 'inc/config.php';

$db=mysql_connect($gl_datenbankhost, $gl_datenbankbenutzername, $gl_datenbankbenutzerpasswort);
 mysql_select_db($gl_datenbankname,$db);

$search_results = "SELECT * FROM moviez";
         $result = mysql_query($search_results);
         while($row = mysql_fetch_object($result))
          {
                 echo
                 "<tr><td>",
                  $row->Titel,
                 "</td>","<td>",
                  $row->Untertitel,
                 "</td>","<td>",
                  $row->Genre,
                 "</td>","<td>",
                  $row->Erscheinungsdatum,
                 "</td>","<td>",
                  $row->Sprache,
                 "</td>","<td>",
                  $row->Bild,
                 "</td>","<td>",
                  $row->Ton,
                 "</td>","<td>",
                  "<img src="../../images/buttons/search/look.png" id="small_pic">",
                 "</td><td>",
                  "<img src="../../images/buttons/search/del.png" id="small_pic">",
                 "</td><td>",
                  "<img src="../../images/buttons/search/upd.png" id="small_pic">",
                 "</td></tr>",
                 "<tr><td colspan="10">",
                 "<div id="row_spacer"></div>",
                 "</td></tr>";
                 }
?>

Ich habe hier schnell schnell eine Abfrage auf ne Datenbank mit meinen Daten gemacht.
Damit ich die alle schön in einer Tabelle Darstellen kann, hab ich ein bisschen mehr gekrizzel auf mich genommen, so funkionierts.

Jetzt wie der schlaue Tüftler sieht: Ich habe eine Tabelle mit 10 Felder. Die ersten neun werden mit Daten gefüllt. Mit den hintersten 3 Felder will ich den jeweiligen Datensatz ansehen/löschen/bearbeiten.
Nun steh ich vor der Mauer: Wie kann ich den jeweiligen Datensatz der  der Zeile auswählen?? Hoffe ihr versteht wie ich das meine.

Wäre auch froh, wenn mir jemand sagen könnte ob das ne gute Lösung ist oder ich mal wieder paranoid alles doppelt und dreifach geschrieben habe.

Gruss Dichti

  1. echo $begrüßung;

    Mit den hintersten 3 Felder will ich den jeweiligen Datensatz ansehen/löschen/bearbeiten.
    Nun steh ich vor der Mauer: Wie kann ich den jeweiligen Datensatz der  der Zeile auswählen??

    Wie identifizierst du einen Datensatz? Hast du einen Primärschlüssel? Verwende diesen, um den Aktionen mitzuteilen, womit du sie auszuführen gedenkst.

    Wäre auch froh, wenn mir jemand sagen könnte ob das ne gute Lösung ist oder ich mal wieder paranoid alles doppelt und dreifach geschrieben habe.

    Keine gute Lösung ist im Allgemeinen, Aktionen die Änderungen vornehmen, über einen GET-Aufruf vorzunehmen. Das betrifft vor allem die Aktion Löschen. Wenn beispielsweise der Aufruf einer solchen URL http://example.com/delete.php?id=foo reicht, um einen Datensatz zu löschen, hast du ein Problem mit Surfbeschleunigern, die im Hintergrund schon mal eben alle Links aufrufen um das Ergebnis für den Fall des wirklichen Aufrufs schon im Cache zu haben. Auch Linkchecker und Suchmaschinen wissen nicht, dass sie solchen Links nicht folgen dürfen. Deshalb POST für die eigentliche Aktion verwenden. Die Bestätigungsabfrage-Seite "Wollen Sie wirklich löschen?" kann natürlich per GET aufgerufen werden, da passiert ja noch nichts.

    echo "$verabschiedung $name";

    1. Hi $name;

      Wie identifizierst du einen Datensatz? Hast du einen Primärschlüssel? Verwende diesen, um den Aktionen mitzuteilen, womit du sie auszuführen gedenkst.

      Ja, die Daten werden durch eine "ID Primary Key" identifiziert.
      Nun damit hat sich mein Problem leider noch nicht gelöst. Ich hab auch schon Versuche unternommen mittels der ID den Datensatz zu fassen.

      Mir fehlt der Gedankenanstoss wie ich das anstellen soll. Ich hab nicht viel Erfahrung bis keine was Datenabfragen betrifft. Vielleicht könntest du mir einen Anstoss oder Input geben.

      Keine gute Lösung ist im Allgemeinen, Aktionen die Änderungen vornehmen, über einen GET-Aufruf vorzunehmen. Das betrifft vor allem die Aktion Löschen. Wenn beispielsweise der Aufruf einer solchen URL http://example.com/delete.php?id=foo reicht, um einen Datensatz zu löschen, hast du ein Problem mit Surfbeschleunigern, die im Hintergrund schon mal eben alle Links aufrufen um das Ergebnis für den Fall des wirklichen Aufrufs schon im Cache zu haben. Auch Linkchecker und Suchmaschinen wissen nicht, dass sie solchen Links nicht folgen dürfen. Deshalb POST für die eigentliche Aktion verwenden. Die Bestätigungsabfrage-Seite "Wollen Sie wirklich löschen?" kann natürlich per GET aufgerufen werden, da passiert ja noch nichts.

      Da diese Seite nur lokal laufen wird und keinen Zugriff von aussen kommt, wird dies wohl wegfallen. Trotzdem Danke, werd ich mir in Zukunft merken.

      Dichti

      1. echo $begrüßung;

        Wie identifizierst du einen Datensatz? Hast du einen Primärschlüssel? Verwende diesen, um den Aktionen mitzuteilen, womit du sie auszuführen gedenkst.
        Ja, die Daten werden durch eine "ID Primary Key" identifiziert.
        Nun damit hat sich mein Problem leider noch nicht gelöst. Ich hab auch schon Versuche unternommen mittels der ID den Datensatz zu fassen.
        Mir fehlt der Gedankenanstoss wie ich das anstellen soll.

        Du kannst die Aktionen-Icons als Link gestalten. Das Verweisziel wäre eine Seite, die die entsprechende Aktion vornimmt. Dieser gibst du einen Parameter mit, mit der sie den Datensatz identifizieren kann. Vom Prinzip her in der Form: <a href="view.php?id=$row->id"><img src="view.png"></a>

        echo "$verabschiedung $name";

        1. Du kannst die Aktionen-Icons als Link gestalten. Das Verweisziel wäre eine Seite, die die entsprechende Aktion vornimmt. Dieser gibst du einen Parameter mit, mit der sie den Datensatz identifizieren kann. Vom Prinzip her in der Form: <a href="view.php?id=$row->id"><img src="view.png"></a>

          Dafür könnt ich dich küssen!! Genau das war der Knackpunkt.. Hab Stunden verbracht etwa hin zu pflastern.. Isch liebe disch :)

          Danke!