Problem bei MySQL-Abfrage

BIAsTeR

Mitglied
Hallo,
ich hab nich die größte Ahnung von PHP und MySQL daher verzeiht mir ggf. meine abwegigen Ideen.

Also ich habe eine MySql-Tabelle "hotel" und eine "poi" (Points of Interests). Ich habe ein Eingabeformular wo ich einerseits den poi ($poi) mit dropdownmenü auswähle und ein Eingabefeld wo ich die maximale Entfernung in Meter ($meter) eingebe in der sich ein Hotel befinden darf.
Die Werte der Variablen $poi und $meter haben auf jeden Fall Werte, da das noch ausgegeben wird.

Die Hotels und POI's haben Gauß-Krüger-Koordinaten.
PHP:
					if ($poi!='' AND $meter!='')
					{
				    	echo '<font size=+1>Sie haben den Point of Interest '.$poi.' und die Entfernung '.$meter.' ausgewählt.
							  </font><br><br>';
						$h1 = 'SELECT Name,X,Y FROM poi WHERE Name = "'.$poi.'"';
						$h2 = 'SELECT Name,X,Y FROM hotel WHERE
							   (SQRT(X*X+Y*Y)) < ((SELECT SQRT(X*X+Y*Y) FROM poi WHERE Name = '.$poi.') + '.$meter.')';
						$erg1 = mysql_db_query("mexico",$h1,$db);
						$erg2 = mysql_db_query("mexico",$h2,$db);
						while (list($Name, $X, $Y) = mysql_fetch_row($erg1))
						{
						 echo "&nbsp&nbsp&nbspDer Point of Interest $Name hat die Koordinaten X: $X und Y:$Y.<br>\n";
						 $rw1 = $X;
						 $hw1 = $Y;						 
						}
						while (list($Name) = mysql_fetch_row($erg2))
						{
						 echo "&nbsp&nbsp&nbspDas Hotel $Name liegt dichter als die gewünschte maximale Entfernung.<br>\n";
						}
					}

Mit meinem Code bekomm ich immer den Fehler:
"Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in D:\server\xampp\htdocs\pdb\12_Entfernungen_Hotels_um_POI.php on line 46"

Wo liegt da das Problem? Ich habe doch eigentlich in der Variable $Name den Hotelnamen...

mfg
Ben
 
Danke.
Nu seh ich wo der Fehler liegt.
Aber wie ich den behebe ist mir immer noch ein Rätsel...
Ich habe den Code nun so angepasst wie ich meine das er korrekt ist:
PHP:
if ($poi!='' AND $meter!='')
					{
				    	echo '<font size=+1>Sie haben den Point of Interest '.$poi.' und die Entfernung '.$meter.' ausgewählt.
							  </font><br><br>';
						$h1 = 'SELECT Name,X,Y FROM poi WHERE Name = "'.$poi.'"';
						$h2 = 'SELECT Name,X,Y FROM hotel WHERE
							   (SQRT(X*X+Y*Y)) < ((SELECT (SQRT(X*X+Y*Y) + '.$meter.') FROM poi WHERE Name = "'.$poi.'")';
						$erg1 = mysql_db_query("mexico",$h1,$db);
						$erg2 = mysql_db_query("mexico",$h2,$db);
						while (list($Name, $X, $Y) = mysql_fetch_row($erg1))
						{
						 echo "&nbsp&nbsp&nbspDer Point of Interest $Name hat die Koordinaten X: $X und Y:$Y.<br>\n";
						 $rw1 = $X;
						 $hw1 = $Y;						 
						}
						while (list($Name) = mysql_fetch_row($erg2))
						{
						 echo "&nbsp&nbsp&nbspDas Hotel $Name liegt dichter als die gewünschte maximale Entfernung.<br>\n";
						}
					}
Der Fehler lag in der Zeile wo ich $h2 die SQL-Abfrage mitgebe angeblich bei dem letzten ".
Wörtlich: 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 '' at line 2.

Deklariere ich hier den Namen Falsch? Wenn ich die " vor und nach dem Namen bzw. '.$Name.' weglasse kann SQL damit ja auch nichts anfangen weil er nicht erkennt das es sich um einen String handelt. Ausserdem habe ich bei $h1 ja auch so gearbeitet und dort kommt es zu keinem Fehler.
Kann mir wer sagen was an der Abfrage bei $h2 falsch ist?

mfg
Ben
 
Klammerfehler !

((SELECT (SQRT(X*X+Y*Y) + '.$meter.') FROM poi WHERE Name = "'.$poi.'")';


4 auf 3 zu

und die letzte klammer ist auch noch im string drin

.'")'
 
Zurück