[PHP] splitten en controleren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
hallo ik heb onderstaande code. $mem kan bevatten "32" of het kan bevatten ",28,29,,,," of ",28,29,31,,". Wat ik wil is het volgende, ik bouw hieronder checkboxen op voor alle namen in de database, ik wil dathet script controlleert of een getal dat in $mem staat gelijk is aan de memberid die uit de database komt. de checkboxen worden gechecked maar alle members worden nu een x-aantal keer weergegeven, waarbij X in dit geval het aantal members is...hoe los ik dit op?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
$mem = explode(",", $info->wie);
$mem_count = count($mem);       
$queryi = mysql_query("SELECT * FROM ".$tabel_inlog." ORDER BY naam");      
while($geti=mysql_fetch_object($queryi)){
    for($i = 0; $i < $mem_count; $i++){
        if($geti->memberid == $mem[$i]){
            echo "<input name='".$geti->memberid."' type='checkbox' value='".$geti->memberid."' checked> ".$geti->naam."<BR>";   
        }
        else{
            echo "<input name='".$geti->memberid."' type='checkbox' value='".$geti->memberid."'> ".$geti->naam."<BR>";   
        }
    }
}


zo worden de checkboxen toegevoegd:

PHP:
1
2
3
4
5
6
$query = mysql_query("SELECT * FROM ".$tabel_inlog); 
while($get = mysql_fetch_object($query)){   
    if($_POST[$get->memberid] !== ""){
        $wie.= $_POST[$get->memberid].",";
    }
}

Acties:
  • 0 Henk 'm!

Verwijderd

je loopt nu eigenlijk dubbel door al je members heen:
je doet een loop door alle opgehaalde rijen, en daar binnen loop je nog een keer door alle members.
elke keer dat je door een rij heen loopt, wordt voor elke member een checkbox neergezet.

daarnaast is het volgens mij niet nodig om telkens de array $mem te doorlopen. handiger is te checken dmv
in_array ( $geti->memberid, $mem ).

tenslotte zou ik
PHP:
4
5
6
7
8
9
if($geti->memberid == $mem[$i]){ 
    echo "<input name='".$geti->memberid."' type='checkbox' value='".$geti->memberid."' checked> ".$geti->naam."<BR>";    
} 
else{ 
    echo "<input name='".$geti->memberid."' type='checkbox' value='".$geti->memberid."'> ".$geti->naam."<BR>";    
}

vervangen door
PHP:
4
5
6
echo "<input name='".$geti->memberid."' type='checkbox' value='".$geti->memberid."'";
if($geti->memberid == $mem[$i]) echo " checked";
echo "> ".$geti->naam."<BR>";

[ Voor 86% gewijzigd door Verwijderd op 09-04-2004 13:39 ]


Acties:
  • 0 Henk 'm!

Verwijderd

[knip] dubbelpost

[ Voor 99% gewijzigd door Verwijderd op 09-04-2004 13:39 ]


Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
thnx, het werkt emt je hulp, ik heb nu:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
            $mem = explode(",", $info->wie);
            $mem_count = count($mem);       
            $queryi = mysql_query("SELECT * FROM ".$tabel_inlog." ORDER BY naam");      
            while($geti=mysql_fetch_object($queryi)){
                if(in_array($geti->memberid,$mem)){
                    echo "<input name='".$geti->memberid."' type='checkbox' value='".$geti->memberid."' checked> ".$geti->naam."<BR>";
                }
                else {
                    echo "<input name='".$geti->memberid."' type='checkbox' value='".$geti->memberid."'> ".$geti->naam."<BR>";
                }
            }
            ?>

Acties:
  • 0 Henk 'm!

Verwijderd

ff nieuwsgierig: waarom sla je in $info->wie id's kommagescheiden op?

Acties:
  • 0 Henk 'm!

  • robg1984
  • Registratie: December 2002
  • Laatst online: 17-09 11:18
eerst waren die id's namen, en dus geen nummers, toen stond er in die kolom de namen gescheiden, de 'wie' dus.... nu zijn dat allemaal id's geworden....de bijbehorende naam haal ik vervolgens uit een andere tabel...
Pagina: 1