SELECT in eienr schleife vermeiden

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

  • SELECT in eienr schleife vermeiden

    hi...

    wie kann ich in dem folgenden ausschnitt das SELECT in der schleife vermeiden? ich denk so viele quereis abzusetzen ist nicht so gut, aber habe gerade keine andere idee gehabt.

    danke schon al für hilfe.

    PHP-Code:
    for($i=0$i $teilnehmer$i++){
         
            
    $sql "SELECT jahrgang FROM tbl_laeufer WHERE laeufer_id = '".$_POST['laeufer_id'][$i]."'";
            
    $res $this -> db -> sql($sql);
            
    $row mysql_fetch_array($res);
            
            if (
    $row['jahrgang'] != ""
              
    $ak $this -> berechneAK($row['jahrgang'])
            else {
              
    $sql "SELECT ak FROM tbl_ak WHERE jahr = '".$_SESSION['jahr']."' AND laeufer_id='".$_POST['laeufer_id'][$i]."'";
              
    $res $this -> db -> sql($sql);
              
    $row mysql_fetch_array($res);
              
    $ak $row1['ak'];
            } 
         
         } 

  • #2
    lies das mal hier.
    http://www.php-resource.de/forum/sho...threadid=28292


    *VERSCHIEB* nach sql
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      hi...

      du hast mir das posting mit den joins genannt. aber wie kann ich das auf mein problem anwenden? ich habe ja immer nur eine abfrage für eine tabelle und mache kein verknüpfungen.

      EDIT:

      ok ich habe 2 tabellen drin die kann ich verknüpfen, aber ich wollte ja das erste select in der schleife vermeiden. geht das irgendwie?

      Zuletzt geändert von lx-club; 25.05.2004, 12:34.

      Kommentar


      • #4
        Original geschrieben von lx-club
        [...] und mache kein verknüpfungen.
        warum machst du dann eine schleife für ein select?
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          ich habe ja immer nur eine abfrage für eine tabelle
          Nicht immer. Hoffentlich auch nicht öfter.
          Eine Abfrage für 2 Tabellen -> join!

          Kommentar


          • #6
            ich mache die schleife, weil ich doch bei jedem durchlauf den jahrgang ermitteln will, der zu der jeweiligen id des läufers gehört

            Kommentar


            • #7
              Original geschrieben von lx-club
              EDIT:

              ok ich habe 2 tabellen drin die kann ich verknüpfen, aber ich wollte ja das erste select in der schleife vermeiden. geht das irgendwie?

              JOINs
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Original geschrieben von lx-club
                ich mache die schleife, weil ich doch bei jedem durchlauf den jahrgang ermitteln will, der zu der jeweiligen id des läufers gehört
                JOINs
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Original geschrieben von fuser
                  Nicht immer. Hoffentlich auch nicht öfter.
                  Eine Abfrage für 2 Tabellen -> join!
                  s. mein EDIT

                  Kommentar


                  • #10
                    Original geschrieben von lx-club
                    s. mein EDIT
                    siehe meine posts
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      Original geschrieben von Abraxax
                      JOINs
                      also aus der oberen tabelle hole ich mir den jahrgang, und nur wenn da nix drinsteht in dem feld, gehe ich in die andere tabelle, wo die altersklasse drin steht. ich habe das so getrennt, weil man nicht immer das geburtsjahr weis und somit auch die AK angeben kann. wenn ich später das geburtsjahr weis wird der eintrag aus der tbl_ak gelöscht, weil man diese anhand des jahrganges berechnen lassen kann

                      Kommentar


                      • #12
                        Tipp: du joins die Tabellen, liest den Wert aus der Defaultspalte, wenn der nicht existiert liest du den Wert aus Alternativspalte. Alles klar?

                        BTW: schaut dir $ak nach Schleifendurchlauf mal an. Was fällt auf?

                        Kommentar


                        • #13
                          du meinst den defaultwert in der tbl_laeufer?

                          aber worauf ic heigentlich hinaus wollte, in der ersten select - anweisung habe ich ja immer eine läufer _id, und da ich mehrere läufer habe, führe ich das select mehrmals hintereinander aus. das wollte ich irgendwie vermeiden.

                          Kommentar


                          • #14
                            1. Ein Query kann mehrere Zeilen haben
                            2. Ein Query kann aus mehreren Tabellen erstellt werden

                            d.h.

                            ein Query für alle Läufer,
                            eine Schleife durch alle Zeilen

                            Kommentar


                            • #15
                              hi...

                              also die schleife durch alle zeilen ist schon klar, nur ich will das select nicht in der schleife haben, oder erübrigt sic hdas dann durch den join?

                              eine schleife für alle läufer? ich habe ungefähr 1000 einträge dort und brauch maximal 100 davon
                              Zuletzt geändert von lx-club; 25.05.2004, 13:53.

                              Kommentar

                              Lädt...
                              X