jenslm: count und join?

  
$sql = "SELECT COUNT(id) FROM tab1 INNER JOIN tab2 ON tab1.id = tab2.id WHERE tab2.test = 'wert' WHERE paramter = 'wert'";  
$result = mysql_query($sql);  
$number = mysql_result($result, 0);  

die abfrage ohne count funktioniert einwandfrei. mit count:

mysql_result(): supplied argument is not a valid MySQL result resource in line x ...

was mach ich falsch?

lg, jens

  1. Hi,

    die abfrage ohne count funktioniert einwandfrei. mit count:

    mysql_result(): supplied argument is not a valid MySQL result resource in line x ...

    was mach ich falsch?

    Du betreibst keine sinnvolle Fehlerbehandlung.

    Die genannte Meldung ist ein Folgefehler, weil du mit PHP auf Datensätze zuzugreifen versuchst, die die Datenbank gar nicht geliefert hat (weil ihrerseits ein Fehler auftrat).

    Werte nach dem Aufruf von mysql-Funktionen in PHP zunächst deren Rückgabewert aus, um zu schauen, ob sie von der Datenbank fehlerfrei ausgeführt werden konnten. Wenn nein, dann frage die Datenbank nach dem Fehler - dafür gibt es mysql_error().

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. ok recht dummer fehler

        
      SELECT COUNT(tab1.id) FROM tab1 INNER JOIN tab2 ON tab1.id = tab2.hid WHERE tab2.display = '$display' AND lang = '$lang'  
      
      
      $result = mysql_query($sql);  
      $number = mysql_result($result, 0);  
        
      echo $number;
      

      gibt 0 aus. Aber ich moechte damit zaehlen wie viele datensaetze in tab 1 existieren, deren id mit der hid in tab2 uebereinstimmen und gleichzeitig den wert $lang in der spalte lang von tab1 haben. da muesste einer verfuegbar sein!

      ich nehm mal an dass es hierran liegt:

        
      SELECT COUNT(tab1.id)
      

      lg, jens

  2. Hallo Jens,

    SELECT COUNT(id) FROM tab1 INNER JOIN tab2 ON tab1.id = tab2.id WHERE tab2.test = 'wert' WHERE paramter = 'wert'  
    
    

    die abfrage ohne count funktioniert einwandfrei. mit count:

    das kann ich nicht glauben.

    was mach ich falsch?

    Dir keine SQL-Grundlagen anzueignen, obwohl Du auf Datenbanken zugreifen willst. *Das* da hatte ich Dir schon einmal gesagt.

    Freundliche Grüße

    Vinzenz

  3. die abfrage ohne count funktioniert einwandfrei.

    Das hier soll funktinieren?

      
    SELECT (id)  
    FROM tab1  
    INNER JOIN tab2 ON tab1.id = tab2.id  
    WHERE tab2.test = 'wert'  
    WHERE paramter = 'wert'  
    
    

    Gib das mal in phpmyadmin direkt ein.

    was mach ich falsch?

    1. id ist mehrdeutig
    2. zweimal WHERE

    Gruß,
    Kalle