2 Selects = Fehler?

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

  • 2 Selects = Fehler?

    Hallo Programmierer

    Ich habe folgendes Problem mit selects:

    Ich mache ein select und werte dies in einem loop aus. In diesem Loop befinden sich zwei weitere selects.
    Jetzt hört er aber beim ersten select immer nach einem Durchgang auf ($auctscount ergibt 1). Wenn ich die inneren Selects rausnehme findet er mehrere.

    PHP-Code:
    <?php
    include("../libs/settings.inc.php");
      require(
    "../libs/mysql.lib.php");
      
    $mysql = new mysql();
      
    $auctscount=0;
      
    $getaucts_r=$mysql->select($settings['mysql']['db'],"auctions","*","Time<".time());
        while(
    $getaucts2=mysql_fetch_array($getaucts_r,MYSQL_BOTH))
        {
        
    $auctscount++;
            
    // auction has ended
            
            //refresh
            
    $getaucts_r=$mysql->select($settings['mysql']['db'],"auctions","*","Time<".time()." AND UnID='".$getaucts2['UnID']."'");
            while(
    $getaucts=mysql_fetch_array($getaucts_r,MYSQL_BOTH))
            {        
                
                
    // get pos
                
    $storepos=array();
                
    $posc=0;
                
    $getitem_r=$mysql->select($settings['mysql']['db'],"userItems","Pos","USERID=".$getaucts['Bidder']." AND Pos LIKE 'b_%'");
                   while(
    $getitem=mysql_fetch_array($getitem_r,MYSQL_BOTH))
                {
                
    $storepos[$posc]=$getitem['Pos'];
                
    $posc++;
                }
                
            }    
        }
        echo(
    $auctscount." rows");

    Mit der Klasse mysql solltet ihr klarkommen, die ist nicht sonderlich kompliziert

    Hoffe jemand kann mich da beraten!

    Danke im Voraus und MfG

    Onyxagargaryll


    EDIT: UnID ist ein auto_increment PK. Das zweite select brauche ich, um die Daten zu "refreshen". Das ganze funktioniert auch nicht, wenn ich das dritte Select rausnehme.
    Zuletzt geändert von Onyxagargaryll; 25.04.2008, 09:47.

  • #2
    Dir ist schon klar, dass du die Resource ($getaucts_r) immer wieder überschreibst???

    Kommentar


    • #3
      Ich vermute du überschreibst ungewollt eine MySql-Ressource
      PHP-Code:
      $getaucts_r=$mysql->select($settings['mysql']['db'],"auctions","*","Time<".time()); 
      Diese Ressource wird für die while-Schleife gebraucht. Nur innerhalb der Schleife verwendest du nochmals den gleichen Var Namen --> die Ressource ist überschrieben und die äussere Schleife läuft nicht mehr korrekt.
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        $getaucts_r wird von den beiden unteren querys wieder überschrieben und kann dann while($getaucts2=mysql_fetch_array($getaucts_r,MYSQL_BOTH)) nicht mehr die resouce auswerten, die du gerne ausgewertet hättest...
        signed oder unsigned... das ist hier die Frage

        Kommentar


        • #5


          Manchmal sieht man den Wald vor lauter Bäume nicht mehr...

          Ich danke dir für die schnelle Antwort ^^

          (Ich hoffe doch, das bleibt unter uns :P)

          MfG
          Onyx

          Kommentar


          • #6
            OffTopic:
            Haben schon mindestens drei Leute mitbekommen. :P

            Kommentar


            • #7
              Re: 2 Selects = Fehler?

              Original geschrieben von Onyxagargaryll

              ..., die ist nicht sonderlich kompliziert
              Vermutlich auch nicht besonders schlau
              Original geschrieben von Onyxagargaryll
              Das zweite select brauche ich, um die Daten zu "refreshen".
              Super Idee
              Aber was solls, unterdessen hat dich jahlives ja schon auf den Fehler aufmerksam gemacht
              Gruss
              H2O

              Kommentar


              • #8
                Naja das script ist stark vereinfacht ^^

                Den refresh brauch ich schon... aber die erste schleife ginge auf jeden Fall mit einem Count einfacher :P Aber lassen wir die Details..

                Und ja, die Klasse mysql ist net sonderlich schlau, aber ich muss sie benutzen ^^ (Anweisung )

                Ich danke allen für die Mithilfe

                MfG
                Onyx

                Kommentar


                • #9
                  Ich wollte auch nicht einfach nur rumnörgeln. Ich bin mir aber fast sicher, dass das alles mit einer Abfrage und einem GROUP BY zu erledigen wäre.
                  Gruss
                  H2O

                  Kommentar


                  • #10
                    Anhand des oben geposteten Beispiels durchaus, ja
                    Aber im Script selber folgen in den unteren Selects dann je nach dem x deletes, updates, etc, so dass es einfacher ist, wenn ich die DB einfach nochmals auslese.

                    Aber danke für den Vorschlag!

                    MfG
                    Onyx

                    Kommentar

                    Lädt...
                    X