mysql_num_rows() expects parameter 1 to be resource

Xching

Erfahrenes Mitglied
Hallo Zusammen,

Ich habe Fehler in meinem PHP Programm bekommt und ich weiß es nicht , wie ich das Problem lösen sollte,ich hoffe ihr mir weiter helfen könnte.

PHP:
include ('enfuegen-konfiguration.php');
   
 // plz,Ortname aus koordinaten holen, evtl. order by einfügen ...
$sql_plz ="select plz from Koordinaten";
$res_plz = mysql_query($sql_plz) OR die("<br><b><font color='#FF0000' face='Verdana'>PLZ nicht gefunden !</font></b><br>".mysql_error());

while($dat_plz = mysql_fetch_assoc($res_plz)) {

         $check_plz =($dat_plz['plz']);
	   }

$sql_ortname ="select Ortname from Koordinaten";
$res_ortname = mysql_query($sql_ortname) OR die("<br><b><font color='#FF0000' face='Verdana'>Ortname nicht gefunden !</font></b><br>".mysql_error());

while($dat_ortname = mysql_fetch_assoc($res_ortname)) {

         $check_ortname =($dat_ortname['Ortname']);
	   }
	   
// plz und Ortname zum checken geholt
//checken wie oft plz,Ortname in den anderen tabellen vorhanden sind
$sql_check1 = mysql_num_rows(mysql_query('SELECT plz.text_val AS plz, ort.text_val AS ortsname, geodb_coordinates.lat,geodb_coordinates.lon
						FROM geodb_textdata plz
						LEFT JOIN geodb_coordinates ON plz.loc_id = geodb_coordinates.loc_id
					    LEFT JOIN geodb_textdata ort ON plz.loc_id = ort.loc_id
						WHERE plz.text_type =500300000
						AND plz.text_val = $check_plz
						AND ort.text_type =500100000 
						AND ort.text_type = $check_ortname'));
$res_check1 = mysql_query($sql_check1)OR die("<br><b><font color='#FF0000' face='Verdana'>Plz und Ortname stimmt nicht !</font></b><br>".mysql_error());


if ($res_check1 != '0') {
// sind also in beiden tabellen x-mal vorhanden und lat und lon speichern 
mysql_query("insert into Koordinaten set lat='$latwert', lon='$lotwert'");
}
else {
echo "Fehler";
}

 
mysql_close($con);


Fehler :

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/www/test/www/Test /Koorimport/Dateinfuegen.php on line 31 Call Stack: 0.06 66000 1. {main}() /home/www/test/www/Test /Koorimport/Dateinfuegen.php:0 0.0013 65608 2. mysql_num_rows() /home/www/test/www/Test/Koorimport/Dateinfuegen.php:31
Plz und Ortname stimmt nicht !
Query was empty
 
Du kannst bei mysql_num_rows nicht die SQL-Anweisung reinschreiben. Diese muss vorher abgesetzt werden und das Ergebnis kannst du dann auswerten:

PHP:
$sql = "SELECT * FROM tabelle";
$result = mysql_query($sql);
$anzahl = mysql_num_rows($result);
 
Ich glaube du hast die Antwort bereits zig mal von mir gelesen.

Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.
PHP MySQL Debug Queries
Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.
 
Ich habe auf diese Seite "PHP MySQL Debug Queries" schon nachgeschaut und habe ich auch einbisschen in meinem Programm geändert aber ich bekomm noch diese Fehler

Plz und Ortname stimmt nicht !
Query was empty



Ich habe so geändert.

PHP:
$sql_check1 = mysql_query('SELECT plz.text_val AS plz, ort.text_val AS ortsname, geodb_coordinates.lat,geodb_coordinates.lon
						FROM geodb_textdata plz
						LEFT JOIN geodb_coordinates ON plz.loc_id = geodb_coordinates.loc_id
					    LEFT JOIN geodb_textdata ort ON plz.loc_id = ort.loc_id
						WHERE plz.text_type =500300000
						AND plz.text_val = $check_plz
						AND ort.text_type =500100000 
						AND ort.text_type = $check_ortname');
$res_check1 = mysql_query($sql_check1)OR die("<br><b><font color='#FF0000' face='Verdana'>Plz und Ortname stimmt nicht !</font></b><br>".mysql_error());
$anzahl = mysql_query($res_check1);

if ($anzahl != '0') {
// sind also in beiden tabellen x-mal vorhanden und lat und lon speichern 
mysql_query("update Koordinaten set lat='$latwert', lon='$lotwert'");
echo "{$anzahl}<br />\n";
mysql_query($anzahl) or die(mysql_error());

}
else {
echo "Fehler";
}

Und error_reporting(E_ALL); habe ich in die enfuegen-konfiguration.php eingefügt, ich habe auchupdate Koordinaten set lat='$latwert', lon='$lotwert' in PhpMyadmin getestet, es ist aber auch Ordnung, aber die Daten wurde nicht in meine Tabelle eingefügt.
 
Du führst 2 mal mysql_query aus
PHP:
$sql_check1 = mysql_query('SELECT plz.text_val AS plz, ort.text_val AS ortsname, geodb_coordinates.lat,geodb_
...
$res_check1 = mysql_query($sql_check1)OR die("<br>
..
Im 2ten Fall ist es kein SQL-String mehr sondern ein Query-Result.
 
Ich habe schon alles geändert, und dann bekomme ich das raus


Plz und Ortname stimmt nicht !
Unknown column 'Hannover' in 'where clause'



Was könnte diese Aussage sein, könnte jemand erklären
 
Ich glaube du hast die Antwort bereits zig mal von mir gelesen.

Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.
PHP MySQL Debug Queries
Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.

Damit würdest du herausfinden, dass irgendwo in deinem SQL eine Spalte mit dem Namen Hannover erstellt wird die es so in der Datenbank nicht gibt
 
Ich habe auf diese Seite "PHP MySQL Debug Queries" schon nachgeschaut und habe ich auch einbisschen in meinem Programm geändert aber ich bekomm noch diese Aussage / Fehler

Plz und Ortname stimmt nicht !
Unknown column 'Hannover' in 'where clause'


PHP:
if ($anzahl != '0') {
// sind also in beiden tabellen x-mal vorhanden und lat und lon speichern 
$latwert = 'geodb_coordinates.lat';
$lotwert = 'geodb_coordinates.lon';
$check_plz ='plz';
$check_ortname = 'Ortname';
mysql_query("update Koordinaten set lat='$latwert', lon='$lotwert' where Ortname = '$check_ortname' AND plz = '$check_plz'");
mysql_query($anzahl) or die(mysql_error());
echo mysql_affected_row();

}
else {
echo "Fehler";
}
 
Ich glaueb nicht, dass dieser Code-Ausschnitt den Fehlertext 'Plz und Ortname stimmt nicht !' ausgibt.
 
Zurück