Schleife - Gibt nicht alle Datensätze aus

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

  • Schleife - Gibt nicht alle Datensätze aus

    Hallo, hab ein Problem mit dieser Schleife. Entweder ich bin blind oder es hat irgendwas.

    Ziel ist folgendes: Ich habe eine Tabelle mit Adressen, eine Tabelle mit Lieferungen. Ziel ist es, alle Adressen, die eine Lieferung gemacht haben, auszugeben.

    Ich habe eine Schleife, welche mir alle Adressen ausliest und prüft, ob es eine Lieferung zu dieser ID gibt. Gibt es eine oder mehr, so sollte sie eine Tabellenzeile mit Daten zu diesem Lieferanten ausgeben. Tut sie aber nicht, weil nicht alle Adressen, die eine Lieferung gemacht haben, ausgegeben werden...

    PHP-Code:
    <?php
    //Anzahl der Adressen zählen
    $sql "SELECT COUNT(a_id) FROM tbl_adressen";
    $sql mysql_query($sql);
    $row mysql_fetch_assoc($sql);
    $anzahl $row['COUNT(a_id)'];

    //Schleife prüft für jede Adresse, ob es eine Lieferung zu dieser gibt
    for ($i 1$i $anzahl$i++) {
    $sql_a "SELECT COUNT(l_id) FROM tbl_lieferung WHERE a_id = '".$i."'";
    if (
    $_POST["standort"] != "0"$sql_a .= " AND s_id = '".$_POST["standort"]."'";
    if (
    $_POST["datumvon"] != ""$sql_a .= " AND l_datum >= '".$_POST["datumvon"]."'";
    if (
    $_POST["datumbis"] != ""$sql_a .= " AND l_datum <= '".$_POST["datumbis"]."'";

    $sql_a mysql_query($sql_a);
    $row_a mysql_fetch_assoc($sql_a);
    $anzahl_a $row_a['COUNT(l_id)'];

    // Gibt es eine oder mehrere Lieferungen zu dieser Adresse -> Ausgabe der Daten.
    if ($anzahl_a 0) {
    $sql "SELECT * FROM tbl_adressen WHERE a_id = '".$i."'";                                  
      
    $sql mysql_query($sql);
      
    $row mysql_fetch_assoc($sql);
      echo 
    "<tr>";
      echo 
    "<td height=\"19\" ><div align=\"center\">".$row["a_firmenname"]."</div></td>";
      echo 
    "<td height=\"19\" ><div align=\"center\">".$row["a_strasse"]."</div></td>";
      echo 
    "<td height=\"19\" ><div align=\"center\">".$row["a_plz"]."</div></td>";
      echo 
    "<td height=\"19\" ><div align=\"center\">".$row["a_ort"]."</div></td>";
      echo 
    "<td height=\"19\" ><div align=\"center\">".$row["a_tel1"]."</div></td>";
      echo 
    "<td height=\"19\" ><div align=\"center\">".$row["a_fax"]."</div></td>";
      echo 
    "<td height=\"19\" ><div align=\"center\">".$row["a_email"]."</div></td>";
      echo 
    "</tr>";
     }
    $i++;
    }

    ?>

  • #2
    Schon mal was von JOIN gehört?
    Und von SQL-Injection?

    Kommentar


    • #3
      ja, genug..wieso?

      Kommentar


      • #4
        Könnte man beides hier verwenden. Sowohl im positiven Sinne als auch im Negativen Sinne.

        Darüber hinaus solltest du unsere Regeln beachten UND deinen Code vernünftig einrücken.

        Es macht auch keinen Sinn, dass du $sql immer überschreibst, auf den ersten Blick vermute ich da den Fehler. Einen zweiten Blick gibts erst nach Umsetzung der Regeln.

        Kommentar


        • #5
          eiei, ich bin ein depp.. ^^

          das Problem war, dass ich Lücken in meinen Datensätzen hatte, sprich, dass ich zwar Adressen bis 1400 habe, aber nur 1380 Datensätze -> Er kriegt deswegen nicht alle raus.

          Nagut, muss ich das umschreiben

          Kommentar


          • #6
            Joar, JOIN!

            Kommentar

            Lädt...
            X