Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

[PHP/MYSQL] Datensatz aus Liste löschen und zurückkehren

  Alt 16. Nov 2009, 08:47
Ich habe ein Problem eher konzeptioneller Natur.

Es gibt zwei Skripte. In dem einem wird eine Auswahl getroffen, diese Auswahl wird an ein zweites Skript übergeben. Dieses zweite Skript führt mit Hilfe dieser Auswahl eine Abfrage durch und stellt das Ergebnis in einer Tabelle dar. In dieser Tabelle gibt es für jede Zeile Links, um den entsprechenden Datensatz anzuzeigen, zu bearbeiten oder zu löschen. Anzeigen und bearbeiten ist kein Problem, da dazu weitere Skripte aufgerufen werden. Probleme habe ich mit dem Löschen.

Bisher wird dazu ein drittes Skript aufgerufen, welches den Datensatz löscht und dann eine separate Seite anzeigt. Von dort kann man jetzt zur Startseite zurück oder, wenn man zurück navigiert zur Seite mit der Ergebnistabelle der Abfrage. Das ist unschön.

Was ich gerne hätte: Man löscht einen Datensatz und dann wird wieder die Seite mit der aktualisierten Ergebnistabelle geladen. Nur wie bekomme ich das hin? Die Daten werden per Post an das zweite Skript übergeben.

Etwas Quellcode:
Erste Skript:
Code:
<?php         
         $query = "SELECT name FROM adr_kategorien GROUP BY name ASC";
         $resultset = mysql_query($query);                        
         echo "<form action='katlist.php' method=\"POST\">\n";      
         echo "<select name='kategorie' size='1'>\n";
         echo "<option value=''>keine Auswahl</option>\n";      
         while($row = mysql_fetch_object($resultset))
         {
            echo "<option value='".$row->name."'>".$row->name."</option>\n";
         }      
         echo "</select>\n";   
         echo "<input type=\"submit\" value=\"OK\"></input>\n";
         echo "</form>\n";
      ?>
Zweite Skript:
Code:
$query = "SELECT a.*, k.name as k_name
         FROM adressen a
         LEFT OUTER JOIN adr_kategorien k on k.id = a.kategorie_id
         WHERE k.name='".$kat."'
         ORDER BY a.gesch_firma, a.name, a.vorname";
      $resultset = mysql_query($query);
      if (!$resultset)
      {
         echo "<p class='error'>".mysql_error()."</p>";
         mysql_close($connection);
         include("footer.html");
         die();
      }
      
      echo "<table>";
      echo "<tr><th>Nr</th><th>Name</th><th>Vorname</th><th>Firma</th><th>Aktionen</th><tr>";
      $nr = 1;
      while($row = mysql_fetch_object($resultset))
      {
         echo "<tr>
               <td>".$nr."</td>
               <td>".$row->name."</td>
               <td>".$row->vorname."</td>
               <td>".$row->gesch_firma."</td>               
               <td>
                  [url='./details.php?action=show&id=".$row->id."'][img]./images/view.jpg[/img][/url]
                  [url='./form.php?id=".$row->id."'][img]./images/edit.jpg[/img][/url]
                  [url='./delete.php?id=".$row->id."'][img]./images/delete.jpg[/img][/url]
               </td>
            </tr>\n";
         $nr++;
      }
      echo "</table>";
Wie man sieht, wird zum Löschen das Skript delete.php aufgerufen. Ich würde jetzt aber gerne ohne den Umweg über das dritte Skript einen Datensatz löschen und die Ergebnistabelle wieder anzeigen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat