Tina: Wie bekomme ich das Ergebnis eine MySQL COUNT Abfrage?

Hallo,

ich habe folgende Abfrage in PHP:

$sql="SELECT COUNT(id) FROM photo_base WHERE idseller ='3'";
$res = mysql_query ($sql, $verbindung);

Wenn ich die Select Anweisung direkt an MySQL sende, bekomme ich (etwa über phpMyAdmin) das korrekte Ergebnis, also etwa "15".

Wie lautet nun die einfache php Abfrage, um dieses Ergebnis zu bekommen?

Und wenn das unlogisch ist:
Ich will eine Funktion bauen, die mir einfach nur den Wert, wie oft ein bestimmter Eintrag in einer Tabelle vorkommt, zurückliefert. Den will ich dann um 1 erhöhen und verwerten.

Danke!
Tin

  1. Hallo,

    ich habe folgende Abfrage in PHP:

    $sql="SELECT

    COUNT(id) as 'anzahl'
             FROM
                 photo_base
             WHERE
                 idseller ='3'";

    $res = mysql_query ($sql, $verbindung);

    $daten=mysql_fetch_assoc($res);
      $count=$daten['anzahl'];

    oder als Funktion:

    function get_count_plus_one(&$verbindung,$tablename,$column,$where)
    {
         $sql_query="SELECT
                        COUNT($column) as 'anzahl'
                     FROM
                        $tablename
                     $where
                    ";
        $res = mysql_query ($sql_query, $verbindung);
        if ($res===false)
        {
            die(mysql_error());
        }
        $daten=mysql_fetch_assoc($res);
        return $daten['anzahl']+1;
    }

    Hoffe das hilft ;-)

    Michael

    1. Vielen Dank Euch beiden!
      Problem gelöst.

      Kuss, Tina

    2. Hi Michael,

      Hehe, zwei Deppen, eine Idee ;-)

      $res = mysql_query ($sql_query, $verbindung);
          if ($res===false)
          {
              die(mysql_error());
          }

      Das ließe sich aber noch zusammenfassen auf:

      $res = mysql_query ($sql_query, $verbindung) OR die(mysql_error());

      return $daten['anzahl']+1;

      Warum plus 1? Wer weiß, ob man dass immer braucht, weshalb ich das erst im Nachhinein auf das Funktionsergebnis addieren würde.

      MfG, Dennis.

      --
      Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
      Irre gehören ins Showgeschäft, sonst müsste ich da nicht sein. (Dieter Bohlen)
  2. Hi Tina,

    Wie lautet nun die einfache php Abfrage, um dieses Ergebnis zu bekommen?

    Du könntest die PHP Funktion mysql_result() nutzen, wobei du als Datensatz Nummer hier 0 angeben musst. Ich persöhnlich verwende lieber mysql_fetch_assoc(), dann solltest du aber auch deine SQL Abfrage etwas anpassen:

    SELECT  
      COUNT(*) AS anzahl  
    FROM  
      tabelle
    

    Dann könntest du das Ergebnis so abrufen:

    $data = mysql_fetch_assoc($res);  
    echo $data['anzahl'];
    

    Die Möglichkeit die Rückgaben mit mysql_fetch_assoc() in ein assozierter Array zu laden ist insbesonderen dann praktisch, wenn du mehrere Spalten abfragst.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
    Denn wer 'ne Blacklist hat, muss halt daran denken, dass er manches nicht sieht... und vor dem posten die Realitaet einschalten. (Sven Wacker)
    1. Hallo, Dennis!

      $data = mysql_fetch_assoc($res);

      echo $data['anzahl'];

        
      warum nicht einfacher mit [mysql_result()]( http://de2.php.net/mysql_result)?  
      `$data = mysql_result($res,0,'anzahl');`{:.language-sql}  
        
      freundl. Grüsse aus Berlin, Raik
      
      1. Hi Raik,

        warum nicht einfacher mit mysql_result()?
        $data = mysql_result($res,0,'anzahl');

        Da ich mysql_result() nicht so nutze, war mir das nicht so bekannt ;-)
        Ist aber wieder mal ein Stelle, an der die englische Version des PHP Manulas
        besser als die Deutsche ist.

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
        "Funktioniert nicht" hat exakt den selben Aussagewert wie "husseldiguggeldu" (Cheatah)