Was ist hier falsch???
Moppel
- php
Ich habe folgendes Script erstellt:
_____________________________________________________________________
<html>
<head>
<title>Untitled</title>
</head>
<body>
<?
echo $search;
//Verbindung herstellen
$db = mysql_connect("******","*****","******"); [Streng Geheim ]
mysql_select_db("dav",$db);
//Daten auslesen
$result = mysql_query("SELECT * FROM liste WHERE titel LIKE '" + $search + "'",$db);
?>
<table border="1" cellspacing="0" cellpadding="3" align="center">
<tr>
<td><b>ID</b></td>
<td><b>Eintragsnummer</b></td>
<td><b>Filmtitel</b></td>
<td><b>Format</b></td>
<td><b>CD-Anzahl</b></td>
<td><b>Bild</b></td>
<td><b>Beschreibung</b></td>
<td><b>Inhalt</b></td>
<td><b>Cover</b></td>
</tr>
<? while ($daten = mysql_fetch_array($result)) { ?>
<tr>
<td><? echo $daten[id]; ?></td>
<td><? echo $daten[eintrnr]; ?></td>
<td><? echo $daten[titel]; ?></td>
<td><? echo $daten[format]; ?></td>
<td><? echo $daten[cda]; ?></td>
<td><? echo $daten[bild]; ?></td>
<td><? echo $daten[besch]; ?></td>
<td><? echo $daten[inhalt]; ?></td>
<td><? echo $daten[link]; ?></td>
</tr>
<? } ?>
</table>
</body>
</html>
_____________________________________________________________________
Eigentlich soll man in einem HTML Formular einen Suchbegriff eingeben können, der dann hier mit der Datenbank verglichen wird. (Das ist die Variable $search)
Ich danke jedem, der sich die Mühe macht sich durch mein Script zu arbeiten.
PS: Wenn es geht antwortet bitte nicht alzu kompliziert, da ich totaler PHP Anfänger bin
Moppel
Hi,
Ich habe folgendes Script erstellt:
Was hier falsch ist?
Es fehlt die Beschreibung des Fehlers.
Und was Du schon versucht hast, ihn zu beheben.
cu,
Andreas
Ich habe folgendes Script erstellt:
Hossa und Hallo :)
//Daten auslesen
$result = mysql_query("SELECT * FROM liste WHERE titel LIKE '" + $search + "'",$db);
?>
schreibst du mal lieber so:
$result = mysql_query("SELECT * FROM liste WHERE titel LIKE '%$_POST[search]%'");
<? while ($daten = mysql_fetch_array($result)) { ?>
<tr>
<td><? echo $daten[id]; ?></td>
<td><? echo $daten[eintrnr]; ?></td>
<td><? echo $daten[titel]; ?></td>
<td><? echo $daten[format]; ?></td>
<td><? echo $daten[cda]; ?></td>
<td><? echo $daten[bild]; ?></td>
<td><? echo $daten[besch]; ?></td>
<td><? echo $daten[inhalt]; ?></td>
<td><? echo $daten[link]; ?></td>
</tr>
<? } ?>
</table>
ich würde da immer in den [ ] Klammern die " oder ' setzten!
z.B. so:
<td><? echo $daten['id']; ?></td>
<td><? echo $daten['eintrnr']; ?></td>
<td><? echo $daten['titel']; ?></td>
<td><? echo $daten['format']; ?></td>
<td><? echo $daten['cda']; ?></td>
<td><? echo $daten['bild']; ?></td>
<td><? echo $daten['besch']; ?></td>
<td><? echo $daten['inhalt']; ?></td>
<td><? echo $daten['link']; ?></td>
Moppel
LG Christoph
Tausend Dank für deine Hilfe, jetzt kommt immerhin keine Fehlermeldung mehr, aber ich habe ein anderes Problem: Egal was man eingibt, man bekommt alle Einträge angezeigt.
Ich hab den Link, kannst ja mal gucken gehen.
(Links musst du den Suchbegriff eingeben)
Tausend Dank für deine Hilfe, jetzt kommt immerhin keine Fehlermeldung mehr, aber ich habe ein anderes Problem: Egal was man eingibt, man bekommt alle Einträge angezeigt.
hm ok dann schreibs halt so:
$result = mysql_query("SELECT * FROM liste WHERE titel LIKE '$_POST[search]'");
also ohne den % denn die bewirken das man alles aus der DB rausholt!
Versuchs nochmal so!
Ich hab den Link, kannst ja mal gucken gehen.
(Links musst du den Suchbegriff eingeben)
LG Christoph
Jetzt wird nichts mehr gefunden, und ich weiß auch wieso:
Mein Suchformular übermittelt keine Daten, aber es liegt wohl nicht am Formular, denn auch andere einfachere zur Überprüfung zeigen, dass nichts gesendet wird.
Hier ein Beispiel:
Die Datei eingabe.html
<html>
<head>
<title>Untitled</title>
</head>
<body>
<form action="action.php" method="POST">
Ihr Name: <input type="text" name="name" />
Ihr Alter: <input type="text" name="alter" />
<input type="submit">
</form>
</body>
</html>
Und hier die Datei action.php
<html>
<head>
<title>Untitled</title>
</head>
<body>
Hallo <?php echo $_POST["name"]; ?>.
Sie sind <?php echo $_POST["alter"]; ?> Jahre alt.
</body>
</html>
Huhu Moppel
welche PHP-Version verwendest Du?
phpinfo()
Viele Grüße
lulu
Der Freewebspace-Anbieter hat PHP 4
Wenn ich echo $name; schreibe klappt´s
Aber wennich folgendes mache klappt`s nicht:
<?php
echo $_POST["name"];
echo "Sie sind $alter Jahre alt.";
?>
Hier schreibt der nur das Alter aber nicht den Namen, ich werde einfach nicht schlau daraus.
Huhu Moppel
Der Freewebspace-Anbieter hat PHP 4
der interessantere Teil der Versions-Nummer ist der nach der 4.
Also 4.x.y, welches x.y ?
ich vermute mal das es sich um eine "olle" PHP-Version handelt, die $_POST noch nicht kennt. (ab PHP 4.1.0)
teste mal folgendes:
var_dump($_POST);
bzw.
var_dump($HTTP_POST_VARS);
Viele Grüße
lulu
Herzlichen Dank dafür, dass du mir geholfen hast.
Ich habe meine Suchfunktion gerade eben ans Laufen bekommen.
Ich habe nochmal mit dem "alten" $name in der Auslesefunktion gespielt und das ganze mit Klammern versehen. Nach ein paar versuchen hats dann auf einmal geklappt, weiß der Teufel wieso. Ich brauche jetzt auf jeden Fall nicht mehr das blöde $_POST.
Aber nochmal danke.
Alles Gute
Moppel
Huhu Moppel
Ich brauche jetzt auf jeden Fall nicht mehr das blöde $_POST.
Nein, das ist die falsche Schlussfolgerung.
$_POST ist nicht blöd, sondern in aktuelleren PHP-Versionen der Standard.
$name -> funktioniert nur wenn Register-Globals "on" gesetzt ist.
das wird in naher Zukunft die Ausnahme sein.
D.h. sämtlich Skripts die nicht mit $_POST arbeiten werden nicht mehr einwandfrei funktionieren.
$HTTP_POST_VARS -> wird über kurz oder lang nicht mehr unterstützt werden.
D.h. sämtlich Skripts die nicht mit $_POST arbeiten werden nicht mehr einwandfrei funktionieren.
$_POST hat ausserdem die Eigenschaft "superglobal" zu sein.
D.h. man kann es auch innerhalb von Funktionen benutzen, ohne es explizit global setzen zu müssen.
Hier kannst Du etwas dazu lesen, folge auch den weiteren Links
http://www.php.net/manual/en/language.variables.predefined.php#language.variables.superglobals
Viele Grüße
lulu