PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySql suche


Chris_M
17.04.2008, 20:16:20
moin

Ich brauch dringent hilfe von euch Profis

erstmal hier mein DB aufbau
DB: musterbau
Tabelle: MotorRad
Spallten: id, Bezeichnung

ich hab mir ein suchscript gebastelt wo ich in der Spallte Bezeichnung Z.b. Bridestone suchen möchte in den Zeile steht "Bridestone 190/65R17" (als beispiel) nu soll er mir die ganze Spallte Bezeichnung nach Bridestone suchen (sind etwas 400 Bridestone, 300 Dunlop usw) und die ganzen zeilen ausgeben mit der davor stehenden id, nur bekomm ich eine fehlermeldung, ich poste mal fix mein Script


<?php
error_reporting(E_ALL);
include 'config.php'; // Konfigurationsdatei laden
@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR
die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
mysql_select_db(MYSQL_DATABASE) OR
die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());

$eingabe = "Bridstone";

$eingabe_array = explode(' ',$eingabe);

$query = 'select * from table MotorRad where '; //anfang der abfrage

for($i = 0; $i< count($eingabe_array); $i++){
$query .= "(Bezeichnung like '%".$eingabe_array[$i]."%')";
//ob der $i-te begriff in einer spalten enthalten ist (mit oder verknüpft)
if($i< count($eingabe_array)-1){
$query .= ' and ';
}
//verknüpfung der einzelnen worte mit und
}

$result = mysql_db_query('musterbau',$query); //anfrage an die datenbank
$num_news = mysql_num_rows($result); //anzahl der zurückgegebenen datensätze
for($i = 0; $i < $num_news; $i++){
$id = mysql_result($result,$i,'id'); //abfrage der id von der datenbank
$Bezeichnung = mysql_result($result,$i,'Bezeichnung'); //abfrage der Bezeichnung
echo '<a href="show.php?id='.$id.'">'.$Bezeichnung.'</a><br>'; //links auf die seite show_news.php
}
?>


Fehlermeldung:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/******test.php on line 25

Ich bin schon 3Tage dabei das prob zulösen aber ich komm einfach nicht weiter.
Was hab ich hier falsch gemacht?
Habt ihr ein kleinen Tip für mich Bitte?

mfg

Chris_M
17.04.2008, 21:21:35
ui, sorry bin ja in der falschen Ecke gelandet

Kann mich bitte wer verschieben -> MYSQL

Sorry

JuliusCaesar
17.04.2008, 21:27:55
ich gehe mal davon aus, die fehlermeldung bezeiht sich auf diese zeilen
$result = mysql_db_query('musterbau',$query); //anfrage an die datenbank
$num_news = mysql_num_rows($result); //anzahl der zurückgegebenen datensätze
warum probiert du nicht anstatt mysql_db_query mysql_query.
Da brauchste nur die abfrage anzugeben, die db wird vorher mit mysql_select_db ausgewählt ;)

Chris_M
17.04.2008, 21:34:36
nabend,

Ich denke mal du meinst das so:

$result = mysql_query($query); //anfrage an die datenbank
$num_news = mysql_num_rows($result); //anzahl der zurückgegebenen datensätze

geht aber auch nicht macht immer noch den selben fehler

Er scheind ein problem mit mysql_num_rows($result); zuhaben aber ich weiss nicht warum

The Serious Sam
17.04.2008, 22:03:00
mach doch mal

$result = mysql_query($query) or die(mysql_error());


wenn ne fehlermeldung kommt fehler beheben oder posten ;)

mfg

lukgestach
17.04.2008, 22:23:02
lass dir mal mit echo den $query string ausgeben, vielleicht findest du ja so den Fehler hinaus!
Wenn ich so ein problem habe ist es das erste den $query und mysql_error(); auszugeben, meistens findet man so den Fehler heraus!

Gruss Lukas

Chris_M
18.04.2008, 13:42:55
Malzeit,

jetzt steh ich richtig aufm schlauch :(

ich hab das mit:

$result = mysql_query($query) or die(mysql_error()); //anfrage an die datenbank


versucht und er meint:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table MotorRad where (Bezeichnung like '%Bridestone%')' at line 1

Ich habs auch schon ohne Klammern versucht aber da sagt er das selbe nur halt ohne Klammern
Ich könnte mir vorstellen das ich in folgener Zeile ein fehler hab

$query .= "(Bezeichnung like '%".$eingabe_array[$i]."%')";
//ob der $i-te begriff in einer spalten enthalten ist (mit oder verknüpft)

wüsste aber nicht was es sein könnte, habt ihr vielleicht eine idee?

lukgestach
18.04.2008, 16:49:56
och, ich hab den fehler:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table MotorRad where (Bezeichnung like '%Bridestone%')' at line 1
lass mal das table weg!
SELECT * FROM MotorRad WHERE Bezeichnung like.....

Gruss Lukas

Chris_M
18.04.2008, 17:03:54
malzeit,

och ne ich glaubs nicht, naja die Flüchtigkeitsfehler :)

Aller besten dank für eure hilfe :)

MFG Chris_m