Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] MySQL Query verschiedene Ergebnisse PHP und MySQL

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] MySQL Query verschiedene Ergebnisse PHP und MySQL

    Hallo,
    ich stehe hier gerade etwas auf dem Schlauch und weiß net mehr weiter.
    Folgendes Query habe ich mir gebastelt, es listet mir verfügbare Unterthemen zu einem bestimmten Oberthema auf. Desweiteren soll es mir die genaue Anzahl der Inhalten im jeweiligen Unterthema anzeigen.

    Code:
    SELECT cat.cName, cat.cID, 
       (SELECT COUNT(*) FROM db3 WHERE eID = 1 AND cID =cat.cID) AS Anzahl
    FROM 
       db_ex ex, db_cat cat, db_catex catex
    WHERE
        catex.eID = 1 AND cat.cID=catex.cID 
    GROUP BY cat.cID
    ergibt in MySQL 4 Datensätzen.

    Wenn ich das gleich SQL Statement in PHP Laufen lassen, erhalte ich nur 3 Datensätzen.

    $stmt->bindParam(':eID', $eID, PDO::PARAM_INT);
    $stmt->execute();
    $stmt->fetch(PDO::FETCH_ASSOC);


    PHP-Code:
    echo "<pre>"print_r($stmt->fetchAll(PDO::FETCH_ASSOC), true) ."</pre>"
    ergibt:

    PHP-Code:


    Array
    (
        [
    0] => Array
            (
                [
    cName] => Text 1
                
    [cID] => 2
                
    [Anzahl] => 2
            
    )

        [
    1] => Array
            (
                [
    cName] => Text 2
                
    [cID] => 3
                
    [Anzahl] => 1
            
    )

        [
    2] => Array
            (
                [
    cName] => Text 3
                
    [cID] => 4
                
    [Anzahl] => 1
            
    )



    Jemand eine Idee / Lösung?


  • #2
    Zitat von Matt0815 Beitrag anzeigen
    PHP-Code:
    $stmt->bindParam(':eID'$eIDPDO::PARAM_INT);
    $stmt->execute();
    $stmt->fetch(PDO::FETCH_ASSOC);
    echo 
    "<pre>"print_r($stmt->fetchAll(PDO::FETCH_ASSOC), true) ."</pre>"
    Führst du wirklich die letzten beiden Zeilen so direkt hintereinander aus?

    Wenn ja - bitte Hirn einschalten

    $stmt->fetch(PDO::FETCH_ASSOC); holt den ersten Datensatz ab (den du dann einfach wegwirfst, weil du ja nichts damit machst), und setzt den Zeiger auf den nächsten.

    Preisfrage (für alle, die den Matheunterricht in der Grundschule nicht geschwänzt haben): Wie viel ist 4 minus 1?

    Genau, und diese Anzahl verbleibender Datensätze gibt $stmt->fetchAll dann auch noch aus.

    Kommentar


    • #3
      Hallo Chris,

      danke für die Antwort. Mit
      PHP-Code:
      echo "<pre>"print_r($stmt->fetchAll(PDO::FETCH_ASSOC), true) ."</pre>"
      wollte ich mir die Sache nur mal ansehen. Aber der Tip mit dem Hrin hat geholfen

      Du hast natürlich recht, es ist sehr sinnlos erst
      PHP-Code:
       $stmt->fetch(PDO::FETCH_ASSOC); 
      zu machen und dann eine schleife um die Daten auszugeben . Logisch das er da nur 3 anzeigt.... Asche auf mein Haup.

      Danke für den Denkanstoß, das habe ich total übersehen...

      Kommentar

      Lädt...
      X