Von PHP auf Mysql zugreifen

User Maik

Mitglied
Hallo
Wie kann ich von PHP auf eine Mysql Datenbank zugreifen.
Ich möche dort einen Datensatz löschen und greife somit auf die ID zu.

<td> <a href="show.php?nr=
<?
$db = mysql_connect("10.212.72.151","root");
$SQLBefehl = "delete from Daten where ID='115';";
$loechen = mysql_db_query("Bewerbung_DB",$SQLBefehl,$db);
?>">[ Datensatz löschen ]</a></td>

Das geht, ist aber unflexibel.
Ich habe auch die ID-Nummer die Variable $wert zugewiesen.
Wenn ich statt 115, den $wert nehme, lösche ich somit die gesamte Datenbank.

Wer kann mir helfen?
Danke Gruß Maik
 
PHP:
<a href="show.php?nr=$wert">Löschen</a>

// Und dann im show.php

mysql_connect(.......................);
mysql_select_db(.....................);
mysq_query("DELETE FROM table WHERE ID = $_GET['$wert']");
 
Original geschrieben von User Maik
<td> <a href="show.php?nr=
<?
$db = mysql_connect("10.212.72.151","root");
$SQLBefehl = "delete from Daten where ID='115';";
$loechen = mysql_db_query("Bewerbung_DB",$SQLBefehl,$db);
?>">[ Datensatz löschen ]</a></td>

Das geht, ist aber unflexibel.
Ich habe auch die ID-Nummer die Variable $wert zugewiesen.
Wenn ich statt 115, den $wert nehme, lösche ich somit die gesamte Datenbank.
Also ersmtal eine kleine Anmerkung zu mysql_db_query:
Anmerkung: Diese Funktion ist seit PHP 4.0.6 veraltet. Verwenden Sie diese Funktion nicht. Stattdessen sollten Sie die Funktionen mysql_select_db() und mysql_query() verwenden.
Und dann solltest Du, sofern register_globals ausgeschaltet sind, in deinem Query

PHP:
$strSQL = 'DELETE * FROM t_table WHERE id = '.GET['wert'].';
benutzen. Dann klappts auch mit dem Löschen. :)
 
Original geschrieben von aquasonic
PHP:
mysql_query("DELETE FROM table WHERE ID = $_GET['$wert']");
Kann nicht funktionieren. Er würde eine ID suchen, die dem Wert der Spalte mit dem Namen, welcher in $_GET['$wert'] gesetzt ist entspricht. Sprich es fehlen die Singlequotes um den $_GET Wert.
Des weiteren werden Variablen zwischen Singlequotes also z.B. '$wert' nicht geparsed. Außerdem ist es fraglich, ob er nicht mosert, wegen der ' ' innerhalb des " ".
Deshalb würde ich hingehen und das query zunächst in eine Variable speichern.
PHP:
// Wenn der Array-Index wirklich aus einer Variable kommt so:
$query = "DELETE FROM tabelle WHERE ID = '".$_GET[$wert]."'";
// ODER wenn der Array-Index statisch ist, die ' nicht vergessen:
$query = "DELETE FROM tabelle WHERE ID = '".$_GET['wert']."'";

//und dann halt ausführen:
mysql_query($query);

edit: Auch bei Chino ergibt sich die Problematik, dass er nach
ID = Wert
und nicht nach
ID = 'Wert'
suchen würde. Fehlen die Singlequote um Wert, wird davon ausgegangen, dass Wert eine Spalte in der Tabelle ist und das ist ja irgendwie hier nicht Sinn der Übung ;)
 
Ja da hat sich bei mir ein $ zuviel eingeschlichen! :-)

Du musst nur beim Typ TEXT ' um den Inhalt bei WHERE ID = machen...Aber ja, du hast recht, ist besser so! ;)
 
Konnte das wie folgt umsetzen

<td>
<a href="show.php?nr=$wert">[ Datensatz löschen ]</a>
<?
$db = mysql_connect("10.212.72.151","root");
mysql_select_db("Datenbankname",$db);
mysql_db_query("DELETE FROM Table WHERE ID = $_GET['$wert']");
?>
</td>
folgender Fehler auf Zeile: Mysql_db_query:
expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'
Was heiß das?
 
Original geschrieben von User Maik
folgender Fehler auf Zeile: Mysql_db_query:
expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'
Was heiß das?
Benutze bitte meine Variante mit vorheriger Definition des Querys in einer Variablen. Dadurch ersparst du dir eine Menge Probleme. Wenn du dann noch meine und die anderen Ausführungen liest, dürfte auch klar werden, warum da keine Variable so stehen kann.

Das ganze sollte vorher in einer Variable gespeichert werden, da innerhalb der Klammern von mysql_query ein Unterbrechen des Strings nicht möglich ist, dieses aber nötig ist, um die GET Variable konform einzubinden.
 
folgendes Umgesetzt
<td><a href="show.php?nr=$wert">[ Datensatz löschen ]</a>
<?
$db = mysql_connect("10.212.72.151","root");
mysql_select_db("Datenbankname",$db);
$query ="DELETE FROM Tabellenname WHERE ID = '".$_GET[$wert]."'";
mysql_query($query);
?>

Spring leider nur von einen in den anderen Datensatz und löscht leider nix.
Auch $wert in hochkomme gesetzt('wert'), das selbe.
Test gemacht echo $wert; der Wert, bzw die Zahl wird richtig angezeigt.
 
<?
$db = mysql_connect("10.212.72.151","root");
mysql_select_db("Datenbankname",$db);
$query ="DELETE FROM abellenname WHERE ID = '116'";
mysql_query($query);
?>
Das geht ist aber nicht das was ich will !
 
Zurück