pragmaMx Support Forum

pragmaMx => Coder und Bastlerecke => Thema gestartet von: Breaker am 20 September 2007, 22:42:09

Titel: Array spinnt ?!?
Beitrag von: Breaker am 20 September 2007, 22:42:09
Die Tabelle in der DB enthält 24 Felder (kat1 bis kat24), diese Felder haben je unterschiedliche Werte, welche auch ausgelesen werden...zusätzlich zu den 24 Feldern werden aber auch Felder mit 0 bis 23 angezeigt, welche (eigentlich) garnicht existieren (Bild : http://www.mail-island.eu/kat.png )

<?php
function pwcKatSelect($k_kat) {
    global $prefix;
    $sql1=mysql_query("SELECT * FROM ".$prefix."_kategorien");
    $res1=mysql_fetch_array($sql1);
    $liste='<option value="all">'._ALLE_MITGLIEDER.'</option>';
    foreach($res1 as $key => $value) {
        $sel=($k_kat==$key) ? 'SELECTED' : '';
        $liste.='<option value="'.$key.'" '.$sel.'>'.$value.'</option>';
    }
    unset($key, $value);
    return $liste;
}
?>

Wie bekomme ich jetzt also die "Felder" 1-23 wieder weg ?, so das nurnoch "kat1" bis "kat24" inkl Werte angezeigt werden ?
Titel: Re: Array spinnt ?!?
Beitrag von: Andi am 20 September 2007, 22:54:41
Hi :)

http://www.php.net/manual/de/function.mysql-fetch-array.php
ZitatDie Daten werden sowohl unter numerischen Indizes des Ergebnis-Arrays abgelegt, als auch unter assoziativen Indizes. Als Schlüssel für die assoziativen Indizes werden die Feldnamen benutzt.

die Lösung wäre:
http://www.php.net/manual/de/function.mysql-fetch-assoc.php
Titel: Re: Array spinnt ?!?
Beitrag von: Breaker am 20 September 2007, 22:55:26
Ok, ich habs jetzt mit MYSQL_ASSOC lösen können :)

function pwcKatSelect($k_kat) {
   global $prefix;
   $liste='<option value="all">'._ALLE_MITGLIEDER.'</option>';
   $sql1=mysql_query("SELECT * FROM ".$prefix."_kategorien");
   while($res1=mysql_fetch_array($sql1, MYSQL_ASSOC)) {
      foreach($res1 as $key => $value) {
         $sel=($k_kat==$key) ? 'SELECTED' : '';
         $liste.='<option value="'.$key.'" '.$sel.'>'.$value.'</option>';
      }
   }
   unset($key, $value);
   return $liste;
}

Danke dir @ Andi :)