mysql_num_rows() - Fehler

Steusi

Nasenbär
Hallo, warum wurde meine Anfrage geschlossen?

http://www.tutorials.de/forum/php/337585-mysql_num_rows-fehler.html

Das Problem ist leider noch nicht gelöst.
Also, wenn ich die Fehlermeldung anzeigen lasse, bin ich verwirrt.

Daten:
Datenbank: tonerverwaltung
Tabelle: z.B. abteilung
Spaltenname: Beschreibung

Mein Code:
PHP:
require("../lib/dbconnect.inc.php");

$anzahl = count($_POST['bezeichnung']);
	if(isset($_POST['bezeichnung']) && is_array($_POST['bezeichnung'])) { 
		for($i = 0;$i<$anzahl;$i++) {	
			echo($_POST['tab']."<br>");
			$pruefen = mysql_query("SELECT ".$_POST['tab']." FROM tonerverwaltung WHERE Beschreibung='".$_POST['bezeichnung'][$i]."'") OR die ("Pruefung: ".mysql_error());
			if(mysql_num_rows($pruefen)) {
				echo("Die Bezeichnung: ".$_POST['bezeichnung'][$i]." ist bereits in der Datenbank enthalten.");
			} else {
		   		$eintrag = "INSERT INTO ".$_POST['tab']." (Beschreibung) VALUES ('".$_POST['bezeichnung'][$i]."')";
				$eintragen = mysql_query($eintrag) or die(mysql_error()); 	
			} 
		} 
	}

Folgendes wird ausgegeben:
abteilung
Pruefung: Table 'tonerverwaltung.tonerverwaltung' doesn't exist
 
was willst du jetzt hören? sollen wir dir das übersetzen?

die tabelle existitert in dieser datenbank nicht. folglich hast du die falsche db ausgewählt oder die tabelle noch nicht angelegt
 
Die Tabelle ist korrekt, der Code: echo($_POST['tab']
ruft ja auch abteilung auf!
Warum versucht er dann aber nicht auf tonerverwaltung.abteilung zuzugreifen, sondern auf tonerverwaltung.tonerverwaltung?
Das verstehe ich nicht, habe ich denn etwas falsch geschrieben im Code?


Sorry, nun sehe ich es, es muss natürlich folgendermaßen aussehen:
PHP:
$pruefen = mysql_query("SELECT * FROM ".$_POST['tab']." WHERE Beschreibung='".$_POST['bezeichnung'][$i]."'") OR die ("Pruefung: ".mysql_error());
 
Zuletzt bearbeitet:
bist du sicher, dass er auf tonerverwaltung.abteilung zugreift? hast du dies mit "echo $_POST['tab']; " getestet?
 
Ja, er greift korrekt drauf zu. Mein Fehler war nur, dass ich den Datenbanknamen tonerverwaltung eingesetzt habe, welcher hier gar nix zu suchen hat. War ein dummer Denkfehler. Weiß selbst nicht wie es dazu kommen konnte. :suspekt:
 
Hat er dieses Kommando richtig ausgeführt:
PHP:
mysql_select_db()

kommt da auch wirklich TRUE zurück? Passen die Userrechte auf die DB? bzw. die Tabelle? Ja man nämlich auch Rechte auf Tabellen vergeben.
 
So richtig klappt es immer noch nicht, bei folgendem Code erhalte ich einen Fehler.

Code:
PHP:
	$pruefen = mysql_query("SELECT * FROM seitenzahlen WHERE Datum='".$datum."'");
	if(mysql_num_rows($pruefen)) {

Fehler:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

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 1

Eins verstehe ich auch nicht, folgendes klappt:

PHP:
	$pruefen = mysql_query("SELECT * FROM benutzerdaten WHERE Nickname='".$Nickname."'");
	if(mysql_num_rows($pruefen)) {

Schreibe ich bei SELECT am ENDE aber noch die Anführungsstriche, kommt der Gleiche Fehler:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource

Code mit Anführungsstrich:
PHP:
	$pruefen = mysql_query("SELECT * FROM benutzerdaten WHERE Nickname='".$Nickname."'\"");
	if(mysql_num_rows($pruefen)) {

Kann mir einer die richtige Schreibweise der Anführungsstriche erklären?
 
Meine favorisierte Schreibweise ist folgende:
PHP:
$strQuery = "SELECT * FROM `benutzerdaten` WHERE `Nickname` = '$Nickname'";
$resResult = mysql_query($strQuery);

Aber schau dir mal den Artikel Fehlerbehebung in PHP an. Dort wird gut beschrieben wie man mit Fehler in PHP umgeht.
 
Zuletzt bearbeitet:
Zurück