Unsupplied Argument --- Warum?

Eiszwerg

Erfahrenes Mitglied
N'Abend liebe Tutorialer,

Folgender Fehler:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /local/var/www/2/2/2320/www/code/home.php on line 68

bei folgendem Code:
PHP:
include("vars.php");
          mysql_connect ($server,$user,$pw) or die ("Es besteht keine DB Verbindung :o(");
          $dbanfrage1 = "SELECT * FROM $table3 WHERE to=$user_id";
          $result1 = mysql_db_query ($db, $dbanfrage1);
          $anz1 = mysql_num_rows($result1);

$user_id = Id des Users, der per session eingeloggt ist

$table3 hat folgende Spalten:
id | datum | to | from | email | mess

Weiss jemand Rat?
 
Hoffe ich kann dir helfen :).

Also hast du schon einmal den Query ausgeben lassen?
Ist "$db" definiert?
Check mal die Variablen.
Dann hilf auch oft der Beisatz hinter deinen Query
PHP:
 mysql_query($this) OR die(mysql_error());

Laut Refernz ist es außerdem besser [phpf]mysql_query[/phpf] zu verwenden ,du muss
dann auch mit [phpf]mysql_select_db[/phpf] die Datenbank selektieren.
 
Das lustige ist, wenn ich mit dem selben Code (abgesehen von $table3 und dem Zusatz WHERE) meine News zählen lasse funktioniert es.
$table3 und die anderen Werte sind definitv in vars.php gesetzt.
Habe Sie mir schon anzeigen lassen.
Die Tabelle beinhaltet auch Werte.
 
Ich sehe grade etwas:
PHP:
 $dbanfrage1 = "SELECT * FROM ".$table3." WHERE to='".$user_id."'";
Ansonsten lass dir den Fehler des Query`s ausgeben und wie oben beschrieben
PHP:
echo $dbanfrage1;
.
 
PHP:
echo "$dbanfrag1";
ergibt, wie es sein soll:

SELECT * FROM message WHERE to=1

Also völlig korrekt.
 
Versuch' mal Folgendes:
PHP:
<?php
  [...]
  include("vars.php"); 
  mysql_connect($server, $user, $pw);
  mysql_select_db($bd);

  $query = "
	SELECT
	        COUNT(*)
	  FROM
	        `".$table3."`
	  WHERE
	        `to` = ".$user_id."
	"; 
  if( !$result = mysql_query($query) ) {
    echo '<div><strong>MySQL Error <tt>'.mysql_errno().'</tt>:</strong> '.htmlspecialchars(mysql_error()).'<pre>'.$query.'</pre></div>';
    exit;
  }
  list($anz1) = mysql_fetch_array($result, MYSQL_NUM);
  [...]
?>
MySQL gibt die Meldung zurück, da es sich bei dem Spaltenbezeichner to um einen reservierten Begriff handelt:
&nbsp;&rsaquo;&rsaquo;&nbsp;MySQL Manual | 7.1.6 Ist MySQL pingelig hinsichtlich reservierter Wörter?
 
GUMBO ICH KNUTSCH DICH ;-)

Sorry, wegen durchegehender Grossschreibung.

Es lag einfach nur am "to".
Kann sich ja kein Mensch die ganzen reservierten Wörter merken, oder?

Vielen Dank an alle Beteiligten!
 
Zurück