Avatar billede prop46 Nybegynder
07. februar 2007 - 09:40 Der er 33 kommentarer og
1 løsning

while() og checkbox

Jeg har en form hvor 'opslag' hives ud af DB og listes uder hinnanden. Hvert 'opslag' har en checkbox tilknyttet som kan være sat til ja el. nej (skal vises eller ikke vises på HP)

Men ved tryk på submit husker formen den sidst anvendte ID og retter i det sidste 'opslag' selv om det var en anden checkbox der var checked/unchecked.

Det forstår jeg jo egt. godt logikken i.. men hvordan laver jeg så noget lignende uden det problem?

<form action="?side=opslag" method="post" style="display:inline">   
<table cellspacing="0" cellpadding="0" border="0">
    <?php
    while($resultat_opslag = mysql_fetch_array($resultat_hent_opslag)) {
        $id = $resultat_opslag["id"];
        $overskrift =  stripslashes($resultat_opslag["overskrift"]);
        $vis =  stripslashes($resultat_opslag["vis"]);
    ?>   
    <input type="hidden" name="id" value="<?php echo $id; ?>">
    <tr>
        <td style="padding-bottom:3px;" align="top" valign="left">
            <table style="width:100%;" cellspacing="0" cellpadding="0" border="0" class="border4">
                <tr>
                    <td style="width:30px; height:20px;" align="left" valign="middle"><input type="checkbox" name="vis" <?php if ($vis == 'ja') echo 'checked' ?>></td>
                    <td style="width:250px; height:20px; padding-right:5px; padding-left:5px;" align="left" valign="middle" class="p1 border1"><?php echo $overskrift; ?></td>
                    <td style="height:20px; padding-right:5px; padding-left:5px;" align="center" valign="middle" class="beige"><a href="?action=ret_opslag" class="a3">Ret opslag</td>
                </tr>
            </table>
        </td>
    </tr>
    <?php
    }
    ?>
    <tr>
        <td style="height:20px;padding-top:10px;" align="right" valign="middle"><input type="submit" value="Gem" class="input1" name="gem_vis" style="cursor: hand; cursor: pointer;"></td>
    </tr>
</table>
</form>   

og ved tryk på submit knappen...

if(isset($_POST['gem_vis'])) {
    $id = $_POST['id'];
    $vis = $_POST['vis'];
    if($vis=='1'){
        $vis = 'ja';
    }else{
        $vis = 'nej';
    }
    $send_vis = "UPDATE forside SET vis='$vis' WHERE id='$id'";

    aabn_forbindelse_og_vaelgdb();
    mysql_query($send_vis);
    luk_forbindelse();
}
Avatar billede sw_red_6 Nybegynder
07. februar 2007 - 09:51 #1
du skal have lagt id over på checkboxene i stedet for at lave et hidden field pr id som hedder nøjagtigt det samme og derfor bliver overskrevet...
Avatar billede prop46 Nybegynder
07. februar 2007 - 09:57 #2
Okay.. så hvad gør jeg?

value="<?php echo $id; ?>"??

og hvordan så med min if(isset($_POST['gem_vis'])) { }, som jo forøvrigt ikke virker alligevel?
Avatar billede prop46 Nybegynder
07. februar 2007 - 10:09 #3
Okay.. jeg indrømmer at jeg ikke fatter en meter, og har virkelig brug for hjælp :0)
Avatar billede sw_red_6 Nybegynder
07. februar 2007 - 11:40 #4
Du kunne prøve noget i retning af det her:
<form action="?side=opslag" method="post" style="display:inline"> 
<table cellspacing="0" cellpadding="0" border="0">
    <?php
    while($resultat_opslag = mysql_fetch_array($resultat_hent_opslag)) {
        $id = $resultat_opslag["id"];
        $overskrift =  stripslashes($resultat_opslag["overskrift"]);
        $vis =  stripslashes($resultat_opslag["vis"]);
    ?> 
    <tr>
        <td style="padding-bottom:3px;" align="top" valign="left">
            <table style="width:100%;" cellspacing="0" cellpadding="0" border="0" class="border4">
                <tr>
                    <td style="width:30px; height:20px;" align="left" valign="middle"><input type="checkbox" name="vis[]" value="<?php echo $id; ?>" <?php if ($vis == 'ja') echo 'checked' ?>></td>
                    <td style="width:250px; height:20px; padding-right:5px; padding-left:5px;" align="left" valign="middle" class="p1 border1"><?php echo $overskrift; ?></td>
                    <td style="height:20px; padding-right:5px; padding-left:5px;" align="center" valign="middle" class="beige"><a href="?action=ret_opslag" class="a3">Ret opslag</td>
                </tr>
            </table>
        </td>
    </tr>
    <?php
    }
    ?>
    <tr>
        <td style="height:20px;padding-top:10px;" align="right" valign="middle"><input type="submit" value="Gem" class="input1" name="gem_vis" style="cursor: hand; cursor: pointer;"></td>
    </tr>
</table>
</form> 

og ved tryk på submit knappen...

if(isset($_POST['gem_vis'])) {
  $vis = $_POST['vis'];
  $test_var=0;
  foreach($vis as $key => $value)
    if($test_var >= 1) {
      $id_ja .= ", $value";
    } else {
      $id_ja = $value;
    }
    $test_var++;
   
    //INDSÆT TEST VÆRDIEN I DB IFH $_POST-VARIABLEN
    // HENT vis FRA DB
    // LÆG RESULTATET I ET ARRAY
    // LAV EN ARRAY_DIFF PÅ $vis OG RESULTAT ARRAYET
   
    //DER SKAL EVT. OGSÅ LAVES ET TJEK PÅ OM $id_ja OG $id_nej ER TOMME, HVIS DE ER SKAL RELEVANTE QUERY IKKE KØRES
   
    $send_vis = "UPDATE forside SET vis='ja' WHERE id in ($id_ja)";
    $send_vis = "UPDATE forside SET vis='nej' WHERE id in ($id_nej)";
   
    aabn_forbindelse_og_vaelgdb();
    mysql_query($send_vis);
    luk_forbindelse();
}

Det kan ikke bare kopieres ind i en fil og testes da jeg bare har taget det du selv kom med i dit spørgsmål..

Du kan evt. give et link til siden så er det lidt nemmere at finde ud af hvad der ikke virker...
Avatar billede prop46 Nybegynder
07. februar 2007 - 12:22 #5
link --> http://joy-foundation.dk/nytlayout/admin/admin.php?side=opslag   

Har kopieret din kode ind, og det virker stadig ikke.... Jeg forstår den vist heller ikke helt.
- Du henter $vis som er et array
- Sætter $test_var=0, så du kan lægge en til hver gang
- Kører igennem indholdet af $vis array'et ...$value, kommer den fra checkboxen?
- Sender indholdet.. men jeg forstår ikke 'in ($id_ja)'. Hvad betyder in?
Og hvor sættes $id_nej?

Og jeg skal vist også have hjælp til udtrækket -->
$hent_opslag = "SELECT * FROM forside WHERE navn = 'opslag'";

aabn_forbindelse_og_vaelgdb();
$resultat_hent_opslag = mysql_query($hent_opslag);
luk_forbindelse();
Avatar billede sw_red_6 Nybegynder
07. februar 2007 - 12:24 #6
kan du ikke tilføje den her linie:
echo "<pre>"; print_r($_POST); echo "</pre>";

evt put den ind her:
if(isset($_POST['gem_vis'])) {

echo "<pre>"; print_r($_POST); echo "</pre>";

  $vis = $_POST['vis'];
  $test_var=0;
  foreach($vis as $key => $value)
    if($test_var >= 1) {
      $id_ja .= ", $value";
    } else {
      $id_ja = $value;
    }
    $test_var++;
Avatar billede prop46 Nybegynder
07. februar 2007 - 12:25 #7
Værsgo' :0)
Avatar billede sw_red_6 Nybegynder
07. februar 2007 - 12:29 #8
mht $id_nej så er det hvad jeg skriver i kommentarerne jeg satte ind..

mht in ($id_ja)-> det er en mulighed i sql at du kan tjekke på en kommasepareret liste af værdier..
eks. SELECT * FROM tabel WHERE id in (1,2,3,4,5) <- den finder de poster i tabel som har id 1, 2, 3, 4 og 5

Jeg skal nok lave nogle kommentarer på et tidspunkt men det bliver nok først i aften jeg får kigget nærmere på tingene
Avatar billede prop46 Nybegynder
07. februar 2007 - 12:30 #9
okay :0)
Avatar billede sw_red_6 Nybegynder
07. februar 2007 - 20:08 #10
kunne du ikke prøve at sætte det her ind? samme forholdsregler som 07/02-2007 11:40:45

<form action="?side=opslag" method="post" style="display:inline">
<table cellspacing="0" cellpadding="0" border="0">
    <?php
    while($resultat_opslag = mysql_fetch_array($resultat_hent_opslag)) {
        $id = $resultat_opslag["id"];
        $overskrift =  stripslashes($resultat_opslag["overskrift"]);
        $vis =  stripslashes($resultat_opslag["vis"]);
    ?>
    <tr>
        <td style="padding-bottom:3px;" align="top" valign="left">
            <table style="width:100%;" cellspacing="0" cellpadding="0" border="0" class="border4">
                <tr>
                    <td style="width:30px; height:20px;" align="left" valign="middle"><input type="checkbox" name="vis[]" value="<?php echo $id; ?>" <?php if ($vis == 'ja') echo 'checked' ?>></td>
                    <td style="width:250px; height:20px; padding-right:5px; padding-left:5px;" align="left" valign="middle" class="p1 border1"><?php echo $overskrift; ?></td>
                    <td style="height:20px; padding-right:5px; padding-left:5px;" align="center" valign="middle" class="beige"><a href="?action=ret_opslag" class="a3">Ret opslag</td>
                </tr>
            </table>
        </td>
    </tr>
    <?php
    }
    ?>
    <tr>
        <td style="height:20px;padding-top:10px;" align="right" valign="middle"><input type="submit" value="Gem" class="input1" name="gem_vis" style="cursor: hand; cursor: pointer;"></td>
    </tr>
</table>
</form>

og ved tryk på submit knappen...

if(isset($_POST['gem_vis'])) {
  $vis = $_POST['vis'];
  $test_var=0;
  foreach($vis as $key => $value)
    if($test_var >= 1) {
      $id_ja .= ", $value";
    } else {
      $id_ja = $value;
    }
    $test_var++;
 
    // HENT vis FRA DB
    $sql = "SELECT vis FROM forside WHERE vis = 'ja'";
    $result = mysql_query($sql) or die(mysql_error());
    // LÆG RESULTATET I ET ARRAY
    while ($data = mysql_fetch_array($result)) {
      $db_vis[] = $data['vis'];
    }
    // LAV EN ARRAY_DIFF PÅ $vis OG RESULTAT ARRAYET
    echo "<pre>"; print_r($vis); echo "</pre>";
    echo "<pre>"; print_r($db_vis); echo "</pre>";
    $diff = array_diff($db_vis, $vis);
    echo "<pre>"; print_r($diff); echo "</pre>";
    $id_nej = implode(", ", $diff);
    //DER SKAL EVT. OGSÅ LAVES ET TJEK PÅ OM $id_ja OG $id_nej ER TOMME, HVIS DE ER SKAL RELEVANTE QUERY IKKE KØRES
    aabn_forbindelse_og_vaelgdb();
    if(is_array($id_ja)) {
      //INDSÆT TEST VÆRDIEN I DB IFH $_POST-VARIABLEN
      $send_vis = "UPDATE forside SET vis='ja' WHERE id in ($id_ja)";
      mysql_query($send_vis);
    }
    /*
    if(is_array($id_ja)) {
      //INDSÆT TEST VÆRDIEN I DB IFH $_POST-VARIABLEN
      $send_vis = "UPDATE forside SET vis='nej' WHERE id in ($id_nej)";
      mysql_query($send_vis);
    }
    */
    luk_forbindelse();
}
Avatar billede prop46 Nybegynder
08. februar 2007 - 13:28 #11
Sorry.. var lige et andet sted end her i går aftes... Det er sat ind nu...
Avatar billede prop46 Nybegynder
08. februar 2007 - 13:39 #12
..og har flyttet aabn_forbindelse_og_vaelgdb(); så $sql kan køres... men det virker stadig ikke :0(
Avatar billede sw_red_6 Nybegynder
08. februar 2007 - 14:02 #13
nåh lad os nøjes med det nødvendige denne gang..

kan du ikke sætte det her ind:
if(isset($_POST['gem_vis'])) {
  $vis = $_POST['vis'];
  $test_var=0;
  foreach($vis as $key => $value)
    if($test_var >= 1) {
      $id_ja .= ", $value";
    } else {
      $id_ja = $value;
    }
    $test_var++;
   
    aabn_forbindelse_og_vaelgdb();
    // HENT vis FRA DB
    $sql = "SELECT id, vis FROM forside WHERE vis = 'ja'";
    $result = mysql_query($sql) or die(mysql_error());
    // LÆG RESULTATET I ET ARRAY
    while ($data = mysql_fetch_array($result)) {
      $db_vis[$data[vis]] = $data['vis'];
    }
    // LAV EN ARRAY_DIFF PÅ $vis OG RESULTAT ARRAYET
    echo "\$vis<pre>"; print_r($vis); echo "</pre>";
    echo "\$db_vis<pre>"; print_r($db_vis); echo "</pre>";
    $diff = array_diff($db_vis, $vis);
    echo "\$diff<pre>"; print_r($diff); echo "</pre>";
    $diff_keys = array_keys($diff);
    echo "\$diff_keys<pre>"; print_r($diff); echo "</pre>";
    $id_nej = implode(", ", $diff_keys);
    //DER SKAL EVT. OGSÅ LAVES ET TJEK PÅ OM $id_ja OG $id_nej ER TOMME, HVIS DE ER SKAL RELEVANTE QUERY IKKE KØRES
   
    if(is_array($id_ja)) {
      //INDSÆT TEST VÆRDIEN I DB IFH $_POST-VARIABLEN
      $send_vis = "UPDATE forside SET vis='ja' WHERE id in ($id_ja)";
      mysql_query($send_vis);
    }
    /*
    if(is_array($id_ja)) {
      //INDSÆT TEST VÆRDIEN I DB IFH $_POST-VARIABLEN
      $send_vis = "UPDATE forside SET vis='nej' WHERE id in ($id_nej)";
      mysql_query($send_vis);
    }
    */
    luk_forbindelse();
}
Avatar billede prop46 Nybegynder
08. februar 2007 - 15:15 #14
Pis.. jeg kan ikke uploade i disse timer... server fejl af en art...
Avatar billede prop46 Nybegynder
08. februar 2007 - 16:06 #15
Men hvad mener du med --> "nåh lad os nøjes med det nødvendige denne gang.."
Avatar billede sw_red_6 Nybegynder
08. februar 2007 - 16:35 #16
jeg mener at det ikke er nødvendigt at du får hele koden igen, kun det jag har ændret på..
Avatar billede prop46 Nybegynder
09. februar 2007 - 08:50 #17
ahh :0) Happy days.. jeg kan nu uploade igen, og har lagt dne nye kode op :0)
Avatar billede prop46 Nybegynder
09. februar 2007 - 09:14 #18
men den virker stadig ikke... surt at vi hele tiden går forbi hinanden tidsmæssigt....
Avatar billede sw_red_6 Nybegynder
09. februar 2007 - 09:48 #19
arhh vi prøver lige med den rigtige nøgle i det array..
if(isset($_POST['gem_vis'])) {
  $vis = $_POST['vis'];
  $test_var=0;
  foreach($vis as $key => $value)
    if($test_var >= 1) {
      $id_ja .= ", $value";
    } else {
      $id_ja = $value;
    }
    $test_var++;
 
    aabn_forbindelse_og_vaelgdb();
    // HENT vis FRA DB
    $sql = "SELECT id, vis FROM forside WHERE vis = 'ja'";
    $result = mysql_query($sql) or die(mysql_error());
    // LÆG RESULTATET I ET ARRAY
    while ($data = mysql_fetch_array($result)) {
      $db_vis[$data[id]] = $data['vis'];
    }
    // LAV EN ARRAY_DIFF PÅ $vis OG RESULTAT ARRAYET
    echo "\$vis<pre>"; print_r($vis); echo "</pre>";
    echo "\$db_vis<pre>"; print_r($db_vis); echo "</pre>";
    $diff = array_diff($db_vis, $vis);
    echo "\$diff<pre>"; print_r($diff); echo "</pre>";
    $diff_keys = array_keys($diff);
    echo "\$diff_keys<pre>"; print_r($diff); echo "</pre>";
    $id_nej = implode(", ", $diff_keys);
    //DER SKAL EVT. OGSÅ LAVES ET TJEK PÅ OM $id_ja OG $id_nej ER TOMME, HVIS DE ER SKAL RELEVANTE QUERY IKKE KØRES
 
    if(is_array($id_ja)) {
      //INDSÆT TEST VÆRDIEN I DB IFH $_POST-VARIABLEN
      $send_vis = "UPDATE forside SET vis='ja' WHERE id in ($id_ja)";
      mysql_query($send_vis);
    }
    /*
    if(is_array($id_ja)) {
      //INDSÆT TEST VÆRDIEN I DB IFH $_POST-VARIABLEN
      $send_vis = "UPDATE forside SET vis='nej' WHERE id in ($id_nej)";
      mysql_query($send_vis);
    }
    */
    luk_forbindelse();
}
Avatar billede prop46 Nybegynder
09. februar 2007 - 10:24 #20
Koden sat ind.. mne den virker ikke :0)
Avatar billede sw_red_6 Nybegynder
09. februar 2007 - 10:28 #21
kan du ikke lige prøve det her:
if(isset($_POST['gem_vis'])) {
  $vis = $_POST['vis'];
  $test_var=0;
  foreach($vis as $key => $value)
    if($test_var >= 1) {
      $id_ja .= ", $value";
    } else {
      $id_ja = $value;
    }
    $test_var++;

    aabn_forbindelse_og_vaelgdb();
    // HENT vis FRA DB
    $sql = "SELECT id, vis FROM forside WHERE vis = 'ja'";
    $result = mysql_query($sql) or die(mysql_error());
    // LÆG RESULTATET I ET ARRAY
    while ($data = mysql_fetch_array($result)) {
      $db_vis[$data[id]] = $data['vis'];
    }
    // LAV EN ARRAY_DIFF PÅ $vis OG RESULTAT ARRAYET
    echo "\$vis<pre>"; print_r($vis); echo "</pre>";
    echo "\$db_vis<pre>"; print_r($db_vis); echo "</pre>";
    $diff = array_diff($db_vis, $vis);
    echo "\$diff<pre>"; print_r($diff); echo "</pre>";
    $diff_keys = array_keys($diff);
    echo "\$diff_keys<pre>"; print_r($diff_keys); echo "</pre>";
    $id_nej = implode(", ", $diff_keys);
    //DER SKAL EVT. OGSÅ LAVES ET TJEK PÅ OM $id_ja OG $id_nej ER TOMME, HVIS DE ER SKAL RELEVANTE QUERY IKKE KØRES

    if(is_array($id_ja)) {
      //INDSÆT TEST VÆRDIEN I DB IFH $_POST-VARIABLEN
      $send_vis = "UPDATE forside SET vis='ja' WHERE id in ($id_ja)";
      echo $send_vis."<br>";
      mysql_query($send_vis);
    }
    /*
    if(is_array($id_ja)) {
      //INDSÆT TEST VÆRDIEN I DB IFH $_POST-VARIABLEN
      $send_vis = "UPDATE forside SET vis='nej' WHERE id in ($id_nej)";
      mysql_query($send_vis);
    }
    */
    luk_forbindelse();
}

Jeg ved at det ikke virker helt endnu, jeg vil helst tjekke at data er korrekt inden der ændres i databasen..
Avatar billede prop46 Nybegynder
09. februar 2007 - 10:31 #22
Tjek.... :0)
Avatar billede sw_red_6 Nybegynder
09. februar 2007 - 10:38 #23
jeg skal vidst have tjekket tingene ordentligt igennem her..
jeg tror ikke jeg tænkte det rigtigt igennem fra starten, prøv det her:
if(isset($_POST['gem_vis'])) {
  $vis = $_POST['vis'];
  $test_var=0;
  foreach($vis as $key => $value)
    if($test_var >= 1) {
      $id_ja .= ", $value";
    } else {
      $id_ja = $value;
    }
    $test_var++;

    aabn_forbindelse_og_vaelgdb();
    // HENT vis FRA DB
    $sql = "SELECT id FROM forside WHERE vis = 'nej'";
    $result = mysql_query($sql) or die(mysql_error());
    // LÆG RESULTATET I ET ARRAY
    while ($data = mysql_fetch_array($result)) {
      $db_vis[] = $data[id];
    }
    // LAV EN ARRAY_DIFF PÅ $vis OG RESULTAT ARRAYET
    echo "\$vis<pre>"; print_r($vis); echo "</pre>";
    echo "\$db_vis<pre>"; print_r($db_vis); echo "</pre>";
    $diff = array_diff($db_vis, $vis);
    echo "\$diff<pre>"; print_r($diff); echo "</pre>";
    $diff_keys = array_keys($diff);
    echo "\$diff_keys<pre>"; print_r($diff_keys); echo "</pre>";
    $id_nej = implode(", ", $diff_keys);
    //DER SKAL EVT. OGSÅ LAVES ET TJEK PÅ OM $id_ja OG $id_nej ER TOMME, HVIS DE ER SKAL RELEVANTE QUERY IKKE KØRES

    if(is_array($id_ja)) {
      //INDSÆT TEST VÆRDIEN I DB IFH $_POST-VARIABLEN
      $send_vis = "UPDATE forside SET vis='ja' WHERE id in ($id_ja)";
      echo $send_vis."<br>";
      mysql_query($send_vis);
    }
    /*
    if(is_array($id_ja)) {
      //INDSÆT TEST VÆRDIEN I DB IFH $_POST-VARIABLEN
      $send_vis = "UPDATE forside SET vis='nej' WHERE id in ($id_nej)";
      mysql_query($send_vis);
    }
    */
    luk_forbindelse();
}
Avatar billede prop46 Nybegynder
09. februar 2007 - 10:39 #24
Værsgo' !
Avatar billede sw_red_6 Nybegynder
09. februar 2007 - 11:11 #25
Det her skulle virke..
Forresten har du så en define() et sted i din kode?

if(isset($_POST['gem_vis'])) {
  $vis = $_POST['vis'];
  $id_ja = implode(", ", $vis);
    aabn_forbindelse_og_vaelgdb();
    // HENT vis FRA DB
    $sql = "SELECT `id` FROM forside WHERE vis = 'ja'";
    $result = mysql_query($sql) or die(mysql_error());
    // LÆG RESULTATET I ET ARRAY
    while ($data = mysql_fetch_array($result)) {
      $db_vis[] = $data['id'];
    }
    // LAV EN ARRAY_DIFF PÅ $vis OG RESULTAT ARRAYET
//    echo "\$vis<pre>"; print_r($vis); echo "</pre>";
//    echo "\$db_vis<pre>"; print_r($db_vis); echo "</pre>";
    $diff = array_diff($db_vis, $vis);
//    echo "\$diff<pre>"; print_r($diff); echo "</pre>";
    $diff_keys = array_keys($diff);
//    echo "\$diff_keys<pre>"; print_r($diff_keys); echo "</pre>";
    $id_nej = implode(", ", $diff_keys);
    //DER SKAL EVT. OGSÅ LAVES ET TJEK PÅ OM $id_ja OG $id_nej ER TOMME, HVIS DE ER SKAL RELEVANTE QUERY IKKE KØRES

    if(is_array($id_ja)) {
      //INDSÆT TEST VÆRDIEN I DB IFH $_POST-VARIABLEN
      $send_vis = "UPDATE forside SET vis='ja' WHERE `id` in ($id_ja)";
      echo $send_vis."<br>";
      mysql_query($send_vis);
    }
   
    if(is_array($id_nej)) {
      //INDSÆT TEST VÆRDIEN I DB IFH $_POST-VARIABLEN
      $send_vis = "UPDATE forside SET vis='nej' WHERE `id` in ($id_nej)";
      echo $send_vis."<br>";
      mysql_query($send_vis);
    }
   
    luk_forbindelse();
}
Avatar billede prop46 Nybegynder
09. februar 2007 - 11:39 #26
Det virker ikke :0(

define()... define hvad?? Der er ikke nogen nej...
Avatar billede sw_red_6 Nybegynder
09. februar 2007 - 11:50 #27
Jeg må virkelig have sovet da jeg lavede det her..

if(is_array($id_ja)) {
skal være
if(!empty($id_ja)) {
og
if(is_array($id_nej)) {
skal være
if(!empty($id_nej)) {
Avatar billede prop46 Nybegynder
09. februar 2007 - 11:59 #28
Ja noget gør den :0) Men den bytter altså lidt rundt på markeringerne.....
Avatar billede sw_red_6 Nybegynder
09. februar 2007 - 12:41 #29
heh.. det bliver mere og mere pinligt det her...
prøv det her, nu skulle det meget gerne virke og gøre det rigtige..

if(isset($_POST['gem_vis'])) {
  $vis = $_POST['vis'];
  $id_ja = implode(", ", $vis);
    aabn_forbindelse_og_vaelgdb();
    // HENT vis FRA DB
    $sql = "SELECT `id` FROM forside WHERE vis = 'ja'";
    $result = mysql_query($sql) or die(mysql_error());
    // LÆG RESULTATET I ET ARRAY
    while ($data = mysql_fetch_array($result)) {
      $db_vis[] = $data['id'];
    }
    // LAV EN ARRAY_DIFF PÅ $vis OG RESULTAT ARRAYET
//    echo "\$vis<pre>"; print_r($vis); echo "</pre>";
//    echo "\$db_vis<pre>"; print_r($db_vis); echo "</pre>";
    $diff = array_diff($db_vis, $vis);
//    echo "\$diff<pre>"; print_r($diff); echo "</pre>";
    $id_nej = implode(", ", $diff);
    //DER SKAL EVT. OGSÅ LAVES ET TJEK PÅ OM $id_ja OG $id_nej ER TOMME, HVIS DE ER SKAL RELEVANTE QUERY IKKE KØRES

    if(!empty($id_ja)) {
      //INDSÆT TEST VÆRDIEN I DB IFH $_POST-VARIABLEN
      $send_vis = "UPDATE forside SET vis='ja' WHERE `id` in ($id_ja)";
      echo $send_vis."<br>";
      mysql_query($send_vis);
    }
 
    if(!empty($id_nej)) {
      //INDSÆT TEST VÆRDIEN I DB IFH $_POST-VARIABLEN
      $send_vis = "UPDATE forside SET vis='nej' WHERE `id` in ($id_nej)";
      echo $send_vis."<br>";
      mysql_query($send_vis);
    }
 
    luk_forbindelse();
}
Avatar billede prop46 Nybegynder
09. februar 2007 - 12:47 #30
Sådan... fnis.. nu er den der :0) Tusinde tak for hjælpen !
Avatar billede prop46 Nybegynder
09. februar 2007 - 12:50 #31
...og så lægger du lige et svar ikke :0)
Avatar billede sw_red_6 Nybegynder
09. februar 2007 - 14:13 #32
jeg tror jeg skal holde mig fra at kode når jeg kun er vågen pga. stimulanser.. ;o)

koffein er ikke godt for mine tænke-evner har jeg fundet ud af her..
Avatar billede prop46 Nybegynder
09. februar 2007 - 16:34 #33
hehe... når enden er god er alting godt :0) Jeg er glad i alle fald!
Avatar billede sw_red_6 Nybegynder
14. februar 2007 - 14:05 #34
takker for point og tålmodighed ;o)
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