Avatar billede floetti Nybegynder
31. august 2007 - 18:54 Der er 3 kommentarer og
1 løsning

Kontrollere array imod array og db

Hej,

Indsæt i databasen hvis ikke findes i db og slet hvis ikke findes i array...

Jeg har en liste med venner, som hver har en id. Foran navnene er en checkbox som er checked (userid[1234567890]) som venne id'et findes i tabellen gallery_aceess. Det jeg gerne vil er at lave en array i et hidden input (hiddenarray), som så skal bruges til at opdater gallery_access tabellen.

Idéen er at da jeg trykker på submit skal hiddenarray sendes med og kontrollere den nye array ($ids) som er submittet med formen imod hiddenarray'en.
Så skal php indsætte de værdier fra $ids som ikke findes i hiddenarray.

Det sidste er så at slette det poster fra db'en om ikke findes i $ids.

$ids array'en:
Array ( [1] => 1186433868 [2] => 1186444907 [3] => 1188434645 )

hiddenarray Array ( [1] => 1186433868 )

Vennelisten

Kleynan
xRullu
xtorsten
xHanus

Her er alla undtagen Kleynan valgte. Så nu submittes formen og hiddenarray indeholder kun Rullus id, så indsætter den torsten og Hanus i databasen.

Håber at nogen forstår hvad jeg prøver at gøre... :o
Avatar billede woowii Nybegynder
31. august 2007 - 20:07 #1
Skal lige se om jeg har forstået det rigtigt. Du har en liste med folk som allerede har adgang og du skal give nye folk adgang? Når du allerede har en liste med folk som har adgang så kunne du jo passende lade være med at vise dem når der skal gives adgang til flere - eller lade dem være "checked" automatisk, hvis der skal være mulighed for at fjerne adgangen let.
Avatar billede floetti Nybegynder
31. august 2007 - 20:40 #2
Fra starten af er der ingen som har adgang. Så vælger jeg nogle af mine venner som skal have adgang, men jeg skal også kunne gå ind og fjerne en hvis jeg vil...

Nu har jeg lavet det i sådan, det er nok heller ikke så ofte at denne funktion benyttes, så den er ikke sår "effektiv" vigtig...

    $match_tip = $_POST["userid"];
    foreach($match_tip as $gkey => $gval) {
    $sql = mysql_query("Select * from gallery_access where profile_accept = '".$gval."'");
    if(!mysql_num_rows($sql)){
    mysql_query("insert into gallery_access (gallery,profile_accept) Values ('".$_GET['id']."','".$gval."')");
    }
    echo $gkey . " = " . $gval . "<br>\n";
    }


<?php
$friends = mysql_query("Select friends.friendid, profiles.username as pname, gallery_access.profile_accept as aprofile from friends left join profiles on friends.friendid = profiles.profileid left join gallery_access on friends.friendid = gallery_access.profile_accept where friends.profileid = '".$_SESSION['userlogged']."'") or die(mysql_error());
//echo mysql_num_rows($friends)."<br>";
while($row_friends = mysql_fetch_array($friends)){
if($row_friends['friendid'] == $row_friends['aprofile']){ $checked = " checked=\"checked\""; }else{ $checked = ""; }
?>
<input type="checkbox" name="userid[]" value="<? echo $row_friends['friendid']; ?>" "<?php echo $checked; ?>">
<?php
echo $row_friends['pname']."<br>";
}
?>

Fungerer som sådan fint med at lægge vennerne i db, men nu vil jeg så gerne have at hvis jeg fjerner flugebenet fra en ven eller flere og trykker op "opdater", så slettes den række med vennens id i gallery_access. Sådan at jeg opdatere en lang liste med venner på en gang.
Avatar billede floetti Nybegynder
06. september 2007 - 09:44 #3
hm... ingen der har et bud?

Ok, jeg prøver igen... Det er en liste med nogle venner med hver sin checkbox. Nu vil jeg have mulighed for at checke dem for at lægge dem i hver sin række i db'en. Så efter de er lagt ind, er de checkede og de som ikke er indlagt, er selvfølgelig ikke.

Mit problem bare at jeg ikke kan finde ud af at lave en funktion som sletter de poster der ligger inde hvis jeg vælger at unchecke dem. Nogen der ved?
Avatar billede floetti Nybegynder
20. oktober 2007 - 16:42 #4
Spørgsmålet er afklaret.
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

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