Avatar billede fjammi Nybegynder
08. marts 2005 - 13:48 Der er 17 kommentarer og
1 løsning

checkbox update

Hej

Jeg har følgende funktion
<? if($_POST[f_link]){
foreach ($klaret as $value) {
  $sql = "update start_link set l_forside='1' where l_id='$value'";
  mysql_query($sql) or die(mysql_error());
}}?>
<form name="form1" method="post" action="">
<? $hentlink = mysql_query("SELECT * FROM start_link WHERE uk_id ='$under[uk_id]'") or die("Database fejl!");
while($link = mysql_fetch_array($hentlink)){?>
<input type="checkbox" name="klaret[]" value="<?=$link[l_id]?>"<? if($link[l_forside] == "1"){echo " checked";}?>>
<? echo "&nbsp;&nbsp;&nbsp;<font size=2>$link[l_titel</font><br>";
}
?>
<input type="submit" name="f_link" value="Gem">
</form>

Når checkboxen er markeret bliver l_forside sat til 1 i databasen, men hvordan laver jeg så hvis feltet ikke er markeret så bliver l_forside sat til 0 i databasen?

På forhånd tak
Avatar billede articfruit Nybegynder
08. marts 2005 - 14:50 #1
hvad ligger der af oplysninger i $klaret?
Avatar billede fjammi Nybegynder
08. marts 2005 - 15:04 #2
<input type="checkbox" name="klaret[]" value="<?=$link[l_id]?>
$link[l_id] er primær nøgle i tabellen
Avatar billede articfruit Nybegynder
08. marts 2005 - 15:15 #3
er ikke lige helt med på name="klaret[]", men er det hele koden du har postet, starter du ikke med at gemme noget i $klaret når siden loades?
Avatar billede fjammi Nybegynder
08. marts 2005 - 15:20 #4
nej det er ik hele koden, men det er alt der har med formen at gøre... Klaret[] danner en array med $link[l_id] værdierne
Avatar billede articfruit Nybegynder
08. marts 2005 - 15:29 #5
ja, men det kan du vel ikke tilgå via php hvis du ikke har erklæret det noget sted? fanger du ikke klaret[] via post og smider det ind i $klaret?
Avatar billede fjammi Nybegynder
08. marts 2005 - 15:35 #6
scriptet fungerer som det skal. Jeg skal bruge en måde så de checkboxe der ik er markeret bliver registreret i databasen som 0
Avatar billede articfruit Nybegynder
08. marts 2005 - 15:39 #7
har du en liste over alle links? så er det vel bare at holde den op mod dem der er i klaret?
Avatar billede fjammi Nybegynder
08. marts 2005 - 15:41 #8
ja alle links ligger i databasen, hvordan skal jeg lave den sammenligning?
Avatar billede articfruit Nybegynder
08. marts 2005 - 15:44 #9
hiv alle link ud af db, løb derefter alle disse link igennem med en foreach, hvis linket findes i $klaret sætter du l_forside='1' ellers sætter du det til l_forside='0'
Avatar billede fjammi Nybegynder
08. marts 2005 - 15:47 #10
kan du prøve at vise hvordan det skal laves? For har prøvet noget ligende, men det kunne jeg ik få til at fungere
Avatar billede articfruit Nybegynder
08. marts 2005 - 15:52 #11
skal jeg gerne gøre, men det bliver først senere, smutter hjemad nu... :o)
Avatar billede fjammi Nybegynder
08. marts 2005 - 15:54 #12
helt i orden...
Tak
Avatar billede articfruit Nybegynder
08. marts 2005 - 16:09 #13
kunne ikke lige lade det ligge... her er hvad jeg lige fik stykket sammen, har ikke lige kigget det 100% igennem...

$result = mysql_query("SELECT * FROM start_link") or die("Database fejl!");

        while($row = mysql_fetch_array($result))
        {
            $id = $row["l_id"];
            $frontsiteLink = false;
           
            foreach ($klaret as $value)
            {
               
                if($id == $value)
                {
                    $frontsiteLink = true;
                }
            }
           
            if($frontsiteLink)
            {
                $sql = "update start_link set l_forside='1' where l_id='" . $id "'";
              mysql_query($sql) or die(mysql_error());
            }
            else
            {
                $sql = "update start_link set l_forside='0' where l_id='" . $id "'";
              mysql_query($sql) or die(mysql_error());
            }
           
        }
Avatar billede articfruit Nybegynder
08. marts 2005 - 16:11 #14
dette skulle gi det samme men er lidt kortere at skrive...

$result = mysql_query("SELECT * FROM start_link") or die("Database fejl!");

        while($row = mysql_fetch_array($result))
        {
            $id = $row["l_id"];
            $frontsiteLink = 0;
           
            foreach ($klaret as $value)
            {
               
                if($id == $value)
                {
                    $frontsiteLink = 1;
                }
            }
           
            $sql = "update start_link set l_forside='" . $frontsiteLink . "' where l_id='" . $id "'";
            mysql_query($sql) or die(mysql_error());
        }
Avatar billede articfruit Nybegynder
08. marts 2005 - 16:12 #15
smutter hjem nu... kigger lige ind omkring senere på dagen... :o)
Avatar billede articfruit Nybegynder
08. marts 2005 - 16:13 #16
der manglede lige et punktum... ;o) men nu er jeg også kørt...

$result = mysql_query("SELECT * FROM start_link") or die("Database fejl!");

        while($row = mysql_fetch_array($result))
        {
            $id = $row["l_id"];
            $frontsiteLink = 0;
           
            foreach ($klaret as $value)
            {
               
                if($id == $value)
                {
                    $frontsiteLink = 1;
                }
            }
           
            $sql = "update start_link set l_forside='" . $frontsiteLink . "' where l_id='" . $id . "'";
            mysql_query($sql) or die(mysql_error());
        }
Avatar billede fjammi Nybegynder
08. marts 2005 - 16:15 #17
Jeps det virker... Mange tak for hjælpen.
Lig et svar så kan du få dine point
Avatar billede articfruit Nybegynder
08. marts 2005 - 16:16 #18
takkker...
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