URL und Variable
Andreas Steinböck
- datenbank
Hallo Zusammen,
Ich habe da ein kleines Problem mit einer Variablenübergabe in einer
URL. Das ganze Szenario spielt sich über fünf php files ab.
Hier sind einmal zum besseren Verständnis die Quellcodes.
config.php
<?
//Verbindung herstellen
$db = mysql_connect("localhost","", "");
mysql_select_db("faq",$db);
?>
index.php
<? include ("config.php"); ?>
<html>
<style>
a:link {color:#000000; text-decoration:none; font-family:Verdana, Geneva, Arial,; font-size:8pt;}
a:active {color:#000000; text-decoration:none; font-family:Verdana, Geneva, Arial,; font-size:8pt;}
a:visited {color:#000000; text-decoration:none; font-family:Verdana, Geneva, Arial,; font-size:8pt;}
a:hover {color:#ff0000; text-decoration:none; font-family:Verdana, Geneva, Arial,; font-size:8pt;}
td {font-family : verdana,helvetica; color : black; font-size : 10pt;}
</style>
<body bgcolor="#336699">
<div align="center">
<table border="0" width="80%" cellspacing="1" cellpadding="3" bgcolor="#000000">
<tr>
<td bgcolor="#cacaca">Hardware</td>
</tr>
<tr>
<td bgcolor="#e2e2e2"><? include ('auslesen_hardware.php'); ?></td>
</tr>
</table>
<br>
<table border="0" width="80%" cellspacing="1" cellpadding="3" bgcolor="#000000">
<tr>
<td bgcolor="#cacaca" align="center">
Stellen Sie hier Ihre Frage zu: <a href="eingabe_hardware.php">Hardware</a>
</td>
</tr>
</table>
</body>
</html>
auslesen_hardware.php
<?
//Verbindung herstellen
include ("config.php");
//Auslesen der Daten für Hardware
$result = mysql_query("SELECT * FROM hardware",$db);
?>
<? while ($items = mysql_fetch_array($result)) { ?>
<? echo $items[id_hardware]; ?>
<a href="#" onclick="window.open('antwort_hardware.php','','width=500,height=200')"><? echo $items[frage_hardware]; ?></a><br>
<? } ?>
antwort_hardware.php
<?
//Verbindung herstellen
include ("config.php");
//Auslesen der Daten für Hardware
$result = mysql_query("SELECT * FROM hardware",$db);
?>
<? while ($items = mysql_fetch_array($result)) { ?>
<? "echo Frage:"; ?><? echo $items[frage_hardware]; ?><br>
<? "echo Antwort:"; ?><? echo $items[antwort_hardware]; ?><br>
<? } ?>
eingabe_hardware.php
<html>
<style>
a:link {color:#000000; text-decoration:none; font-family:Verdana, Geneva, Arial,; font-size:8pt;}
a:active {color:#000000; text-decoration:none; font-family:Verdana, Geneva, Arial,; font-size:8pt;}
a:visited {color:#000000; text-decoration:none; font-family:Verdana, Geneva, Arial,; font-size:8pt;}
a:hover {color:#ff0000; text-decoration:none; font-family:Verdana, Geneva, Arial,; font-size:8pt;}
td {font-family : verdana,helvetica; color : black; font-size : 10px;}
</style>
<body bgcolor="#336699">
<form method="post" action="<? echo $PHP_SELF ?>">
<table width="400" border="0" cellspacing="1" cellpadding="3" bgcolor="#000000" align="center">
<tr bgcolor="#e2e2e2">
<td><b>Stellen Sie Ihre Frage zum Thema Hardware, wir beantworten sie.</b><br><br>
<?
include ("config.php");
if ($submit) {
$sql = "INSERT INTO hardware (frage_hardware) VALUES ('$frage_hardware')";
$result = mysql_query($sql,$db);
echo "<div align="center">";
echo "<table border="0" cellspacing="1" cellpadding="3" bgcolor="#000000">";
echo "<tr>";
echo "<td bgcolor="#e2e2e2" align="center">";
echo "Ihre Daten wurden eingetragen! Vielen Dank!<br><br>";
echo "<a href="index.php">Zur Übersicht</a><br><br>";
echo "</td>";
echo "</tr>";
echo "</table>";
echo "</div>";
}
else {
?>
Frage:<br>
<textarea name="frage_hardware" cols="40" rows="5"></textarea><br>
<input type="submit" name="submit" value="Eintragen">
</td>
</tr>
</table>
</form>
<?
}
?>
</body>
</html>
Folgende Problemstellung:
Wenn die index.php aufgerufen wird, werden alle Einträge der Tabelle hardware über auslesen_hardware.php aus der db ausgelesen und angezeigt. Die datei auslesen_hardware.php wird in der index.php inkludiert. Die Tabelle hardware besteht aus id_hardware, frage_hardware und antwort_hardware.
In der auslesen_hardware.php ist wie oben zu sehen folgendes script eingebaut:
<?
//Verbindung herstellen
include ("config.php");
//Auslesen der Daten für Hardware
$result = mysql_query("SELECT * FROM hardware",$db);
?>
<? while ($items = mysql_fetch_array($result)) { ?>
<? echo $items[id_hardware]; ?>
<a href="#" onclick="window.open('antwort_hardware.php','','width=500,height=200')"><? echo $items[frage_hardware]; ?></a><br>
<? } ?>
Ich möchte nun, das mir die jeweiligen Datensätze, die in der index.php als Fragen angezeigt werden (das ganze soll eine faq werden), mittels Link ein Popup Fenster öffnen, wo zu der jeweiligen Frage auch die richtige Antwort steht. Müßte eigentlich mit der ID der Tabelle gehen, da diese für Fragen und Antworten gleich ist.
Hier noch die sql Tabelle:
CREATE TABLE hardware (
id_hardware int(11) NOT NULL auto_increment,
frage_hardware varchar(250) default NULL,
antwort_hardware varchar(250) default NULL,
PRIMARY KEY (id_hardware)
) TYPE=MyISAM;
Ich habe heute schon jede Menge an diesen Scripts herumgeworkt, bin aber bis jetzt auf keine Lösung gekommen. Vielleicht kann mir jemand bei der Lösung des Problems helfen.
Danke
lg
Andi
Hallo,
mein beispiel:
<? while ($items = mysql_fetch_array($result))
{
echo $items[id_hardware]. ' <a href="#" onclick="window.open("antwort_hardware.php?hid=' . $items[id_hardware] . '","","width=500,height=200")">' . $items[frage_hardware]; ?></a><br>
<? } ?>
nun öffnet sich sich das pop-up mit der id des jweiligen datensatzes in der url, die kannst du dann in der antwort_hardware.php auslesen und den datensatz anzeigen lassen...(hoffe habe kein ' oder " vermengt)
Odium
Hallo Odium,
habe Deinen Vorschlag ausprobiert, nur wird jetzt das Popup-Fenster nicht mehr geöffnet. Die Hochkommas scheinen aber zu stimmen.
lg
Andi
Hallo Zusammen,
Ich komme einfach nicht darauf wie ich diese Variablenübergabe machen soll damit mir mittels id die richtige antwort zur frage aangezeigt wird. Wenn ich auf den Link, der in auslesen_hardware.php generiert wird klicke, dann soll in antwort_hardware.php nochmals die Frage aber mit der passenden Antwort angezeigt werden. Ich krieg's einfach nicht hin. Hier sind die Codes der beiden Scripts. Vielleicht kann einem php Anfänger nochmals jemand auf die Sprünge helfen. Wäre echt nett.
auslesen_hardware.php
<?
//Verbindung herstellen
include ("config.php");
//Auslesen der Daten für Hardware
$result = mysql_query("SELECT * FROM hardware",$db);
?>
<? while ($items = mysql_fetch_array($result)) { ?>
<a href="#" onclick="window.open('antwort_hardware.php?id=$items[id_hardware]','','width=500,height=200')"><? echo $items[frage_hardware] ?></a><br>
<? } ?>
antwort_hardware.php
<?
//Verbindung herstellen
include ("config.php");
//Auslesen der Daten für Hardware
$result = mysql_query("SELECT * FROM hardware WHERE id_hardware='$id'",$db);
?>
<? while ($items = mysql_fetch_array($result)) { ?>
<? echo $items[frage_hardware]; ?><br>
<? echo $items[antwort_hardware]; ?><br>
<? } ?>
Danke für die Hilfe
lg
Andi