Toon posts:

[PHP] UPDATEN meerdere geselecteerde rows

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zit met het volgende probleem:
Er is een tabel renners, deze tabel bevat informatie aan welke wedstrijden de renners meedoen.
Ik wil deze tabel graag per ploeg in 1 keer kunnen updaten.
Wat heb ik al gedaan:
Een SELECT selecteert netjes de renners in de ploeg en in een form krijgt iedere renner in de while lus zijn eigen checkbox , de checkbox is al gechecked als de renner op dit moment in de selectie zit, anders niet.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        while ($kies = mysql_fetch_array($meedoen))
        {
            $renner= $kies['id_renner'];
            $ronde= "ronde_".$rd_id; 
            if ($kies["$ronde"] == "J" ){
            echo $kies['naam_renner'];
            echo '<input type="checkbox" name="id[]" value="'.$renner.'" checked="checked"><br>';   
            }
            else
            {
            $renner = $kies['id_renner'];
            echo $kies['naam_renner'];
            echo '<input type="checkbox" name="id[]" value="'.$renner.'" ><br>';    
            }   

            
        }

nu wil ik door te unchecken renners uit de selectie halen en door checken toe te voegen aan de selectie.
Hierna ga ik een foreach in, die de check kan zetten, maar het lukt mij niet om de NIET gecheckte renners uit de selectie te halen. Althans ik kan niet bedenken hoe dat zou moeten werken omdat de foreach alleen de gecheckde id's teruggeeft. :?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    foreach ($_POST['id'] AS $id ){
        echo $id.'<br>';    // echo voor controle
        $value = "UPDATE renners 
        SET
        ronde_$rd_id = 'J'
        WHERE 
        id_renner = ".$id."
        " ;
        $geselecteerd = mysql_query($value) or die ("FOUTJE: " . mysql_error());
        if (mysql_query ($sql)) 
        {
              // okee
        }
    }

Hoe kan ik ook de niet gecheckte (renners)id's teruggeven om deze te updaten ?

Acties:
  • 0 Henk 'm!

Verwijderd

Alles eerst op N zetten daarnaa de gecheckte op J zetten. Simpel toch.

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 00:32

TeeDee

CQB 241

Ik denk dat je ook je query aan kan passen naar iets als:
SQL:
1
update renners set ronde_$rd_id='J' where id_renner in (1,2,3,4,5,6,7,8,9)

Scheelt weer requests naar je DB toe.

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • robbert
  • Registratie: April 2002
  • Laatst online: 21-09 20:37
Verwijderd schreef op woensdag 19 maart 2008 @ 12:37:
PHP:
1
2
3
4
5
6
$value = "UPDATE renners 
        SET
        ronde_$rd_id = 'J'
        WHERE 
        id_renner = ".$id."
        " ;
Iets totaal anders, maar controleer je input! Dit levert sql injections op!

Daarnaast ziet ronde_$rd_id er nogal ranzig uit? Niet slimmer om een kolom ronde te maken?

[ Voor 68% gewijzigd door robbert op 19-03-2008 12:51 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@ Dothack,
hmmm daar kan ik wat mee. <edit> _/-\o_ _/-\o_
@robbert : alleen de admin kan op deze pagina komen, die wordt wel gecontroleerd bij inloggen, maar je hebt natuurlijk wel gelijk ;)

[ Voor 6% gewijzigd door Verwijderd op 19-03-2008 13:13 ]