Schleife nur x-mal ausführen?

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

  • Schleife nur x-mal ausführen?

    Hallo,

    ich habe folgenden Code
    PHP-Code:
    <?php
    include("config.php");
    for(
    $i 0$i count($zid); $i++)
    $id_2 $zid[$i++]." AND ";
    $result mysql_query("select cocktail.name,mix.cid,cocktail.alk from cocktail,mix,zutat where zutat.zid = '$id_2' and mix.zid=zutat.zid and mix.cid=cocktail.cid") or die(mysql_error()) ;
    while (
    $row mysql_fetch_array($result)){
            echo(
                
    "<a href='show.php?id=$row[cid]&$row[name]'>$row[name]</a>"
                
            
    );
            echo 
    "<br>";
        }

        
    ?>

    Wie muss ich den Code abändern, dass diese Zeile
    PHP-Code:
    $id_2 $zid[$i++]." AND "
    nur sooft ausgeführt wie Daten in im Array sind.(Eigentlich Anzahl n - 1)


    Liebe Grüße
    Clemens

  • #2
    schlimm wenn ich den sinn nich verstehe?

    warum überschreibst du $id_2 immer?

    warum hast du in deiner abfrage WHERE spalte='$id_2' und nicht WHERE spalte=$id_2?

    fragen über fragen?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      ich glaube Du hast da einen Fehler Du überschreibst $id_2 immer
      ich glaube ein implode ist besser als Diene schleife, wenn ichs richti gedeutet hab
      Beantworte nie Threads mit mehr als 15 followups...
      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

      Kommentar


      • #4
        was versuchst du mit $zid[$i++] zu bezwecken? du hast doch schon oben $i++ geschrieben, dann schreib jetzt entweder $zid[$i+1], oder $zid[$i](was mir scheinbar mehr deinem zweck entspricht), jenachdem was du willst.
        Die Musikreview Seite

        hi, i'm a signature virus. copy me into your signature to help me spread.

        Kommentar


        • #5
          um mal auf deine frage zu kommen..

          eine schleife kann man mit break; abbrechen, mit continue; kann man den aktuellen durchgang überspringen
          mfg

          Kommentar


          • #6
            äh.... das war aber doch garnicht seine frage....


            Das Problem ist bei ihm einfach dass er jeden zweiten wert überspringt, da er zweimal $i++ schreibt.
            Die Musikreview Seite

            hi, i'm a signature virus. copy me into your signature to help me spread.

            Kommentar


            • #7
              for($i = 0; $i < count($zid); $i++)
              $id_2 = $zid[$i++]." AND ";

              Keine Ahnung was das Problem is aber ein problem is sicher dass $id_2 immer überschrieben wird und nie verwendet.
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Kommentar


              • #8
                Original geschrieben von Tartax
                was versuchst du mit $zid[$i++] zu bezwecken? du hast doch schon oben $i++ geschrieben, dann schreib jetzt entweder $zid[$i+1], oder $zid[$i](was mir scheinbar mehr deinem zweck entspricht), jenachdem was du willst.
                was ich will:

                das er die IDs aus dem Array in die Abfrage einfügt. das kann jetzt nur 1 ID sein, aber auch 10.
                Problem für mich is jetzt, wie ich das mache mit "AND", also der verknüpfung?!?

                Kommentar


                • #9
                  AND is da nicht so wahnsinnig gut zu gebrauchen oder kennst du nen datensatz bei dem die ID gleichzeitig 5 und 6 is?
                  PHP-Code:
                  $ids='('.implode(','$dein_array).')';
                  $sql='SELECT * FROM tabelle
                  where id IN '
                  .$ids
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    da kommt aber ein parse error...
                    Beantworte nie Threads mit mehr als 15 followups...
                    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                    Kommentar


                    • #11
                      Les dochmal.... 1. du schreibst zweimal $i++....
                      2. du überschreibst immer... aber was du eigendlich machen willst ist sicherlich das was implode() macht!
                      Die Musikreview Seite

                      hi, i'm a signature virus. copy me into your signature to help me spread.

                      Kommentar


                      • #12
                        Original geschrieben von MelloPie
                        da kommt aber ein parse error...
                        korrigiert

                        danke
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          hehe wollte nur ein Post vorweg nehmen :-)
                          Beantworte nie Threads mit mehr als 15 followups...
                          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                          Kommentar


                          • #14
                            Hab das ganze jetzt so gestaltet:
                            PHP-Code:
                            <?php
                            include("config.php");


                            $ids='('.implode(','$zid).')';

                            $result mysql_query("select DISTINCT cocktail.name,mix.cid,cocktail.alk from cocktail,mix,zutat where zutat.zid IN $ids and mix.zid=zutat.zid and mix.cid=cocktail.cid") or die(mysql_error()) ;
                            while (
                            $row mysql_fetch_array($result)){
                                    echo(
                                        
                            "<a href='show.php?id=$row[cid]&$row[name]'>$row[name]</a>"
                                                
                            );
                                    echo 
                            "<br>";
                                }

                                
                            ?>
                            Abfrage funktioniert auch grundsätzlich.
                            Problem ist weiterhin folgendes:

                            ANgenommen ich suche Coktails mit diesen Inhalten:
                            O-Saft, Amarena Kirsch, Grenadine, Sahne,Zitronensaft, Ananassaft

                            dann findet er mir auch Cocktails mit den selben inhalten die aber zusätzlich noch zB Grapefruitsaft enthalten. Das sollte nach meinen Wünschen nicht sein, da ich ja nur die Cocktails angezeigt haben möchte, die mit meinen Zutaten die ich zu Hause habe, gemixt werden können.

                            Wo ist der Fehler??

                            Kommentar


                            • #15
                              hat niemand einen ratschlag für mich?

                              Kommentar

                              Lädt...
                              X