Sql Query innerhalb der while Schleife

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

  • Sql Query innerhalb der while Schleife

    Ich möchte eien Tabelle dynamisch ausgeben lassen und dazu verwende ich eine while Schleife und innerhalb der while Schleife werden 3 versch. Queries ausgeführt.
    Nur leider geben Die Querys alle NULL aus.

    Hier der Code:

    PHP-Code:
       $sql mysql_query("Select * from tbl_Uebersicht");

      while(
    $row mysql_fetch_array($sql))
      {
       
    $query1 = ("Select max(Datum) as Datum, max(Uhrzeit) as 
    Uhrzeit from tbl_Comments where F_ID_Uebersicht="
    .$row['ID']."");
       
    $maxdate mysql_fetch_array($query1);
      
       
    $query2 = ("SELECT count(F_ID_Uebersicht) as Uebersicht from 
    tbl_Comments where F_ID_Uebersicht="
    .$row['ID']."");
       
    $countcomm mysql_fetch_array($query2);

       
    $query3 = ("SELECT count(distinct F_id_pic) as dis from 
    tbl_Comments where F_ID_Uebersicht="
    .$row['ID']."");
       
    $discomm mysql_fetch_array(query3);

       echo
    '<tr>';
       if (
    $countcomm["Uebersicht"] == 0)
       {
          echo 
    '<td>Berlin4fun</td><td align="center"> ---</td><td 
    align="center">---</td><td align="center">---</td>'
    ;
       }
       else
       {
       echo 
    '<td>'.$row['Fotograf'].'</td><td 
    align="center">'
    .$discomm["dis"].'</td><td 
    align="center">'
    .$countcomm["Uebersicht"].'</td><td 
    align="center">'
    .$maxdate["Datum"].', '.$maxdate["Uhrzeit"].
    Uhr</td>'
    ;
       }
       echo 
    '</tr>';
      } 
    $row['ID'] gibt bei jedem Schleifnedurchlauf die richtige ID aus, sodass es nicht an dieser Variable liegen kann.
    Ein Syntaxfehelr kann ich mir auch nicht vorstellen.
    HIer das warning, was ausgegeben wird!


    Warning: mysql_fetch_array(): supplied argument is not a valid
    MySQL result resource in
    /usr/export/www/vhosts/funnetwork/hosting/bday06/src/galleries.
    php on line 168
    Diese Meldung erfolgt halt 3x pro Schleifendurchlauf für jedes Query.

    Ich bitte um hilfe. Leider weiß ich keinen Rat mehr.

    Danke im voraus

  • #2
    was gibt z.b.
    PHP-Code:
    $maxdate mysql_fetch_array($query1) or die (mysql_error()); 
    aus?

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      hab es an den 3 querys angehangen udn nun kommt nurnoch 1x das warning.


      Warning: mysql_fetch_array(): supplied argument is not a valid MySQL
      result resource in
      /usr/export/www/vhosts/funnetwork/hosting/bday06/src/galleries.php
      on line 169

      Kommentar


      • #4
        http://www.php-resource.de/forum/sho...threadid=50454

        mysql_query() ist da informativer, als mysql_fetch_irgendwas().

        Kommentar


        • #5
          also ich würde ja die einzelnen "$query1" auch an die DB übergeben!

          Falsch:
          PHP-Code:
          $query1 = ("Select max(Datum) as Datum, max(Uhrzeit) as 
          Uhrzeit from tbl_Comments where F_ID_Uebersicht="
          .$row['ID']."");
             
          $maxdate mysql_fetch_array($query1); 
          Richtig:
          PHP-Code:
          $query1 mysql_query("Select max(Datum) as Datum, max(Uhrzeit) as 
          Uhrzeit from tbl_Comments where F_ID_Uebersicht="
          .$row['ID']."");
             
          $maxdate mysql_fetch_array($query1); 
          Bestimmt nur ein versehen.

          Kommentar


          • #6
            Original geschrieben von MTCook
            also ich würde ja die einzelnen "$query1" auch an die DB übergeben!

            Falsch:
            PHP-Code:
            $query1 = ("Select max(Datum) as Datum, max(Uhrzeit) as 
            Uhrzeit from tbl_Comments where F_ID_Uebersicht="
            .$row['ID']."");
               
            $maxdate mysql_fetch_array($query1); 
            Richtig:
            PHP-Code:
            $query1 mysql_query("Select max(Datum) as Datum, max(Uhrzeit) as 
            Uhrzeit from tbl_Comments where F_ID_Uebersicht="
            .$row['ID']."");
               
            $maxdate mysql_fetch_array($query1); 
            Bestimmt nur ein versehen.
            jo, wie gesehen, hab ioc hes vor der while schleifen mitgenoommen ud ndie anderen drei sind jeweisl copy and paste und deshalb scheine ic hsie wohl vergessen zu haben....

            Danke, aber noch gibt es nen Problem im letzten query.

            Warning: mysql_fetch_array(): supplied argument is not a valid
            MySQL result resource in
            /usr/export/www/vhosts/funnetwork/hosting/bday06/src/galleries.
            php on line 175

            Kommentar


            • #7
              ein $ hat gefehlt... Danke!!!!

              Kommentar


              • #8
                NEUES PROBLEM!!!!!!!

                Nun habe ich wiederum ein Problem mit ner while Schleife.
                DAs Query, welches den Schleifendurchlauf bearbeitet, gibt mehrere Datensätze aus, jedoch zeigt es mir nur einen Datensatz aus.

                ICh bin leider noch nicht so fit in Fehlerbehebung, wenn keine Fehlermeldung entsteht.

                Habt ihr ne idee doer wie sollte man am besten heran geehen, wenn man einen Fehler hat?

                PHP-Code:
                     <table border="1">

                <?php
                $sql2 
                mysql_query("SELECT tbl_name from tbl_Uebersicht where 
                ID="
                .$_GET['gal']."");
                $tabname mysql_fetch_assoc($sql2);

                $sql mysql_query("SELECT distinct(F_id_pic) as Pic, 
                F_ID_Uebersicht FROM `tbl_Comments` WHERE 
                F_ID_Uebersicht="
                .$_GET['gal']."");

                 while(
                $row =  mysql_fetch_array($sql))
                 {
                    
                $sql mysql_query("Select * from ".$tabname['tbl_name'].
                where P_ID_pic="
                .$row['Pic']." ");
                    
                $Picture mysql_fetch_array($sql);
                    echo
                '<tr>';
                       echo
                '<td><a href="#"><img 
                src="../'
                .$Picture['short_link'].'"></a></td>';
                       echo
                '<td>Text</td>';
                    echo
                '</tr>';
                 }
                ?>
                    </table>
                Vielen Dank im voraus

                Kommentar


                • #9
                  Dann lern testausgaben zu machen, grundlagen und logisch denken.

                  wenn deine Query mehrere DS zurückliefert, du aber nur den ersten ausgibst, was wundert dich daran?

                  Dass man dazu eine Schleife benötigt, ist wohl klar, oder?

                  PS: Wann eröffnest du den Thread, dass deine Scripte zu viel Performance schlucken?

                  Kommentar


                  • #10
                    PHP-Code:
                    $sql = ...
                    while(
                    $row =  mysql_fetch_array($sql))
                    {
                        
                    $sql = ...

                    du überschreibst immer wieder deinen query.

                    gruß
                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      du überschreibst immer wieder deinen query.
                      Ja und? Das ist 1.000 mal besser, als wenn man nachher variblen der form sql1, sql2, ... sqlN hat.

                      Wie oft führst du deine Queries denn aus? Hast du auch ein leichtes performance-problem?

                      Kommentar


                      • #12
                        Original geschrieben von Kropff
                        PHP-Code:
                        $sql = ...
                        while(
                        $row =  mysql_fetch_array($sql))
                        {
                            
                        $sql = ...

                        du überschreibst immer wieder deinen query.

                        gruß
                        peter
                        stimmt, vielen Dank... hehe

                        Hätte ick aber sehen müssen.

                        Es fret mich, dass es imemrnoch welche gibt die auc heinfach nru normal antworten können...

                        Kommentar


                        • #13
                          ok, sorry.

                          $sql wird hier im forum weitläufig für die query, nicht für das result verwendet.

                          Kommentar


                          • #14
                            Original geschrieben von TobiaZ
                            ok, sorry.

                            $sql wird hier im forum weitläufig für die query, nicht für das result verwendet.
                            geht doch

                            Kommentar

                            Lädt...
                            X