Datensatz selektieren und bearbeiten!

piumer

Mitglied
Hallo, ich bins und komme mal wieder nicht weiter! Ich hoffe, Ihr helft mir ein wenig!

Also, Ich habe nun eine dynamische Tabelle, die Daten aus MySQL enthält. Ich habe es auch schon geschaftt, jedem Datensatz einen Radiobutton in einer extra Spalte beizufügen.

PHP:
printf( "<tr align=\"left\" valign=\"middle\" bgcolor=\"#CCCCCC\" class=\"Stil1\">\n");
			printf( "<td align=\"center\" valign=\"middle\"><form name=\"choice\" method=\"post\" action=\"$PHP_SELF\"><input name=\"choice\" type=\"radio\" value=\"$UserID\" checked></td>\n");
			printf( "<td>%s</td>\n", $UserID);
			printf( "<td>%s</td>\n", $Name);
			printf( "<td>%s</td>\n", $Vorname);
			printf( "<td>%s</td>\n", $UserName);
			printf( "<td>%s</td>\n", $url);
		printf( "</tr>");

Ich möchte nun zwei Buttons anlegen, mit dem einen soll der mit dem Radiobutton selektierte Datensatz gelöscht werden und mit dem anderen editiert, also geändert werden können.

Erst mal die Löschen-Geschichte:

Ich dachte mir, der Value-Wert sollte gleich dem Wert der $UserID sein.

Und jetzt weiss ich nicht weiter!

Freue mich auf Unterstützung!

MfG Piumer
 
Original geschrieben von piumer
Ich möchte nun zwei Buttons anlegen, mit dem einen soll der mit dem Radiobutton selektierte Datensatz gelöscht werden und mit dem anderen editiert, also geändert werden können.
Warum unbedingt Buttons? Ein normaler Link tut es ja auch:

Der Link, mit dem Du einen Datensatz löschst:

Code:
<a href="admin.php?mode=delete&id=xx">Löschen</a>
Der Link, mit dem Du einen Datensatz auswählst:

Code:
<a href="admin.php?mode=update&id=xx">Editieren</a>
Erklärung: Die beiden Links sind lediglich ein Beispiel. Du erstellst eine PHP-Script ich hab sie jetzt mal admin.php genannt. Dieses Script prüft zunächst die Variable mode, die als GET-Parameter übergeben wird, und führt je nach Wert verschiedene Funktionen aus. Als zweiter Wert erwartet das Script die ID des Datensatzes, der geändert/gelöscht werden soll. Die beiden Links werden in jeder Zeile eines Datensatz mit der entsprechenden ID mit ausgegeben.

Die Datei admin.php sieht dann ungefähr so aus:

PHP:
<?
if($_GET['mode'] == "update") {
    $strSQL = "SELECT * FROM t_table WHERE id = ".$_GET['id']."";
    $data   = mysql_query($strSQL);
    // datensatz anzeigen lassen

} elseif ($_GET['mode'] == "delete") {
    /* datensatz löschen */
    $strSQL = "DELETE FROM t_table WHERE id = ".$_GET['id']."";
    mysql_query($strSQL);
}
?>
Das ist jetzt nur ein wirklich minimales Beispiel. Solle aber deutlich machen, wie das funktionieren sollte.
 
Also du hast zwei buttons der eine heißt "löschen" und der andere "ändern" richtig ?
PHP:
<input type="submit" name="Löschen" value="delete" >
<input type="submit" name="Ändern" value="edit" >

if(isset($delete)) {
//alle Aktionen zum löschen
...
}
if(isset($edit)) {
//alle Aktionen zum editieren
...
}

Somit kannst du schon mal eine Grundlegende Differenzierung treffen, welcher Button den nun gedrückt wurde. Entsprechend der Aktion kannst du nun deinen Quelltext zwischen die Klammern schreiben.

Äquivalent zu deinem Radiobutton habe ich ein dropdown

PHP:
<?php  
	  echo "<select name=state class=rahmen>";
	while($row = mysql_fetch_object($state_erg))
	{
		echo "<option value='$row->state'>$row->state</option>";
	}
	echo "</select>";
	?>

und mit $_GET[user_id] oder $_POST[user_id] (je nach verwendeter Submitform) holst du dir die ID...
 
kann connect2db.inc.php nicht includen?

Also, ich habe es jetzt mal mit Chinos Variante probiert:

Der Link lautet bei mir:

PHP:
<td class="Stil1"><?php echo "<a href=\"admin/del_user.php?mode=delete&id=$UserID\">Löschen</a></td>"?></td>

In der del_user.php habe ich stehen:

PHP:
<?PHP
    session_start();
    include("connect2db.inc.php");
    
	if($_GET['mode'] == "update") {
        $strSQL = "SELECT * FROM AdminUser WHERE id = ".$_GET['id']."";
        $data   = mysql_query($strSQL);
        // datensatz anzeigen lassen

    } elseif ($_GET['mode'] == "delete") {
        /* datensatz löschen */
        $strSQL = "DELETE FROM AdminUser WHERE UserId = ".$_GET['id']."";
        mysql_query($strSQL);
    }
?>

Das ergibt aber leider die Meldung:

Warning: Failed opening 'connect2db.inc.php' for inclusion (include_path='.;c:\php4\pear') in C:\FoxServ\www\MySite\admin\del_user.php on line 3

Was ist da nun falsch, findet er die connect2db.inc.php nicht?

Gruß, piumer
 
Re: kann connect2db.inc.php nicht includen?

Original geschrieben von piumer
Was ist da nun falsch, findet er die connect2db.inc.php nicht?
Wenn Du den Link so angegeben hast

PHP:
<td class="Stil1"><?php echo "<a href=\"admin/del_user.php?mode=delete&id=$UserID\">Löschen</a></td>"?></td>
(Du also auf die datei del_user.php im Ordner admin verlinkst) dann musst Du evtl den Pfad zur connect.php Datei angeben:

PHP:
include("../connect2db.inc.php");
Natürlich nur, wenn die Datei auch im übergeordneten Ordner liegt.
 
löscht falschen Datensatz!

Hi, so klappt es:

PHP:
include("../connect2db.inc.php");

Danke!

Aber! Er löscht immer den letzten Datensatz in der Tabelle, nicht den selektierten, egal welcher es ist!

Hm, was nun?

Gruß, piumer

( Danke, für die viele Geduld, die Ihr mit mir aufbringt, muss ja manchmal ganz schönz nervig sein! :rolleyes: )
 
Zurück