Homepage selbermachen 7.851 Themen, 35.615 Beiträge

seite.php4?id="434" ???? was ist denn das für ein link

susannchen / 9 Antworten / Baumansicht Nickles

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 :) )

bei Antwort benachrichtigen
xafford susannchen „seite.php4?id="434" ???? was ist denn das für ein link“
Optionen

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.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Heinz_Malcher xafford „das ist ein link mit einer url-encoded variablen namens id. mit diesem link wird...“
Optionen

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???

bei Antwort benachrichtigen
xafford susannchen „seite.php4?id="434" ???? was ist denn das für ein link“
Optionen

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.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
susannchen xafford „also noch mal von anfang: der aufruf des scriptes seite.php4?id 434 bewirkt,...“
Optionen

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

bei Antwort benachrichtigen
xafford susannchen „Das kommt als Meldung bei dem link: test1.php4?id 2 Warning: Supplied argument...“
Optionen

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.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
susannchen xafford „wo und wann und bei welchem link? wolltest du den code von mir in eine seite...“
Optionen

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

bei Antwort benachrichtigen
xafford susannchen „hallo xafford: Ich habe zwei seiten: index.php4 und seite.php4: index.php4...“
Optionen

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.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
susannchen xafford „das script hat 3 fehler: zum einen mußt du bei mysql_connenct den richtigen...“
Optionen

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
");

}

}


Allerdings lädt er sich hier mindestens 5 minuten im browser tot und zeigt dann nur ein weisses bild an. Achso ja und username, passwort und die ganzen dinge stimmen schon so
bei Antwort benachrichtigen
xafford susannchen „Hi, hier mein endgültiger code: if !isset id echo Fehler exit db mysql_connect...“
Optionen

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.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen