Hallo Frank,
ich hab dein ursprüngliches Script mal neu formatiert (hoffe es tut so noch):
termine.php
- Code: Select all
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Veranstaltungstermine</title>
<link rel="stylesheet" type="text/css" href="/sbo/css/blau.css" />
</head>
<body class="body">
<?php
$anzeigen = 3;
if ((!empty($_GET['vor'])) && (!empty($_GET['limit']))) {
$start = $_GET['limit'] + $anzeigen;
}
if ((!empty($_GET['back'])) && (!empty($_GET['limit']))) {
$start = $_GET['limit'] - $anzeigen;
}
if ((!isset($start)) || (0 > $start)) {
$start = 0;
}
//Auslesen der Datenbankeinträge
require('connect.php');
$sql = "
SELECT SQL_CALC_FOUND_ROWS `id`, `datum`, `kurs`, `beschreibung`, `referent`, `preis`, `minteiln`
FROM `$tabellenname`
ORDER BY `id` ASC
LIMIT $start, $anzeigen
";
if (!$result = mysql_query($sql, $link)) {
echo '
<p>Fehler in der Abfrage: '.mysql_error().'</p>
<p><a href="termine.php">zurück zur Liste</a></p>
</body>
</html>';
exit;
}
for ($i = 0; mysql_num_rows($result) > $i; $i++) {
$ergebnis[$i] = mysql_fetch_assoc($result);
}
$max = mysql_query("SELECT FOUND_ROWS()", $link);
mysql_close($link);
?>
<table align="center">
<tr>
<td><img src="../pics/header1.gif" width="800" height="100" border="0"></td>
</tr>
</table>
<br />
<?php
//Ausgeben der Einträge
for ($i = 0; count($ergebnis) > $i; $i++) {
echo '
<table class="klein" border="0" width="400" align="center">
<tr>
<td width="250"><strong>'.$ergebnis[$i]['datum'].'</strong></td>
<td width="150"><strong>'.$ergebnis[$i]['kurs'].'</strong></td>
</tr>
<tr>
<td colspan="2">'.$ergebnis[$i]['beschreibung'].'</td>
</tr>
<tr>
<td>Referent:</td>
<td>'.$ergebnis[$i]['referent'].'</td>
</tr>
<tr>
<td colspan="2"><strong>'.$ergebnis[$i]['preis'].',- €</strong></td>
</tr>
<tr>
<td>mind. '.$ergebnis[$i]['minteiln'].' Teilnehmer</td>
<td><a href="aform.php?id='.$ergebnis[$i]['id'].'">zur Anmeldung</a></td>
</tr>
</table>
<br/>'."\n";
}
echo '<table class="klein" border="0" width="400" align="center"><tr><td align="left">';
if ($start >= $anzeigen) {
echo '<a href="termine.php?limit='.$start.'&back=1">Zurück</a>';
}
echo '</td><td align="right">';
if (($start + $anzeigen) < $max) {
echo '<a href="termine.php?limit='.$start.'&vor=1">Weiter</a>';
}
echo '</td></tr></table>'."\n";
?>
</body>
</html>
Mir ist garnicht klar, wie dein PHP eingestellt ist. An einigen Stellen müssten doch immer mal wieder Fehler angezeigt werden.
1) Verlasse dich nicht auf "register_globals":
Benutze also bei der Parameterübergabe die superglobalen Arrays. Überprüfe vor der ersten Benutzung einer Variable in einem Vergleich auch ob sie schon existiert. Initialisiere deine Variablen wenn nötig.
3) Überprüfe dein HTML:
- Attributwerte werden in Hochkommas eingeschlossen.
- Tabellen sauber aufbauen
4) ich denke mir jetzt mal, dass die Variable "$tabellenname" in connect.php festgelegt wird
5) Beim aufrufen der Datei "aform.php" übergeben wir jetzt die ID vom ausgewähltem Datensatz als Parameter
aform.php- Code: Select all
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Anmeldung</title>
<link rel="stylesheet" type="text/css" href="/sbo/css/blau.css" />
</head>
<body class="body">
<?php
if (!empty($_GET['id'])) {
$id = $_GET['id'];
} else {
echo '
<p>Kein Kurs ausgewählt!</p>
<p><a href="termine.php">zurück zur Liste</a></p>
</body>
</html>';
exit;
}
//Auslesen der Datenbankeinträge
require('connect.php');
$sql = "
SELECT `datum`, `kurs`, `preis`
FROM `$tabellenname`
WHERE `id` = $id
LIMIT 1
";
if (!$result = mysql_query($sql, $link)) {
echo '
<p>Fehler in der Abfrage: '.mysql_error().'</p>
<p><a href="termine.php">zurück zur Liste</a></p>
</body>
</html>';
exit;
}
$ergebnis = mysql_fetch_assoc($result);
mysql_close($link);
?>
<table align="center">
<tr>
<td><img src="../pics/header1.gif" width="800" height="100" border="0"></td>
</tr>
</table>
<br />
<?php
//Ausgeben der Einträge
echo '
<form action="formmail.php" method="post">
<p>
Kurs: <input type="text" name="kurs" readonly="readonly" value="'.$ergebnis['kurs'].'" /><br />
Datum: <input type="text" name="datum" readonly="readonly" value="'.$ergebnis['datum'].'" /><br />
Preis [EUR]: <input type="text" name="preis" readonly="readonly" value="'.$ergebnis['preis'].'" /><br />
Name: <input type="text" name="name" /><br />
EMail: <input type="text" name="email" /><br />
<input type="submit" name="submit" value="Abschicken" />
<input type="reset" value="Zurücksetzen" />
</p>
</form>
<p><a href="termine.php">zurück zur Liste</a></p>'."\n"
?>
</body>
</html>
Funktion ohne Gewähr...
1) Anhand der übergeben ID lesen wird diesen Datensatz aus der Datenbank aus und tragen die gewünschten Felder an gewünschter Stelle ins Formular ein.
2) Beim Abschicken des Formulars, werden dann die Daten an einen Formmailer übergeben. Du kannst die Daten natürlich auch selbst in dem Script verschicken oder du machst halt was anderes damit.