Hallo,
kann mir mal jemand sagen was ich damit anfangen kann? seite.php4?id="434"
Gut es ist ein link, aber wie sage ich, dass aus der DB id434 geholt werden soll? von dieser seite?? wer klärt mich a bissl auf (PHP, MySQL Kenntnisse etwas vorhanden :) )
Homepage selbermachen 7.852 Themen, 35.619 Beiträge
das ist ein link mit einer url-encoded variablen namens id. mit diesem link wird dem php-script seite.php4 die variable id mit dem wert 434 übergeben und diese variable kann dann im script weitergenutzt werden, eben beispielsweise um aus einer datenbank den datensatz 434 zu holen.
php list beim aufruf übergebene variabeln aus die nach der form:
scriptname.php?var1=wert1&var2=wert2&var3=wert3....&varN=wertN
wobei die url-länge allerdings auf 255 stellen begrenzt ist.
dies stellt eine GET-übermittlung dar und kann auch mit formulardaten erfolgen.
hmm das würd mich jetzt auch mal interessieren.... wo seite.php4 steht denn die variable bzw. wie soll ich denn mit hilfe eines links in die datenbank connecten???
also noch mal von anfang:
der aufruf des scriptes seite.php4?id=434 bewirkt, daß in dem script seite.php4 die variable id mit dem wert 434 definiert wird, um dann einen datenbankaufruf zu starten verwendet man die übliche php-syntax zum db-verbinden:
if(!isset($id)){echo "Fehler";exit;} //das script wurde ohne ?id=wert ausgerufen, also id nicht definiert//
$dbp=mysql_connect("datenbankserver","user","passwort") or die ("Verbindung fehlgeschlagen"); //mit der datenbank verbinden//
mysql_select_db("datenbankname"); //entsprechende datenbank wählen//
$result=mysql_query($dbp,"SELECT * FROM datenbankname WHERE id='".$id."'");
foreach($result as $element){print("$element<br>");}
die durch das url-encoding definierte variable id wird in der datenbank mit der ganz normalen php-syntax der entsprechende datensatz ausgelesen. prinzipiell ist das anhängen an die url das selbe, als würde ich ein formular an das script übermitteln mit der GET-methode.
Das kommt als Meldung bei dem link:
test1.php4?id=2
Warning: Supplied argument is not a valid MySQL-Link resource in C:\test.php4 on line 10
Warning: Invalid argument supplied for foreach() in C:\test.php4 on line 14
wo und wann und bei welchem link? wolltest du den code von mir in eine seite bauen? das sollte nur ein beispiel sein, der code ist nicht direkt verwertbar.
hallo xafford:
Ich habe zwei seiten: index.php4 und seite.php4:
index.php4 enthält nur einen link auf seite.php4:
<a href="seite.php4?id=1">test</a>
in seite.php4 ist folgender inhalt:
<?php
if(!isset($id)){echo "Fehler";exit;}
$dbp=mysql_connect("localhost","","")
or die ("Verbindung fehlgeschlagen");
mysql_select_db("test");
$result=mysql_query($dbp,"SELECT * FROM tabelle WHERE id='".$id."'");
foreach($result as $element)
{
print("$element
");
}
?>
Im Hintergrund ist die datenbank mit der entsprechenden tabelle vorhanden. darin enthalten ein paar einträge, unter anderem einer wo id=1
Leider bekomme ich da den fehler
viiiieeeelllleeeen dank susannchen
das script hat 3 fehler:
zum einen mußt du bei mysql_connenct den richtigen server eintragen (localhost sollte aber stimmen), dann den user (meist root) und das passwort (das du für root oder den entsprechenden user vergeben hast).
dann muß noch die entsprechende datenbank mit: mysql_select_db($dbp,"datenbankname"); gewählt werden.
außerdem muß aus result noch der betreffende datensatz gelesen werden, da result nur ein pointer ist:
entweder- $treffer=mysql_fetch_assoc($result);
oder $treffer=mysql_fetch_array($result);
oder $treffer=mysql_fetch_row($result);
und dann foreach über $treffer laufen lassen, nicht über $result.
(das letzte war wohl mein fehler)
noch was: tabelle im query mußt du natürlich mit dem namen deiner tabelle in der datenbank ersetzen.
Hi,
hier mein endgültiger code:
if(!isset($id)){echo "Fehler";exit;}
$db=mysql_connect ("localhost","","");
mysql_select_db ("testbank", $db);
$result=mysql_query("SELECT * FROM testtabelle WHERE id='".$id."'");
while($zeile=mysql_fetch_row($result))
{
foreach ($zeile as $zeilen)
{
print("$zeilen
");
}
}
hm...schwer etwas dazu zu sagen. du müsstest mal alles genau überrüfen, angefangen damit, daß du dir den sql-string ausdrucken lässt auf den bildschirm, um zu sehen, ob dieser richtig geparst wird. dann nach und nach den inhalt jeder variablen überprüfen um zu sehen an welcher stelle das script hängt. ich vermute, daß das problem irgendwo in der verbindung zur datenbank schon hängt, ansonsten würde wohl eine fehlermeldung auftauchen.