Verlinkung Datensatz

jade-t

Grünschnabel
Hallo,
Ich habe eine Tabelle, aus der ich das Datenfeld frage ausgebe.
Ich möchte jetzt diesen Datensatz als link darstellen, damit ich wenn ich auf diesen link klicke, eine Beschreibung öffnen kann, die ebenfalls du diesem Datensatz in meiner db gespeichert ist.

Hier mein script:
<?php
// <-- Verbindung zur Datenbank -->
include ("dbconnect.php");

$auslesen = mysql_query("SELECT * FROM faq ORDER BY frage ASC");
while ($ausgeben = mysql_fetch_array($auslesen)) {
?>

<table width="100%" border="0">
<!--DWLayoutTable-->
<tr>
<td width="56" height="21" valign="top">Frage:</td>
<td width="581" valign="top" widht="80%"><?php echo $ausgeben[frage]; ?></td>
<td width="581" valign="top" widht="80%"><!--DWLayoutEmptyCell-->&nbsp;</td>
</tr>
</table>


<?php
}
mysql_close();
?>

Wie geht das nun ?
Ich weiss, dass das irgendwie mit id Übergabe aber wie?
 
Zunächst musst du aus der ausgebenen Frage einen Link machen, der auf die Seite linkt, die für die Beschreibungen zuständig ist (als Beispiel habe ich beschreibung.php genommen). An den Namen der Seite hängst du als GET-Variable die ID der entsprechenden Frage aus der Datenbank.
PHP:
<?php 
// <-- Verbindung zur Datenbank -->
include ("dbconnect.php");

$auslesen = mysql_query("SELECT * FROM faq ORDER BY frage ASC"); 
while ($ausgeben = mysql_fetch_array($auslesen)) { 
?> 

<table width="100%" border="0">
<!--DWLayoutTable--> 
<tr> 
<td width="56" height="21" valign="top">Frage:</td> 
<td width="581" valign="top" widht="80%"><a href="beschreibung.php?id=<?php echo $ausgeben['id']; ?>"><?php echo $ausgeben['frage']; ?></a></td> 
<td width="581" valign="top" widht="80%"><!--DWLayoutEmptyCell--> </td>
</tr> 
</table> 


<?php 
} 
mysql_close(); 
?>

Auf der Beschreibungsseite (beschreibung.php) musst du dann anhand der übergebenen ID die Beschreibung zur Frage auslesen und ausgeben.
Bsp.:
PHP:
<?php
$sql = mysql_query("SELECT * FROM faq WHERE id = '" . $_GET['id'] . "'");
$row = mysql_fetch_array($sql);

echo '<b>' . $row['frage'] . '</b><br>';
echo $row['beschreibung'];
?>
 
Hallo,

Die Frage als Link erzeugen, die ID hinten anhängen. Dazu sollte dir deine Tabelle eigentlich eine ID des Eintrags liefern. (ansonsten anlegen)
PHP:
<?php 

// <-- Verbindung zur Datenbank -->
include ("dbconnect.php");
if(!$_GET['id'])
 {
$auslesen = mysql_query("SELECT id, frage FROM faq ORDER BY frage ASC"); 
while ($ausgeben = mysql_fetch_array($auslesen)) { 
?> 

<table width="100%" border="0">
<!--DWLayoutTable--> 
<tr> 
<td width="56" height="21" valign="top">Frage:</td> 
<td width="581" valign="top" widht="80%"><a href="<?PHP echo $_SERVER['PHP_SELF'].?id=rawurlencode($ausgabe['id']); ?>"><?php echo $ausgeben[frage]; ?></a></td> 
<td width="581" valign="top" widht="80%"><!--DWLayoutEmptyCell--> </td>
</tr> 
</table> 


<?php 
} // while
} //if
else{
$id=addslashes(rawurldecode($_GET['id'])); //decodieren und Rückstriche für Datenbankanfragen setzen
 $auslesen = mysql_query("SELECT answer FROM faq WHERE id='$id' ORDER BY frage ASC"); 
// Ausgabe darfste wieder selber machen :)
}
mysql_close(); 
?>
Nochwas, wenn du zu jeder Frage mehr als eine Antwort hast, wempfiehlt es sich zwei Tabellen zu machen. Eine für Fragen, eine für Antworten.

Marco
 
Zuletzt bearbeitet:
Besten Dank schon mal

Danke für deine Antwort, hat mir schon mal etwas geholfen.
Bekomme aber leider noch eine Fehlermeldung, weiss auch nicht warum:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\apache\htdocs\faq\beschreibung.php on line 3

Das bekomme ich, müsste aber eigentlich ohne Problem laufen, noch eine Idee?
 
Welches Script?

Hoi,

auf welches Script beziehste Dich?

Hab in meinem nen Fehler gefundne, bei den Antworten sollten hochkommate um die Variable.

Die Fehlermeldung deutet auf eine nicht durchgeführte abfrage hin. Oder die Abfrage hat kein Ergebnis geliefert.

Marco
 
Hallo,
ludz hat zwei verschiedene arraynamen verwendet, daher wird der wert nicht hinter die id eingetragen. einmal auslesen, andermal auslesen, korriegier das mal, dann sollt es klappen

Marco
 
du meinst das

du meinst das hier:

<a href="beschreibung.php?id=<?php echo $ausgeben['id']; ?>"><?php echo $ausgeben['frage']; ?></a></td>
<td width="581" valign="top" widht="80%"><!--DWLayoutEmptyCell--> </td>
</tr>
</table>

-> einmal $ausgeben['id'] und dann $ausgeben['frage'] oder?

das auf $ausgeben['id'] korrigieren ? und $ausgeben['frage'] weglassen ?
 
Aaaaaaaaah ich döspaddel.
Ne war kein Fehler, verlesen wars. Kommt schonmal vor um solche Uhrzeiten. :(

Das Script sieht funktionsfähig aus.
Lass dir bitte mal zu beginn (unmittelbar nach <?PHP) den Inhalt von $_GET['id'] ausgeben. Wenn du dort keinen Zahlenwert bekommst, liegts an der Übergabe des Wertes.
Ansonsten könnt es sein das die Feldnamen im MySQL-Statement nicht mit deiner DB übereinstimmen?

Marco
 
id

Bekomme die id des Datensatzes angezeigt, also dass macht er.
Komisch, dass er trotzdem den Datensatz nicht ausliest und anzeigt.

Scheint als würde er mit dem mysql_fetch_array nicht klarkommen bzw mit dem Befehl davor.
 
Zurück