Mysql Ausgabe verlinken

thetetsuo

Mitglied
Hallo Tutorials Gemeinde,

ich hänge mal wieder an einem Problem und komme nicht weiter.

Ich lese mit diesem Code Daten aus MySQL aus, und stelle sie verkürzt (=nicht alle Daten) als Liste dar.
PHP:
<?php


  $result = mysql_query("SELECT anrede,titel,vorname,nachname,strasse,plz,ort,telprivat,teldienst,mobil,email,beruf,person,aktiv,grund,bild FROM kandidaten");
    while ($row = mysql_fetch_array ($result)) {
 	$id = $row["id"];
 	$anrede = $row["anrede"];
 	$titel = $row["titel"];
	$vorname = $row["vorname"];
	$nachname = $row["nachname"];
	$strasse = $row["strasse"];
	$plz = $row["plz"];
	$ort = $row["ort"];
	$telprivat = $row["telprivat"];
	$teldienst = $row["teldienst"];
	$mobil = $row["mobil"];
	$email = $row["email"];
	$beruf = $row["beruf"];
	$person = $row["person"];
	$aktiv = $row["aktiv"];
	$grund = $row["grund"];
	$bild = $row["bild"];



echo "<div id='kandidaten'>

<div id='kandidatenbild'>
<a href='person.php?id=$id'>
<img src='$bild' border='0'>
</a>
</div>

<div id='kandidatentext'>
$anrede<br><strong>$vorname $nachname</strong>
<br>
$strasse
</div>


<div id='kandidatenzusatz'>$beruf</div>

</div><div style='clear:both;'></div>";

}
 

?>

Da ich ja eine id habe möchte ich es nun erreichen dass ich jeden einzelnen Datensatz anklicken kann, und dabei die kompletten Daten (Wohnort, Telefon, etc etc...) angezeigt bekomme.

Ich dachte mir dass es sinnvoll wäre jeweils das Bild der Person zu verlinken, und bei einem klick auf dasselbige den kompletten Datensatz zu erhalten.

Wie schaffe ich das?
Ich übergebe doch an die person.php die Variable id , oder? Deshalb dachte ich mir dass ich es mit <a href='person.php?id=$id'> übergeben kann.
Aber so wie ich es mache klappt das einfach nicht...

Über Eure Hilfe wäre ich sehr dankbar,
Tetsuo
 
Was klappt denn nicht?
in person.php kannst du dann mit $_GET['id'] auf den Wert zugreifen,
den du dann in der SQL-Abfrage mit ..."SELECT * FROM tabelle WHERE `id` = '".(int)$_GET['id']."'" zum Auswählen verwendest.
 
Das klappt alles nicht...
Also nochmal:

In meiner liste.php steht:

PHP:
<html>
HTML Seite
....blablabla


<?php


  $result = mysql_query("SELECT anrede,titel,vorname,nachname,strasse,plz,ort,telprivat,teldienst,mobil,email,beruf,person,aktiv,grund,bild FROM kandidaten");
    while ($row = mysql_fetch_array ($result)) {
 	$id = $row["id"];
 	$anrede = $row["anrede"];
 	$titel = $row["titel"];
	$vorname = $row["vorname"];
	$nachname = $row["nachname"];
	$strasse = $row["strasse"];
	$plz = $row["plz"];
	$ort = $row["ort"];
	$telprivat = $row["telprivat"];
	$teldienst = $row["teldienst"];
	$mobil = $row["mobil"];
	$email = $row["email"];
	$beruf = $row["beruf"];
	$person = $row["person"];
	$aktiv = $row["aktiv"];
	$grund = $row["grund"];
	$bild = $row["bild"];



echo "<div id='kandidaten'>

<div id='kandidatenbild'>
<a href='person.php?id='.$row->id.''>
<img src='$bild' border='0'>
</a>
</div>

<div id='kandidatentext'>
$anrede<br><strong>$vorname $nachname</strong>
<br>
$strasse
</div>


<div id='kandidatenzusatz'>$beruf</div>

</div><div style='clear:both;'></div>";

}
 

?>


Ende HTML Seite

</html>


In meiner person.php, die dann die ganzen Einzelheiten des angeklickten Eintrages auspucken soll steht:
PHP:
<?php


  $result = mysql_query("SELECT anrede,titel,vorname,nachname,strasse,plz,ort,telprivat,teldienst,mobil,email,beruf,person,aktiv,grund,bild FROM kandidaten WHERE 'id' = '".(int)$_GET['id']."'");
    while ($row = mysql_fetch_array ($result)) {
 	$id = $row["id"];
 	$anrede = $row["anrede"];
 	$titel = $row["titel"];
	$vorname = $row["vorname"];
	$nachname = $row["nachname"];
	$strasse = $row["strasse"];
	$plz = $row["plz"];
	$ort = $row["ort"];
	$telprivat = $row["telprivat"];
	$teldienst = $row["teldienst"];
	$mobil = $row["mobil"];
	$email = $row["email"];
	$beruf = $row["beruf"];
	$person = $row["person"];
	$aktiv = $row["aktiv"];
	$grund = $row["grund"];
	$bild = $row["bild"];




	echo "<tr><td><hr><img src='$bild'></td></tr><tr>
	<td>
	$anrede $titel<br><b>$vorname $nachname</b><br>
	$strasse<br>$plz $ort<br>
	Tel. Privat: $telprivat<br>
	Tel. Dienstl.: $teldienst<br>
	Tel. Mobil: $mobil<br>
	E-Mail: $email<br><br>
	Beruf: $beruf<br><br>
	Persönliches:<br>$person<br><br>
	Aktivitäten:<br> $aktiv<br><br>
	Gründe für Kandidatur:<br>$grund<br><hr><br><br><br><br><br></td>
	</tr>";

      }


   

?>

Wenn ich nun aber die liste.php aufrufe, und über einen einzelnen Eintrag mit der Maus fahre erscheint in der Statuszeile erst einmal nur ...../person.php?id=
Wenn ich dann draufklicke erhalte ich einfach eine leere Seite (person.php)

Was mache ich hier falsch?
 
Die von dir verwendete mysql_fetch_array()-Funktion gibt ein Array zurück und kein Objekt. Daher kannst du auch nicht wie bei einem Objekt darauf zugreifen ($row->id).
 
Das verstehe ich nicht ganz...
Wenn ich also ein Objekt zurückhaben will, dann benutze ich doch mysql_fetch_object().
Aber wenn ich das in die person.php einsetze passiert auch nichts :confused:
 
Also ich habe jetzt nochmal die liste.php so abgeändert:
PHP:
<?php


  $result = mysql_query("SELECT anrede,titel,vorname,nachname,strasse,plz,ort,telprivat,teldienst,mobil,email,beruf,person,aktiv,grund,bild FROM kandidaten WHERE 'id' = '".(int)$_GET['id']."'");
    while ($row = mysql_fetch_object ($result)) {
 	$id = $row["id"];
 	$anrede = $row["anrede"];
 	$titel = $row["titel"];
	$vorname = $row["vorname"];
	$nachname = $row["nachname"];
	$strasse = $row["strasse"];
	$plz = $row["plz"];
	$ort = $row["ort"];
	$telprivat = $row["telprivat"];
	$teldienst = $row["teldienst"];
	$mobil = $row["mobil"];
	$email = $row["email"];
	$beruf = $row["beruf"];
	$person = $row["person"];
	$aktiv = $row["aktiv"];
	$grund = $row["grund"];
	$bild = $row["bild"];

 echo "<a href='person.php?id='.$row->id.''>";

...Hier stehen die anderen Ausgaben: Vorname,Nachname etc.
}
 

?>

Aber auch hier bleibt die Seite leer... ?!
 
Zuletzt bearbeitet:
Da du nur einmal versuchst, auf die Variable des jeweiligen Datensatzes wie ein Objekt zuzugreifen, alle anderen Male aber wie auf ein Array, solltest du lieber die eine Instanz ändern.
PHP:
$result = mysql_query("SELECT anrede,titel,vorname,nachname,strasse,plz,ort,telprivat,teldienst,mobil,email,beruf,person,aktiv,grund,bild FROM kandidaten WHERE 'id' = '".(int)$_GET['id']."'");
while( $row = mysql_fetch_assoc($result) ) {
	$id = $row["id"];
	$anrede = $row["anrede"];
	$titel = $row["titel"];
	$vorname = $row["vorname"];
	$nachname = $row["nachname"];
	$strasse = $row["strasse"];
	$plz = $row["plz"];
	$ort = $row["ort"];
	$telprivat = $row["telprivat"];
	$teldienst = $row["teldienst"];
	$mobil = $row["mobil"];
	$email = $row["email"];
	$beruf = $row["beruf"];
	$person = $row["person"];
	$aktiv = $row["aktiv"];
	$grund = $row["grund"];
	$bild = $row["bild"];

	echo '<a href="person.php?id='.$id.'">';

	// ...Hier stehen die anderen Ausgaben: Vorname,Nachname etc.
}
 
Da ich in der liste.php eh nur 5 Datensätze brauche, habe ich jetzt die anderen mal rausgenommen, und fetch_assoc gesetzt.

PHP:
<?php


  $result = mysql_query("SELECT anrede,vorname,nachname,bild FROM kandidaten WHERE 'id' = '".(int)$_GET['id']."'");
    while ($row = mysql_fetch_assoc ($result)) {
 	$id = $row["id"];
 	$anrede = $row["anrede"];
	$vorname = $row["vorname"];
	$nachname = $row["nachname"];
	$bild = $row["bild"];

echo "<div id='kandidaten'>



<div id='kandidatenbild'>
<a href='person.php?id='.$row->id.''>
<img src='$bild' border='0'>
</a>
</div>

<div id='kandidatentext'>
$anrede<br><strong>$vorname $nachname</strong>
<br>
$strasse
</div>


<div id='kandidatenzusatz'>$beruf</div>

</div><div style='clear:both;'></div>";

}
 

?>

Es tut sich aber einfach nichts... Ich weiss nicht mal wie ich hier geschickt eine Fehlermeldung einbauen soll... Ich bin am verzweifeln...
 
Zurück