Avatar billede tupsy Nybegynder
18. oktober 2004 - 14:17 Der er 11 kommentarer

Update DB ved hjælp af checkboxe?

Jeg har følgende form :
<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" width="20%">
    <tr>
      <td width="100%">


<p align="center"><b>Foretag valg og tryk opdater..</b></p>


<br>

<form action="vis_i_box.php" method="post" enctype="multipart/form-data">
<?

$query2 = mysql_query ("SELECT overskrift, id, pop, tid FROM pix order by overskrift");
while ($data2 = mysql_fetch_array($query2))
                    {
?><b><? echo "<input type=\"checkbox\" name=\"kat[".$data2[id]."]\"";?> value="1" <?if($data2[pop]==1){?>checked<?}?>><?echo $data2[overskrift];?>
</b><br>
<?

}

?>
<p align="center"><input class="knap" type="submit" value="Opdater" name="B1"></p>
<input type="hidden" name="update" value="1" size="20">

</td>
    </tr>
  </table>
  </center>
</div>
</form>


Den sender data til følgende update :

if($update){

reset($kat);
foreach ($kat as $key=$value) {
  $sql = "update pix set pop='$value' where id='$key'";
  mysql_query($sql) or die(mysql_error());
}


Problemet er at den kun opdatere hvis der er krydset af i checkboxen.
Altså de boxe der er krydset af sætter et 1 tal i tabellen men de boxe der IKKE er krydset af sletter ikke 1 tallet fra tabellen..
Hvordan får jeg den til det??
Avatar billede tupsy Nybegynder
18. oktober 2004 - 14:21 #1
Glem det.. Fandt selv svaret... :-)
Avatar billede tupsy Nybegynder
18. oktober 2004 - 14:21 #2
Jeg gjorde sådan her :

if($update){

reset($kat);
foreach ($kat as $key=>$value) {
if($value=1)
{
$value2==1;
}
else {
$value2==0;
}
  $sql = "update pix set pop='$value2' where id='$key'";
  mysql_query($sql) or die(mysql_error());
}
Avatar billede tupsy Nybegynder
18. oktober 2004 - 14:36 #3
Ups nej.. Det virkede ikke 100 %..
Såå, svar endelig hvis I kan hjælpe mig....
Avatar billede sostack Nybegynder
18. oktober 2004 - 14:50 #4
if($update){

reset($kat);
foreach ($kat as $key => $value) {
if($value==1)
{
$value2=1;
}
else {
$value2=0;
}
  $sql = "update pix set pop='$value2' where id='$key'";
  mysql_query($sql) or die(mysql_error());
}

//sostack
Avatar billede sostack Nybegynder
18. oktober 2004 - 14:51 #5
== er til at sammenligne to værdier med, = er til at tildele en variabel en værdi.

//sostack
Avatar billede tupsy Nybegynder
18. oktober 2004 - 15:01 #6
Ups ja..
Men det funker nu stadig ikke..

Den opdatere kun de boxe der er afkrydset..
Desuden kommer den med en fejl hvis man fjerner alle afkrydserningerne..

Er der en anden måde at lave sådan en opdatering med??
Avatar billede tupsy Nybegynder
18. oktober 2004 - 19:00 #7
Er der slet ingen der har en ide om hvordan jeg kører alle records igennem og smider 0 og 1 ind de rigtige steder i tabellen??
Avatar billede sostack Nybegynder
19. oktober 2004 - 07:04 #8
en checkbox returnerer "on", hvis den er krydset af, ellers ingenting!

//sostack
Avatar billede sostack Nybegynder
19. oktober 2004 - 07:08 #9
OG væn dig til at bruge $_POST["update"] eller $REQUEST["update"], da man ikke kan være sikker på, at register_globals altid er sat.

//sostack
Avatar billede tupsy Nybegynder
19. oktober 2004 - 08:27 #10
"en checkbox returnerer "on", hvis den er krydset af, ellers ingenting!"
Ja, det ved jeg.. Deri ligger sikkert mit problem..

Men hvordan løser jeg det mon??
Jeg vil jo gerne både kunne vælge til og fra på mine checkboxe..
Avatar billede tupsy Nybegynder
20. oktober 2004 - 20:19 #11
Er der virkelig ingen der kan hjælpe med at få smidt mine 1'er og 0'er i min DB???
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester