Hallo Leute,
Ich mache derzeit eine Weiterbildung in einer Fernschule die Unterlagen sind jedoch in PHP 5 weshalb mein Browser vielleicht ständig Fehler anzeigt obwohl ich es genau abtippe.
Ich habe bereits das alte mysql in mysqli ersetzt. Vielleicht kann mir jemand sagen wie ich es anders schreiben kann. Am besten nicht Objektorientiert da es noch nicht das Thema ist. (Ich frage deshalb nicht meine Schule da sie keinen Fehler finden und nicht wissen woran es sonst liegen kann).
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Suche in Datensätzen</title>
</head>
<body>
<?php
include("db_connect.inc.php");
if(!isset($_REQUEST['set'])) {
echo "<form action=\"" . $_SERVER['PHP_SELF'] . "\" method=\"post\">\n";
echo "<input type=\"hidden\" name=\"set\" value=\"TRUE\"/>\n";
echo "<p><b>Suche nach:</b>\n";
echo "<select size=\"1\" name=\"spalte\">\n";
echo "<option value=\"ID\">ID</option>\n";
echo "option value=\"Autor\">Autor</option>\n";
echo "option value=\"Titel\">Titel</option>\n";
echo "option value=\"Jahr\">Jahr</option>\n";
echo "option value=\"Kommentar\">Kommentar</option>\n";
echo "</select>\n";
echo "<b>Suchbegriff:</b>\n";
echo "<input type=\"text\" name=\"suche\" size=\"40\"/></p>\n";
echo "<p><input type=\"submit\" value=\"Suche starten...\"/></p>\n";
}
else {
if($_REQUEST['suche'] == "")
$sql = "SELECT * FROM Bücher;";
else
$sql = "SELECT * FROM Bücher WHERE " . $_REQUEST['spalte'] . "LIKE ' " . $_REQUEST['suche'] . "%';";
if(mysqli_connect($host, $user, $password)) {
if(mysqli_select_db('literatur')) {
$erg = mysqli_query($sql);
if($erg) {
if(mysqli_num_rows($erg) <= 0) {
echo "<p>Leider konnte kein Datensatz in der Kategorie </br><b>"
. strtoupper($_REQUEST['spalte']) . "</b> mit dem Suchbegriff <b>"
. strtoupper($_REQUEST['suche']) . "</b> gefunden werden!</p>\n";
unset($_REQUEST['set']);
echo "<p><a href=\"" . $_SERVER['PHP_SELF'] . "\">Zurück zum Formular</a></p>\n";
}
else {
echo "<table>\n";
echo "<tr>\n";
for($i=0; $i<mysqli_num_fields($erg); $i++) {
$feld = mysqli_field_name($erg, $i);
echo "<th>". ucfirst($feld) . "</th>\n";
}
echo "</tr>\n";
while($row = mysqli_fetch_row($erg)) {
echo "<tr>\n"
for($i=0; $i<mysqli_num_fields($erg); $i++)
echo "<td>" . $row[$i] . "</td>";
echo "</tr>\n";
}
echo "</table><p>\n";
unset($_REQUEST['set']);
echo "<p><a href="" . $_SERVER['PHP_SELF'] . "\">Zurück zum Formular</a></p>\n";
}
}
else
echo "<h5>Es konnten keine Datensätze gefunden werden</h5>\n";
}
else
echo "<h5>Verbindung zur Datenbank ist im Moment nicht möglich</h5>\n";
mysqli_close($erg);
}
else
echo "<h5>Der Server ist wegen Wartungsarbeiten vorrübergehend nicht erreichbar.</h5>\n";
}
?>
</div>
</body>
</html>
Folgendes wird im Browser angezeigt:
Parse error: syntax error, unexpected 'for' (T_FOR), expecting ';' or ','
Danke schon mal im Vorraus.
Ich mache derzeit eine Weiterbildung in einer Fernschule die Unterlagen sind jedoch in PHP 5 weshalb mein Browser vielleicht ständig Fehler anzeigt obwohl ich es genau abtippe.
Ich habe bereits das alte mysql in mysqli ersetzt. Vielleicht kann mir jemand sagen wie ich es anders schreiben kann. Am besten nicht Objektorientiert da es noch nicht das Thema ist. (Ich frage deshalb nicht meine Schule da sie keinen Fehler finden und nicht wissen woran es sonst liegen kann).
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Suche in Datensätzen</title>
</head>
<body>
<?php
include("db_connect.inc.php");
if(!isset($_REQUEST['set'])) {
echo "<form action=\"" . $_SERVER['PHP_SELF'] . "\" method=\"post\">\n";
echo "<input type=\"hidden\" name=\"set\" value=\"TRUE\"/>\n";
echo "<p><b>Suche nach:</b>\n";
echo "<select size=\"1\" name=\"spalte\">\n";
echo "<option value=\"ID\">ID</option>\n";
echo "option value=\"Autor\">Autor</option>\n";
echo "option value=\"Titel\">Titel</option>\n";
echo "option value=\"Jahr\">Jahr</option>\n";
echo "option value=\"Kommentar\">Kommentar</option>\n";
echo "</select>\n";
echo "<b>Suchbegriff:</b>\n";
echo "<input type=\"text\" name=\"suche\" size=\"40\"/></p>\n";
echo "<p><input type=\"submit\" value=\"Suche starten...\"/></p>\n";
}
else {
if($_REQUEST['suche'] == "")
$sql = "SELECT * FROM Bücher;";
else
$sql = "SELECT * FROM Bücher WHERE " . $_REQUEST['spalte'] . "LIKE ' " . $_REQUEST['suche'] . "%';";
if(mysqli_connect($host, $user, $password)) {
if(mysqli_select_db('literatur')) {
$erg = mysqli_query($sql);
if($erg) {
if(mysqli_num_rows($erg) <= 0) {
echo "<p>Leider konnte kein Datensatz in der Kategorie </br><b>"
. strtoupper($_REQUEST['spalte']) . "</b> mit dem Suchbegriff <b>"
. strtoupper($_REQUEST['suche']) . "</b> gefunden werden!</p>\n";
unset($_REQUEST['set']);
echo "<p><a href=\"" . $_SERVER['PHP_SELF'] . "\">Zurück zum Formular</a></p>\n";
}
else {
echo "<table>\n";
echo "<tr>\n";
for($i=0; $i<mysqli_num_fields($erg); $i++) {
$feld = mysqli_field_name($erg, $i);
echo "<th>". ucfirst($feld) . "</th>\n";
}
echo "</tr>\n";
while($row = mysqli_fetch_row($erg)) {
echo "<tr>\n"
for($i=0; $i<mysqli_num_fields($erg); $i++)
echo "<td>" . $row[$i] . "</td>";
echo "</tr>\n";
}
echo "</table><p>\n";
unset($_REQUEST['set']);
echo "<p><a href="" . $_SERVER['PHP_SELF'] . "\">Zurück zum Formular</a></p>\n";
}
}
else
echo "<h5>Es konnten keine Datensätze gefunden werden</h5>\n";
}
else
echo "<h5>Verbindung zur Datenbank ist im Moment nicht möglich</h5>\n";
mysqli_close($erg);
}
else
echo "<h5>Der Server ist wegen Wartungsarbeiten vorrübergehend nicht erreichbar.</h5>\n";
}
?>
</div>
</body>
</html>
Folgendes wird im Browser angezeigt:
Parse error: syntax error, unexpected 'for' (T_FOR), expecting ';' or ','
Danke schon mal im Vorraus.