Checkboxen und Übernahme der Daten

stephandziurla

Erfahrenes Mitglied
Moin moin!

Ich hab mal eine Frage, da ich nicht so recht weiterkomme:

Ich lasse tabellarisch Datensätze (bspw. Name und Vorname) aus einer DB auslesen. Nun habe ich neben der Tabelle noch eine Spalte hinzugefügt und eine Checkbox eingefügt.

Ich möchte, dass ein Datensatz editiert werden kann mittels Anklicken der Checkbox, ich hoffe es ist so verständlich. - Das Prinzip soll ähnlich dem der phpmyadmin-Oberfläche sein, wo man ja die Tabellenansicht hat und dann bspw. einen Eintrag editieren oder auch löschen kann.
Wie kann man das realisieren, geht das mittels PHP?
Hier mein bisheriges Ergebnis:
PHP:
...
while ($row = mysql_fetch_object($erg)) {	
echo "<table width=\"50%\" border=\"1\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">
<tr>",
		"<td width=\"75%\"><div align=\"center\">",
		$row->Vorname," ",$row->Name,
		"</div></td>",
		"<td width=\"50%\"><div align=\"center\">",
		"  <input type=\"radio\" name=\"auswahl[]\" value=\"radiobutton\">
",
	"</td>","</tr>";
}
mysql_free_result($erg);
echo"</table>";
?>

Klar ist noch nicht viel, aber wie gesagt, ab da streikt mein Gehirn :(
Vielleicht kann mir ja jemand helfen, wäre echt nett...
 
Hallo!

wenn Du immer nur einen Datensatz ändern willst, würde ich die Checkbox gegen einen Textlink/Grafik tauschen. Das hat den Vorteil, dass du nicht jede Checkbox in ein eigenes Form packen musst.
Dann musst Du diesem Textlink die Datensatz-ID mitgeben:
HTML:
<a href="list.php?id=<?=$row->id;?>">Edit</a>

Dann musst du bei der Ausgabe der Datensätze prüfen, ob $_GET['id'] gesetzt ist und ob die ID des Datensatzes den du gerade ausliest gleich dem in der Variable $_GET['id'] ist.
Ist das der Fall blendest Du ein Formular zum ändern der Daten ein, ist das nicht der Fall, zeigst Du die Datensätze normal an
PHP:
<?php
 while ($row = mysql_fetch_object($erg)) {  
    if((isset($_GET['id'])) && $_GET['id'] == $row->id){
      // hier kommt das fomular hin
    }
    else { 
      // hier kommt die normale ausgabe hin
    }

Verstanden?
 

Prinzipiell schon. Hm, naja solche Checkboxen sind in der Regel für das Design natürlich "schicker" als Grafiken oder gar Textlinks. Aber die Idee mit einer kleinen Grafik ist nicht schlecht.

Und mit dem Überprüfen der ID meinst du, dass quasi gilt:
Wenn ID vorhanden, dann gehe zur Seite oder Formular, sonst zeige Datensätze nochmal an.

Richtig?
Hmm, ich werd das Ganze mal ausprobieren und dann schauen, wenn's klappt: DANKE!!
Wenn nicht, bin ich wieder hier ;) :-)
 
Zuletzt bearbeitet:
Hmm, nach dem Einfügen des Links bekam ich nur noch die Hälfte der Datensätze angezeigt, woran kann das denn liegen? An der SQL-Syntax hab ich ja nix verändert.... :confused:

PHP:
<?
$erg = mysql_query("SELECT * FROM T_Kundendaten");
$num = mysql_num_rows($erg);

while ($row = mysql_fetch_object($erg)) {     
echo "<table width=\"50%\" border=\"1\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\"> 
<tr>", 
        "<td width=\"75%\"><div align=\"center\">", 
        $row->Vorname," ",$row->Name, 
        "</div></td>", 
        "<td width=\"50%\"><div align=\"center\">", 
        "  <a href='ausgabeseite.php?ID=".$row->ID.">klick hier</a>
", 
    "</td>","</tr>"; 
} 
mysql_free_result($erg);
echo"</table>";
?>

P.S. Hab hier noch den S.shot angehangen, weil der den Link so komisch ausgibt...
 

Anhänge

  • error.jpg
    error.jpg
    4,4 KB · Aufrufe: 68
Zuletzt bearbeitet:
Moritz123 hat gesagt.:
...Dann musst du bei der Ausgabe der Datensätze prüfen, ob $_GET['id'] gesetzt ist und ob die ID des Datensatzes den du gerade ausliest gleich dem in der Variable $_GET['id'] ist.
Ist das der Fall blendest Du ein Formular zum ändern der Daten ein, ist das nicht der Fall, zeigst Du die Datensätze normal an
PHP:
<?php
 while ($row = mysql_fetch_object($erg)) {  
    if((isset($_GET['id'])) && $_GET['id'] == $row->id){
      // hier kommt das fomular hin
    }
    else { 
      // hier kommt die normale ausgabe hin
    }
...

Was sagt denn "$_GET['ID']" aus?
 
Sorry, aber ich versteh jetzt grad nicht, was du meinst.
In $_GET['ID'] ist die Datensatzid gespeichert. Du hast du in deiner Datentabelle einen Primärschlüssel 'id' oder?
 
Ja, in der DB gibts zu jedem Datensatz auch ne entsprechende ID, die auto-incrementiert wird und auf der der Primärschlüssel liegt.

Naja, speziell dieses $_GET['ID']....was bedeutet das denn?
Die zwei, drei Zeilen Code, welche du geschrieben hattest, hatte ich ausprobiert und es hat nicht funktioniert, deshalb wollte ich nochmal nachfragen...

Das Prinzip war doch so gedacht, dass ich auf nen Link klicke und sich dann beispielsweise bei überprüfter ID eine Seite öffnet. Bei falscher ID öffnet sich eine andere Seite oder man bekommt ne andere Meldung.....oder :)
 
Also ich dachte es eigentlich so:
Du lässt dir deine Datensätze in einer Tabelle schön untereinander ausgeben.
Dann klickst Du auf den Editbutton am Ende der Zeile, die Du editieren willst. Daraufhin wird die Seite neu geladen und anstelle des Datensatzes den Du editieren willst, erscheint nun in der Reihe ein Formular.
Schau mal in den Anhang, ob Du dsa so meinst.
 

Anhänge

  • formedit.gif
    formedit.gif
    10,3 KB · Aufrufe: 65
Zurück