Geht aber tut nicht...

Petruschel

Grünschnabel
Hallo, bin neu hier, deswegen erstmal Hallo an Alle,

ich versuche gerade mich mit php vertraut zu machen und möchte ein simples Sucformular zu laufen bekommen.

Es soll nur der Nachname abgefragt werden.

User gibt also Nachnamen ein und schickt ab.
Ich lasse das dann an ein zweites Formular übergeben mit der Methode Post.

Das eigentliche auswertungsformular hat folgenden Quelltext:

<?php
include ("dbconnect.php");
$abfrage = "select * FROM Gedenkseiten WHERE name 'nachname'";
$ergebnis = "mysql_query($abfrage)"or die ("Suchbegriff nicht vorhanden");

echo "$ergebnis";

?>

Wenn ich das nun teste, habe ich keine Error meldungen mehr, aber er gibt mir dann nur
$ergebnis aus, also nicht das gefundene Wort, sondern da steht dann eben:

mysql_query(select * FROM Gedenkseiten WHERE name 'nachname')

Also gibt er die $abfrage aus.

Was fehlt denn da?:confused:

Könnte mir Jemand ein bischen auf die Sprünge helfen?

Danke schonmal....
 
stimmt 2 mal zuviel " ^^

mfg Spikaner

Genau, herzlichen Dank, das war der Fehler, oder besser die Fehler.
Das Script tut jetzt.

Nur:

Egal was man eingibt, es kommt nur immer:

Suchbegriff nicht vorhanden

Kann aber nicht sein, da er definitiv vorhanden ist.

Wieso liest er ihn nicht aus?

Die Verbindung zur database müsste stehen, da ich, wenn ich die Datei dbconnect.php ausführe, keine meldung bekomme, das die dbase nicht göffnet werden konnte.

Script wird ausgeführt ohne meldung, müsste also verbunden sein, oder?

Grüsse
Petruschel
 
Das dürfte daran liegen dass du einen Fehler in deiner MySQL-Query hast. Undzwar fehlt ein "="-Zeichen in der WHERE-Bedingung.

Es wäre sicher sinnvoll, wenn du dir in deinem "or die"-Aufruf den letzten MySQL Fehler ausgeben lässt.

MfG
 
Noch hinzuzufügen ist das bei deiner Abfrage Groß und Kleinschreibung beachtet werden müssen.. suchst du nach mike und in der db steht Mike findet er auch nix

mfg Spikaner
 
Die implementation von "suchbegriff nicht vorhanden" ist auch Fehlerhaft. An dieser Stelle sagt dir der Aufruf nicht ob er etwas gefunden hat oder nicht. Dazu solltest du besser mysql_num_rows() verwenden. An der Stelle kannst du nur abfangen ob die Query die richtige Syntax hatte oder nicht.


Des weiteren fehlt in deiner QUERY das = bzw LIKE. Ich würde dir zu dem LIKE empfehlen am beste mit Platzhaltern:

PHP:
$abfrage = "select * FROM Gedenkseiten WHERE name LIKE '%nachname%'"

Durch die % findet eine suche nach Mik folgende Beispiele:
- Mik
- mik
- Mike
- emik

usw. Das Handling macht es leichter wenn man nicht immer 100% matches hineinschreiben muss.
 
Das dürfte daran liegen dass du einen Fehler in deiner MySQL-Query hast. Undzwar fehlt ein "="-Zeichen in der WHERE-Bedingung.

Es wäre sicher sinnvoll, wenn du dir in deinem "or die"-Aufruf den letzten MySQL Fehler ausgeben lässt.

MfG

Wo?

Laut meinem Büchern usw, kommt bei WHERE kein =....

Hab ich was übersehen?:confused:

Wo?

Laut meinem Büchern usw, kommt bei WHERE kein =....

Hab ich was übersehen?:confused:

Das hab ich, mit = ist LIKE gemeint, wurde mir beim Thread durchlesen klar.

Nur:

Mein Quelltext sieht jetzt so aus:

<?php
include ("dbconnect.php");
$abfrage = "select * FROM Gedenkseiten WHERE name Like '%nachname%' $link";
$ergebnis = mysql_query($abfrage);
$num_rows = mysql_num_rows($ergebnis);

echo "<font size=4 color=yellow><b>$num_rows Rows\n";
?>

Und als Ergebnis bekomme ich jetzt nur das Wort ROWS....

WIESO..ich blick da nicht durch.

Die Variable link habe ich in der datei dbconnect,php definiert.

Aber müsste er mir jetzt nicht eigentlich den gesuchten Namen aus der Dbase geben?

Grüüse und ganz lieben Dank für Eure Hilfe, aber als Newcomer is nicht einfach mit php...sorry
 
Zurück