Mysql Ausgabe verlinken

Mhmm...OK. also so:

PHP:
 $result = mysql_query("SELECT `anrede`,`vorname`,`nachname`,`bild` FROM `kandidaten` WHERE `id` = '".(int)$_GET['id']."'");
 
Habe es nochmal etwas umgestellt:
PHP:
<?php
$sql = ("Select `anrede`, `vorname`, `nachname`, `bild` FROM `kandidaten` WHERE `id` ='" . $_GET['id'] . "';"); 
$result = mysql_query($sql) OR die(mysql_error());  

    echo "Ausgabe:<br>"; 
    while($row = mysql_fetch_assoc($result)) { 
	   $id = $row["id"];
     $anrede = $row["anrede"];
    $vorname = $row["vorname"];
    $nachname = $row["nachname"];
    $bild = $row["bild"];
	
	
echo "<a href='person.php?id='.$row->id.''>";

}
 

?>

Aber ich finde den Fehler einfach nicht...
 
PHP:
<?php
$sql = ("Select `anrede`, `vorname`, `nachname`, `bild` FROM `kandidaten` WHERE `id` ='" . ((int)$_GET['id']) . "'"); 
$result = mysql_query($sql) OR die(mysql_error());  

    echo "Ausgabe:<br>"; 
    while($row = mysql_fetch_assoc($result)) { 
       $id = $row["id"];
     $anrede = $row["anrede"];
    $vorname = $row["vorname"];
    $nachname = $row["nachname"];
    $bild = $row["bild"];
    
    
echo "<a href='person.php?id=".$id."'>".$vorname."</a>";

}
 

?>
 
Zuletzt bearbeitet:
Um nachher auf $row['id'] zuzugreifen muss `id` mit in der SQL-Abfrage auch ausgewählt werden, das hab ich übersehn, vielleicht reicht das schon

PHP:
<?php
$sql = "SELECT `id`, `anrede`, `vorname`, `nachname`, `bild` FROM `kandidaten` WHERE `id` =".((int)$_GET['id']);
$result = mysql_query($sql) OR die(mysql_error());  

    echo "Ausgabe:<br>"; 
    while($row = mysql_fetch_array($result)) { 
      $id = $row["id"];
      $anrede = $row["anrede"];
      $vorname = $row["vorname"];
      $nachname = $row["nachname"];
      $bild = $row["bild"];
    
    
     echo '<a href="person.php?id='.$id.'">'.$vorname.'</a>';
   }
?>
 
@Drucko

Das habe ich nach Abschicken des Posts auch bemerkt - aber leider ändert das zusätzliche `id` auch nichts. Seite bleibt leer.

Jetzt mal im Ernst: Das gibt es doch nicht! Das ist doch eine simple Abfrage, wieso funktioniert diese nicht. Ich habe mittlerweile auch alle anderen beteiligten "Akteure" wie die "connect.php" etc etc gecheckt. Das funktioniert!

Wenn ich die ursprüngliche liste.php nehme funktioniert die Ausgabe ja auch, nur kann ich eben nicht auf die `id`zugreifen um sie zu verlinken. Ich habe wohl entweder einen Strukturfehler oder ich übersehe irgendetwas...
 
Hm, OK, mal etwas früher ansetzen:
In deiner liste.php, in der die Namen mit dem Link auf personen.php ausgegeben werden sollen, werden da die IDs der Einträge nun angehängt? also personen.php?id=43 o.Ä.
oder gibt das Script dir da immernoch die leeren Links aus ? (also wo der ID Wert fehlt)
Das Folgescript, also personen.php gibt ja logischerweise ohne den Aufruf mit einer gültigen, also in der DB vorhandenen, ID nichts aus. Deshalb vielleicht auch mal gleich insofern erweitern, dass es dann "Keine gültige ID angegeben" o.Ä. ausgibt!
Mittels if(!mysql_num_rows($result)){...} kannst du z.B. den Fall abfangen, dass kein Eintrag in der DB mit der genutzten ID vorhanden ist, was dir dann evtl. auch zur Fehlereingrenzung hilft. Zusätzlich kannst du dir mal mit var_dump() ausgeben lassen was von der DB zurückkommt. Vielleicht siehst du dann wo der Fehler liegt!
Und überprüf mal die Namen der Felder in deiner Tabelle, vielleicht ist dir da ein Flüchtigkeitsfehler unterlaufen?!
Hab möglicherweise auch Tomaten auf den Augen ;) aber sehe sonst keinen Fehler in den Scripten...
MfG

Edit:
Bevor das jetz ein völliges Durcheinander gibt, in dem Script, in dem du die ganzen Daten über einen User ausgeben möchtest (also das, in dem du mittels WHERE `id` = $_GET['id'] den Eintrag auswählst)
macht die Schleife auch keinen Sinn, da ja nur max. 1 Ergebnis zustande kommen kann

In dem Script, in dem du die Liste aller vorhandenen Einträge ausgeben willst, muss natürlich die Schleife ran, aber die SQL-Abfrage darf dort nicht mit WHERE id=... beschränkt werden
 
Zuletzt bearbeitet:
@drucko

Puhhhh... Habe jetzt zumindest den ersten Teil hinbekommen (Frage nicht wie ;-))

Seite mit "Kurzangaben" zum User: liste.php
PHP:
<?php
  $sql = "SELECT id, anrede, vorname, nachname, bild, beruf FROM kandidaten ORDER BY id"; 
  $sqlanfrage = mysql_query($sql) or die("Es ist ein Fehler aufgetreten: " . mysql_error()); 
  
while ($daten = mysql_fetch_object($sqlanfrage)) 
    { 
    $id = stripslashes($daten->id); 
	$anrede = stripslashes($daten->anrede);
	$vorname = stripslashes($daten->vorname); 
	$nachname = stripslashes($daten->nachname);
	$bild = stripslashes($daten->bild);  
	$beruf = stripslashes($daten->beruf); 
	
	 
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>
<a href=\"person.php?id=$id\"><strong>$vorname $nachname</strong></a>
<br>
$strasse
</div>
<br>
<div id='kandidatenzusatz'>$beruf</div>
</div>

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

}
?>

Jetzt wird auch die id übergeben:

".../person.php?id=ZAHL"

Das passt ja soweit!
Die Seite mit den kompletten Angaben des Users (person.php) stimmt aber noch nicht!

Hier mal mein Code: person.php

PHP:
<?php

if (isset($_GET['id']))
 $id = $_GET['id'];

 
$abfrage = "SELECT id, anrede, titel, vorname, nachname, strasse, plz, ort, telprivat, teldienst, mobil, email, beruf, person, aktiv, grund, bild FROM kandidaten FROM kandidaten WHERE id='".(int)$_GET['id']."'";
 $ergebnis = mysql_query($abfrage) or die (mysql_error());

$row = mysql_fetch_object ($ergebnis);

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

?>

Hier erscheint die Fehlermeldung:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM kandidaten WHERE id='xx'' at line 1"

Was ist jetzt hier schon wieder falsch?
 
Du hast 2mal "FROM kandiaten" im SQL-Ausdruck stehen ;)
Außerdem, da du hier mit mysql_fetch_object arbeitest, musst du die Variablen auch über das Objekt ansprechen also $row->name

PHP:
<?php

if (isset($_GET['id']))
 $id = $_GET['id'];

 
$abfrage = "SELECT id, anrede, titel, vorname, nachname, strasse, plz, ort, telprivat, teldienst, mobil, email, beruf, person, aktiv, grund, bild FROM kandidaten WHERE id='".(int)$_GET['id']."'";
 $ergebnis = mysql_query($abfrage) or die (mysql_error());

$row = mysql_fetch_object ($ergebnis);

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

?>
 
2x Kandidaten -> Danke !

$row->name: Meinst Du so ?

PHP:
<?php
  error_reporting(E_ALL);
  
  $error = '';
  
 if(!isset($_GET['id']) OR !is_numeric($_GET['id'])){
 
 $error = "Fehler !.<br />\n";
    }
    
	else{
        
 $_GET['id'] = (int)mysql_real_escape_string($_GET['id']);
 
  $id = $_GET['id'];

 
$abfrage = "SELECT id, anrede, titel, vorname, nachname, strasse, plz, ort, telprivat, teldienst, mobil, email, beruf, person, aktiv, grund, bild FROM kandidaten WHERE id='".$_GET['id']."'";

$ergebnis = mysql_query($abfrage) or die (mysql_error());

$row = mysql_fetch_object ($ergebnis);

{
 	$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>";
 
}
} // hat gefehlt 
?>

Habe noch ein Abfrage auf numerische ID hinzugefügt.

trotzdem stimmt wieder was nicht, da ich diesmal den Fehler
"syntax error, unexpected $end in /i.../person.php on line 89"
bekomme...

EDIT : Fehler lag an fehlender geschlossener Klammer!

Nächste Fehlermeldung:

"Cannot use object of type stdClass as array "


EDIT: mysql_fetch_object --> mysql_fetch_array


ES FUNKTIONIERT
 
Zuletzt bearbeitet:
Zurück