Seite 1 von 3
Daten auslesen und verlinken ?
Verfasst: 26.04.2005 14:31
von Condor
Hallo,
ich möchte Daten aus meiner DB auslesen und sie als Link darstellen, z.B. die Namen aus der DB auslesen und als Link ausgeben. Sobald man auf diesen Link klickt kommt der dazugehörige Datensatz. Dazu hab ich mir mal so ein Probe-Script gerade gebastelt:
Code: Alles auswählen
<?php include("open.inc.php");
$fields = mysql_list_fields($dbase, $table, $conn);
$sql = "SELECT * FROM $table";
$result = mysql_query($sql, $conn);
if ($result) {
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "<a href=\"Tabelle-auslese.php?id=".$row[mysql_field_name($fields, 0)].">".$row['Name']."</a><BR>";
}
} else {
echo "<P>".mysql_error($conn);
}
mysql_close($conn);
?>
<?PHP
?>
Das funktioniert schon mal. Die Namen werden ausgegeben und es wird daraus ein Link gemacht. Aber wenn ich jetzt auf den Link klicke passiert nichts. Es kommt ein Interner Fehler und das zweite Script nimmt die übergebende "ID" nicht an. Das zweite Script sieht so aus:
Code: Alles auswählen
<?php include("open.inc.php");
$fields = mysql_list_fields($dbase, $table, $conn);
$feldname = mysql_field_name($fields, 0);
$sql = "SELECT * FROM $table WHERE $feldname = '$id'";
$result = mysql_query($sql, $conn);
if ($result) {
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo $row['PLZ'];
}
} else {
echo "<P>".mysql_error($conn);
}
mysql_close($conn);
?>
<?PHP
?>
Kann mir jemand dabei helfen ? Ist das mit den Feldernamen richtig ? Vielleicht hat jemand sowas schon als Script und könnte mir mal einen Ansatz oder nen Schnipsel posten

Re: Daten auslesen und verlinken ?
Verfasst: 26.04.2005 18:58
von Pyramide
Condor hat geschrieben:$sql = "SELECT * FROM $table WHERE $feldname = '$id'";
Wo weist du denn der Variable $id einen Wert zu?
Verfasst: 26.04.2005 19:14
von Condor
Hi,
na hier:
Code: Alles auswählen
echo "<a href=\"Tabelle-auslese.php?id=".$row[mysql_field_name($fields, 0)].">".$row['Name']."</a><BR>";
oder nicht ?
Auf jedenfall läuft es jetzt doch. Ich hatte einen Fehler. Die zweite datei hiess anders, deshalb kam der komische Fehler. Aber es läuft noch nicht perfekt. Bei der Ausgabe der Namen als Link (DB entält 2 Datensätze) wird bei mir der Name des zweiten Datensatzes gezeigt. Wenn ich dann denn Namen anklicke kommt der komplette Datensatz, aber vom ersten Datensatz. Was läuft da jetzt schief ? Kannst du mir das erklären ? Wäre sehr dankbar.
Verfasst: 26.04.2005 19:34
von Pyramide
Condor hat geschrieben:na hier:
Code: Alles auswählen
echo "<a href="Tabelle-auslese.php?id=".$row[mysql_field_name($fields, 0)].">".$row['Name']."</a><BR>";
oder nicht ?
Da gibst du nur HTML-Code aus, der einen Link erstellt.
Condor hat geschrieben:Bei der Ausgabe der Namen als Link (DB entält 2 Datensätze) wird bei mir der Name des zweiten Datensatzes gezeigt. Wenn ich dann denn Namen anklicke kommt der komplette Datensatz, aber vom ersten Datensatz. Was läuft da jetzt schief ? Kannst du mir das erklären ?
So ganz habe ich dein mysql_field_name Konstrukt nicht verstanden, aber offensichtlich liegt da der Fehler. Warum sprichst du die Feldnamen nicht direkt an? Also z.B. so:
Code: Alles auswählen
$result = mysql_query("SELECT id, name FROM tabelle WHERE ...");
while($row = mysql_fetch_array($result)) {
echo "<a href="datei2.php?id=$row[id]">$row[name]</a>";
}
Verfasst: 26.04.2005 19:47
von Condor
Hi,
ich hab das so geschrieben wie ich es gedacht hab das es funktioniert. Es funktioniert ja auch, naja fast, die Namen werden ja falsch ausgespuckt. Die Abfrage ist ne Standartd-Abfrage aus einem meiner Scripte. Ich werde mal deinen Code reinschreiben. Danke erstmal. Schönen Abend noch. Wenn was ist melde ich mich nochmal, ok ? Bis dann.
Verfasst: 26.04.2005 20:05
von Condor
Hi,
jau es funktioniert perfekt. Jetzt muss ich nur noch die Ausgabe HTML-Freundlich machen und dann ist wieder eine Sache fertig, dank dir

Ich hab da noch eine Frage. Bei:
Wofür ist die WHERE-Anfrage da ? Müsste doch auch ohne laufen oder nicht ?
Verfasst: 26.04.2005 21:25
von Pyramide
Condor hat geschrieben:Wofür ist die WHERE-Anfrage da ? Müsste doch auch ohne laufen oder nicht ?
Damit kannst du die Daten eingrenzen, die angezeigt werden sollen - also z.B. nur Namen die mit 'A' Anfangen.
Verfasst: 26.04.2005 23:40
von Condor
Hi,
jaja, was es allgemein heisst weiss ich. Ich wusste nicht worauf das bei meinem Problem bezogen war. Ich brauche das nämlich nicht, noch nicht. Ich hab da aber noch was. Das Script ist so ähnlich. Es soll an bestimmte Leute eine Mail verschickt werden. Es soll in diesem Bsp. nachschauen wer die PLZ 1234 hat und diese in die mailto funktion und zwar auch wenn mehere Leute ausgespuckt werden müssen die alle da rein, also mit semikolon getrennt werden. Das mit dem semikolon dürfte kein Problem sein. Dabei soll das Standard Emailprogramm geöffnet werden. Mein Problem ist, das nur einer ausgespuckt wird, obwohl es drei mit der PLZ gibt. Also es soll ja nur EIN Link erstellt werden, aber in dem dann die drei email-adressen sind und das macht er nicht. Vielleicht bin ich schon zu müde und sehe die Fehler nicht mehr. Was müsste ich noch ändern ?Hier das Script:
Code: Alles auswählen
<?php include("open.inc.php");
$sql = "SELECT * FROM $table WHERE plz = '1234'";
$result = mysql_query($sql, $conn);
if ($result) {
while ($row = mysql_fetch_row($result)) {
echo "<a href=\"mailto:".$row['email'].">Condor<a/>";
}
} else {
echo "<P>".mysql_error($conn);
}
mysql_close($conn);
?>
<?PHP
?>
Verfasst: 27.04.2005 09:48
von shwepsi
mysql_fetch_row($result)
tja... mysql_hole_zeile...
nicht Zeilen
probiere es mal mit mysql_fetch_array
also mehrere Zeilen (oder für die Wortklauber: ein Array bestehend aus mehreren Zeilen & Spalten)
Verfasst: 27.04.2005 11:30
von Condor
Hi,
danke für den Tip. Ist aber nur ein Schreibfehler von mir. Aber daran liegt es nicht. Hast du ne idee wie ich mehrer mailtos in die mailto funktion packe ?