Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Falsche Anzahl der Datensätze wird ausgegeben

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Falsche Anzahl der Datensätze wird ausgegeben

    Hallo,
    ich habe folgendes Problem. Und zwar möchte ich in Kategorien unterteilte Daten ausgeben und die Anzahl der eingetragenen Datensätze soll hinter dem Kategorie-Namen angezeigt werden. Es wird aber immer nur angezeigt das "1" Datensatz eingetragen ist, obwohl in der Kategorie 3 Stück eingetragen sind.

    Quellcode:
    PHP-Code:
    <?php 
    include ("config.php");

    $connectionid  mysql_connect ("$sqlhost""$sqluser""$sqlpw"); 
    if (!
    mysql_select_db ("$sqldb"$connectionid)) 

      die (
    "Keine Verbindung zur Datenbank"); 
    }
     
    $query "SELECT * FROM kategorien";
      
      
    $result mysql_query($query);
      
    $num_rows mysql_num_rows($result);
            if (
    $num_rows 0)
            {
                    while (
    $dat mysql_fetch_array($result))
                    {
                    
    $kategorie $dat["kategorie"];     
                        
    $id $dat["id"];                    
                        
                        
    $res mysql_query("SELECT COUNT(*) FROM bilder WHERE cid='$id' GROUP BY cid='$id'");
    $anzahl mysql_num_rows($res); 

                                         
    $ausgabe .= "<a href='kategorie.php?id=".$id."'>".$kategorie." (".$anzahl.")</a><br />";


         
                     
    $i++;                 
                    }
            }
            else
            {
             
    $ausgabe .= "Keine Einträge vorhanden!";
            }

    echo 
    $ausgabe;                    

    ?>
    Hoffe ihr wisst bescheid!

  • #2
    Hi, das

    PHP-Code:
    $res mysql_query("SELECT COUNT(*) FROM bilder WHERE cid='$id' GROUP BY cid='$id'");
    $anzahl mysql_num_rows($res); 
    ergbit auch keinen Sinn. Ich weiss wie du dir das vortstellst, aber bevor ich dir helfe halte dich erstmal hieran.

    Gruß
    Cy

    PS: Übrigens ist das eine Einsteiger-Frage, daher verschiebe ich das mal.

    Kommentar


    • #3
      Hab mich jetzt an den Thread gehalten und den Code etwas verändert.

      PHP-Code:
      <?php 
       error_reporting
      (E_ALL);  
       
      $ausgabe "";
      include (
      "config.php");

      $connectionid  mysql_connect ("$sqlhost""$sqluser""$sqlpw"); 
      if (!
      mysql_select_db ("$sqldb"$connectionid)) 

        die (
      "Keine Verbindung zur Datenbank"); 
      }
       
      $query "SELECT * FROM kategorien";
        
        
      $result mysql_query($query);
        
      $num_rows mysql_num_rows($result);
              if (
      $num_rows 0)
              {
                      while (
      $dat mysql_fetch_array($result))
                      {
                      
      $kategorie $dat["kategorie"];     
                          
      $id $dat["id"];                    
                          
                          
      $sql mysql_query("SELECT COUNT(*) FROM bilder WHERE cid='$id' GROUP BY cid='$id'");
      mysql_query($sql) or die(mysql_error());
      $anzahl mysql_num_rows($sql); 

                                           
      $ausgabe .= "<a href='kategorie.php?id=".$id."'>".$kategorie." (".$anzahl.")</a><br />";


           
                       
                      }
              }
              else
              {
               
      $ausgabe .= "Keine Einträge vorhanden!";
              }

      echo 
      $ausgabe;                    

      ?>
      Jetzt bekomm ich aber das hier: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #6' at line 1

      Kommentar


      • #4
        PHP-Code:
        $sql mysql_query("SELECT COUNT(*) FROM bilder WHERE cid='$id' GROUP BY cid='$id'");
        mysql_query($sql) or die(mysql_error());
        $anzahl mysql_num_rows($sql); 
        Guck dir mal an was du mit welchen Variablen wie oft machst. Außerdem wird der SQL-Error wohl durch GROUP BY cid='$id' kommen, was weder Sinn macht noch syntaktisch richtig ist. Du solltest dein Query mal im phpMyAdmin testen und auch mal schauen was rauskommt und ob das das ist was du haben willst.

        Kommentar


        • #5
          Ist dir das noch nicht aufgefallen? Du sendest deinen Query 2 mal an die Datenbank....

          PHP-Code:
          $sql mysql_query("SELECT COUNT(*) FROM bilder WHERE cid='$id' GROUP BY cid='$id'");
          mysql_query($sql) or die(mysql_error());
          $anzahl mysql_num_rows($sql); 
          Zudem ist es fraglich ob mysql_num_rows() da auch die entsprechende Anzahl zurück gibt, bin mir da jetzt aber nicht sicher.
          Versuch es mal so:


          PHP-Code:
          $sql "SELECT COUNT(*) AS num FROM bilder WHERE cid='$id'";

          $result mysql_query$sql ) or die( mysql_error() );
          $anzahl mysql_fetch_assoc$result );
          $anzahl $anzahl'num' ]; 
          [B]Mfg Tomtaz[/B]
          [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

          Kommentar


          • #6
            Zitat von tomtaz Beitrag anzeigen
            Ist dir das noch nicht aufgefallen? Du sendest deinen Query 2 mal an die Datenbank....

            PHP-Code:
            $sql mysql_query("SELECT COUNT(*) FROM bilder WHERE cid='$id' GROUP BY cid='$id'");
            mysql_query($sql) or die(mysql_error());
            $anzahl mysql_num_rows($sql); 
            Zudem ist es fraglich ob mysql_num_rows() da auch die entsprechende Anzahl zurück gibt, bin mir da jetzt aber nicht sicher.
            Versuch es mal so:


            PHP-Code:
            $sql "SELECT COUNT(*) AS num FROM bilder WHERE cid='$id'";

            $result mysql_query$sql ) or die( mysql_error() );
            $anzahl mysql_fetch_assoc$result );
            $anzahl $anzahl'num' ]; 

            Jetzt funktioniert es mit deinem Code. Musste aber erst die $result umbennen.

            Kommentar


            • #7
              Das freut mich, dann markiere mal fix das Thema als erledigt.
              [B]Mfg Tomtaz[/B]
              [I]"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..." [/I]:!::shock:

              Kommentar


              • #8
                Warum denn so furchtbar kompliziert. Das geht doch problemlos mit einer Abfrage:
                PHP-Code:
                ...
                $query "
                    SELECT 
                        id,
                        ketegorie,
                        COUNT(*) AS anzahl 
                    FROM 
                        kategorien
                    GROUP BY
                        id"
                ;
                $result mysql_query($query) or exit(mysql_error());
                while (
                $dat mysql_fetch_assoc($result)){
                    
                $kategorie $dat["kategorie"];     
                    
                $id $dat["id"];                    
                                           
                    
                $ausgabe .= "<a href='kategorie.php?id=$id'>$kategorie(" $dat['anzahl'] . ")</a><br />";

                Gruss
                L

                Kommentar


                • #9
                  Ähm lazydog, dein Script ergibt ohne 2te Tabelle irgendwie keinen Sinn...

                  [edit]

                  mit dem SQL-Statement macht lazydogs Script Sinn:

                  Code:
                      SELECT 
                          k.id,
                          k.kategorie,
                          COUNT(b.id) AS anzahl 
                      FROM 
                          bilder AS b
                      LEFT JOIN 
                          kategorien AS k
                      ON
                         k.id = b.cid
                      GROUP BY
                          k.id

                  Kommentar


                  • #10
                    Zitat von cycap Beitrag anzeigen
                    Ähm lazydog, dein Script ergibt ohne 2te Tabelle irgendwie keinen Sinn...
                    Sorry da hast du natürlich recht , habe ich übersehen. Geht aber trotzdem, die zweite Tabelle muss einfach mit rein:
                    PHP-Code:
                    $query 
                        SELECT  
                            k.id, 
                            k.kategorie, 
                            COUNT(b.*) AS anzahl  
                        FROM  
                            kategorien k
                        INNER JOIN 
                            bilder on k.id = b.cid
                        GROUP BY 
                            k.id"

                    [edit]
                    Da war wieder einer schneller
                    Gruss
                    L

                    Kommentar


                    • #11
                      Zitat von lazydog Beitrag anzeigen
                      [edit]
                      Da war wieder einer schneller
                      Schullileung

                      Kommentar

                      Lädt...
                      X