PHP: in_array()

Dieses Thema PHP: in_array() im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Luca_, 2. Mai 2006.

Thema: PHP: in_array() folgender code: <?php $sql = SELECT week FROM xyz;; $result = mysql_query($sql) OR...

  1. folgender code:
    Code:
    <?php
    $sql = SELECT
            week
          FROM
            xyz;;
      $result = mysql_query($sql) OR die(mysql_error());
      $row = mysql_fetch_assoc($result);
      for ($i=1;$i<53;$i++) {
        if (in_array($i, $row)) echo <option value='?cweek=.$i.'>.$i.</option>\n;
      }
    ?>
    
    In der DB sind viele einträge, mit je einem Feld->week' welches die entsprechende Kalenderwoche darstellt.
    Mit diesem Code möchte ich ein Dropdown Menü machen, wo man die KW wählen kann und dann alle einträge diese KW sieht.
    Funktioniert eigentlich auch alles, jedoch liefert das mir nur die KW 17 zurück, im Dropdown Menü. Jedoch sind Einträge drin mit KW 16 und 17.

    Was mach ich falsch?
     
  2. Code:
    <select .........>
    <?php
    $sql = SELECT week FROM xyz;;
    $result = mysql_query($sql) OR die(mysql_error());
    while($row = mysql_fetch_row($result)) {
        if($row[0] == ) continue;
    	echo <option value='?cweek=.$row[0].'>Woche: .$row[0].</option>\n;
    }
    ?>
    </select>
    
     
  3. Danke für die schnelle Antwort!

    Doch leider funktioniert das ganze nicht so wirklich..
    Kannst du mir erklären, warum du die if-Abfrage machst? Was diese genau bewirken soll?

    Ich erhalte zwar das gewünschte resultat, jedoch gewissen Kalenderwochen doppelt und mehrfach, da es pro KW mehrere einträge hat.
     
  4. Soll einer behaupten wir währen nicht flexibel :2funny: :2funny:

    Dann halt so :°
    Code:
    <?php
    $sql = SELECT DISTINCT(week) AS week FROM xyz ORDER by week ASC;;
    $result = mysql_query($sql) OR die(mysql_error());
    
    while($row = mysql_fetch_row($result)) {
    	# Kontrollieren ob keine falschen oder 0 Werte im week-Feld stehen.
    	# Wenn es keine Zahl ist oder der Wert kleiner 1 ist, ist der Wert ungültig
    	if(!@ereg([0-9]{1,2}, $row[0]) || $row[0] < 1) continue;
    	
    	# Option in ein Array schreiben
    	$opt .= <option value='?cweek=.$row[0].'>Woche: .$row[0].</option>\n;
    }
    if(!count($opt)) {
    	# Nix gefunden in ein Array schreiben
    	$opt = <option>Keine Einträge</option>\n;
    }
    
    # Selectbox schreiben
    echo <form><select>;
    echo $opt;
    echo </select></form>;
    ?>
    
    PS:
    Davon stand nichts im Auftrag :tickedoff: :2funny:
     
  5. Sehr schön, das hat jetzt prima funktioniert :)

    Frage neben bei:
    MySQL Manual für Syntaxen und was es alles für Funktionen gibt, was für eines gebrauchst du da?
    Mit dem offiziellen komm ich nicht ganz zuschlage.. hat viel zu viele andere Informationen über Installation und Clustering drin..