problem bei mysql_num_rows

der_Ed

Grünschnabel
Hi,
ich möchte mit mysql_num_rows eine Prüfung durchführen (Wert in Tabelle vorhanden?).

PHP:
<?php
$verbindung = @mysql_connect("localhost","","");
if (!$verbindung) {
				echo "Keine Verbindung zur Datenbank möglich!\n";
				exit; }
 
$nick=$HTTP_SESSION_VARS['USER']['nick'];
if ($plid==!'') {
$pruefung="select * from lan280805 where plid='".$plid."'";
$erg1 = mysql_db_query("blackalbino",$pruefung,$verbindung);
if (mysql_num_rows($erg1)) {
$austrag="delete from lan280805 where plid='".$plid."'";
mysql_db_query('blackalbino',$austrag,$verbindung);
exit; }
if (!mysql_num_rows($erg1)) {
$eintrag="insert into lan280805 values('".$plid."','".$nick."')";
mysql_db_query('blackalbino',$eintrag,$verbindung);
exit; }

plid$ wird vom Formular übergeben:

HTML:
 <form action="include.php?path=anmelden.php&plid=5" method="POST">
		 <input type="image" height=14 src="free.gif" width=14 align=absMiddle></td></form>

Nun bekomme ich die Fehlermeldung
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/blackalbino/anmelden.php on line 10

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/blackalbino/anmelden.php on line 14
Ich habe mysql_num_rows in einem anderen Skript schon ähnlich verwendet und weiß nun nicht mehr weiter.
Schonmal danke für Hilfe

Der_Ed
 
der_Ed hat gesagt.:
Hi,
ich möchte mit mysql_num_rows eine Prüfung durchführen (Wert in Tabelle vorhanden?).

PHP:
<?php
$verbindung = @mysql_connect("localhost","","");
if (!$verbindung) {
				echo "Keine Verbindung zur Datenbank möglich!\n";
				exit; }
 
$nick=$HTTP_SESSION_VARS['USER']['nick'];
if ($plid==!'') {
$pruefung="select * from lan280805 where plid='".$plid."'";
$erg1 = mysql_db_query("blackalbino",$pruefung,$verbindung);
if (mysql_num_rows($erg1)) {
$austrag="delete from lan280805 where plid='".$plid."'";
mysql_db_query('blackalbino',$austrag,$verbindung);
exit; }
if (!mysql_num_rows($erg1)) {
$eintrag="insert into lan280805 values('".$plid."','".$nick."')";
mysql_db_query('blackalbino',$eintrag,$verbindung);
exit; }
Der_Ed

Is es normal, dass du keine Queryfehlerabfrage drinnen hast? Is es normal dass du nich richtig einrückst?
 
In $pruefung steht nur der string für die sql-abfrage ( select * from lan280805 where plid='".$plid."' )
Ja es ist normal, dass ich nicht richtig einrücke, mag ich einfach nicht so.
 
das Problem hatte ich vor einer Stunde auch :D

PHP:
if(mysql_num_rows($SQLQuery) > 0)   			
     {
          Mach das, wenn SQLQuery TRUE ergibt
     }

PHP:
if(mysql_num_rows($SQLQuery) == 0)   			
     {
          Mach das, wenn SQLQuery FALSE ergibt
     }


so in der Art :D
 
Nachdem du meinen ersten Vorschlag ja nicht in die Tat umsetzen willst.. Was willst du eigentlich hier überprüfen:
PHP:
if ($plid==!'')
?
 
der_Ed hat gesagt.:
In $pruefung steht nur der string für die sql-abfrage ( select * from lan280805 where plid='".$plid."' )
Ja es ist normal, dass ich nicht richtig einrücke, mag ich einfach nicht so.

Ach aber von uns erwartest du, dass wir dir helfen? Dir is unsere Hilfe nich mal soviel wert, dass du nicht mal richtig einrücken kannst? Hm nett.
Btw: ich kenn die Lösung :P
 
Nun ja, ich rücke auch nicht "richtig" ein, weil ich es anders mehr mag... bisher hat das noch Niemanden hier gestört(na ja... um ehrlich zu sein, Einen schon :-))

@Ed: Ist bei dir register_globals auf "on" ?
Auf jeden Fall solltest du dir mal den etwaigen Fehler des Query anzeigen lassen(wie von Sicaine bereits erwähnt).... der Fehler muss dort liegen.
 
Danke für eure Hilfe, tut mir leid wenn ich ein bisschen harsch klang, heute hab ich bessere Laune.

Ich hab jetzt ne Kombination von euren Vorschlägen eingesetzt und es funktioniert.
Der Hauptfehler war, dass ich einen falschen Tabellennamen hatte. (register_globals war übrigens auf 'on')

das Skript ist für einen Lan-Party Anmeldung, $plid übergibt die Sitzplatznummer aus dem Formular.

falls es noch jemanden interessiert (ich hoffe richtig eingerückt :) ):

PHP:
$verbindung = @mysql_connect("localhost","blackalbino","");
if (!$verbindung) {
				echo "Keine Verbindung zur Datenbank möglich!\n";
				exit;  }
$nick=$HTTP_SESSION_VARS['USER']['nick'];
if ($plid>0) {
				$pruefung="select * from lan_280805 where plid='".$plid."'";
				$erg1 = mysql_db_query("blackalbino",$pruefung,$verbindung);
				}
if (mysql_num_rows($erg1)>0) {
				 $austrag="delete from lan_280805 where plid='".$plid."'";
				 mysql_db_query('blackalbino',$austrag,$verbindung);
				}
if (mysql_num_rows($erg1)==0) {
				 $eintrag="insert into lan_280805 values('".$plid."','".$nick."')";
				 mysql_db_query('blackalbino',$eintrag,$verbindung);
				 }
 }


Vielen Dank
MFG
Der_Ed
 
Zurück