Avatar billede michaeltryl Seniormester
18. december 2006 - 00:09 Der er 1 løsning

chekbokse og tilføj, eller slette i databsen

jeg har en side med tre checkbokse der listes sådan

        echo "<form method='POST' name='kode' ACTION='abb-mail.php'>";
        echo "<input type='hidden' name='spgid' value='$brugernavn'>";

$ny_tael = mysql_query("SELECT COUNT(*) AS ny_antal FROM til_nyhed WHERE brugernavn ='$bruger' and gruppe = 'nyhed' ") or die(mysql_error());
$ny_row = mysql_fetch_array($ny_tael);
$ny_antal = $ny_row[ny_antal];
if($ny_antal == '1')
{
echo"<input type='checkbox' value='ja' name='nyhed' checked> Modtag nyhedsbrev<br>";
}
else
{
echo"<input type='checkbox' value='ja' name='nyhed'> Modtag nyhedsbrev<br>";
}

$mo_tael = mysql_query("SELECT COUNT(*) AS mo_antal FROM til_nyhed WHERE brugernavn ='$bruger' and gruppe = 'mode' ") or die(mysql_error());
$mo_row = mysql_fetch_array($mo_tael);
$mo_antal = $mo_row[mo_antal];
if($mo_antal == '1')
{
echo"<input type='checkbox' value='ja' name='mode' checked> Modtag mail når ny møde tilføjes<br>";
}
else
{
echo"<input type='checkbox' value='ja' name='mode'> Modtag mail når ny møde tilføjes<br>";
}

$re_tael = mysql_query("SELECT COUNT(*) AS re_antal FROM til_nyhed WHERE brugernavn ='$bruger' and gruppe = 'referat' ") or die(mysql_error());
$re_row = mysql_fetch_array($re_tael);
$re_antal = $re_row[re_antal];
if($re_antal == '1')
{
echo"<input type='checkbox' value='ja' name='referat' checked> Modtag mail når ny referat tilføjes<br>";
}
else
{
echo"<input type='checkbox' value='ja' name='referat'> Modtag mail når ny referat tilføjes<br>";
}


echo "<input class='inputknap' type='submit' value='Tilmeld'>";
}


nu er ideen så at brugerne kan vælge hvilke mails de vil modtage når de er cheket af og brugeren trykker tilmeld sendes de til en side med denne kode so er herunder. denne kode skal indsætte brugernavn, email samt hvilke grupper der er tilmeldt, men det virker ikke helt for hvis en bruger allerede er tilmeldt alle tre og evt. afmelder sig en så bliver de to tilføjet igen, men det skal de ikke. derfor håber jeg der er en som kan se hvor fejlen er eller om der er en nemmere måde at gøre dette på.
her er koden som brugeren sendes til

<?
session_start();
include"../connect.php";
//Al din kode

$bruger = $_SESSION['Brugernavn'];

$hent = mysql_query("SELECT email FROM brugere WHERE Brugernavn = '$bruger' LIMIT 1") or die(mysql_error());
$show = mysql_fetch_array($hent);
{
$email = $show[email];
}

    $nyhed = mysql_real_escape_string( $_POST['nyhed'] );
    $mode = mysql_real_escape_string( $_POST['mode'] );
    $referat = mysql_real_escape_string( $_POST['referat'] );

if(!empty($nyhed))
{
$ny_tael = mysql_query("SELECT COUNT(*) AS ny_antal FROM til_nyhed WHERE brugernavn ='$bruger' AND gruppe ='nyhed'") or die(mysql_error());
$ny_row = mysql_fetch_array($ny_tael);
$ny_antal = $row["ny_antal"];

if ($ny_antal == 0)
{
    mysql_query("INSERT INTO til_nyhed (brugid, brugernavn, email, gruppe)
    VALUES(0, '$bruger', '$email', 'nyhed')") or die(mysql_error());
}
else if ($ny_antal == 1)
{
mysql_query("UPDATE til_nyhed SET email='$email' WHERE brugernavn='$bruger' AND gruppe ='nyhed'") or die(mysql_error());
}
}
else
{
mysql_query("DELETE FROM til_nyhed WHERE brugernavn ='$bruger' AND gruppe ='nyhed'") or die(mysql_error());
}

if(!empty($mode))
{
$mo_tael = mysql_query("SELECT COUNT(*) AS mo_antal FROM til_nyhed WHERE brugernavn ='$bruger' AND gruppe ='mode'") or die(mysql_error());
$mo_row = mysql_fetch_array($mo_tael);
$mo_antal = $row["mo_antal"];

if ($mo_antal == 0)
{
    mysql_query("INSERT INTO til_nyhed (brugid, brugernavn, email, gruppe)
    VALUES(0, '$bruger', '$email', 'mode')") or die(mysql_error());
}
else if ($mo_antal == 1)
{
mysql_query("UPDATE til_nyhed SET email='$email' WHERE brugernavn='$bruger' AND gruppe ='mode'") or die(mysql_error());
}
}
else
{
mysql_query("DELETE FROM til_nyhed WHERE brugernavn ='$bruger'  AND gruppe ='mode'") or die(mysql_error());
}

if(!empty($referat))
{
$re_tael = mysql_query("SELECT COUNT(*) AS re_antal FROM til_nyhed WHERE brugernavn ='$bruger' AND gruppe ='referat'") or die(mysql_error());
$re_row = mysql_fetch_array($re_tael);
$re_antal = $row["re_antal"];

if ($re_antal == 0)
{
    mysql_query("INSERT INTO til_nyhed (brugid, brugernavn, email, gruppe)
    VALUES(0, '$bruger', '$email', 'referat')") or die(mysql_error());
}
else if ($re_antal == 1)
{
mysql_query("UPDATE til_nyhed SET email='$email' WHERE brugernavn='$bruger' AND gruppe ='referat'") or die(mysql_error());
}
}
else
{
mysql_query("DELETE FROM til_nyhed WHERE brugernavn ='$bruger'  AND gruppe ='referat'") or die(mysql_error());
}



  header("Location: mail-abb.php");

?>
Avatar billede michaeltryl Seniormester
18. december 2006 - 16:12 #1
Jeg fanst selv en nemmere løsning.
løsningen blev at smide alle makerede bokse i et array og indsætte dette i databasen sådan
if (isset($_POST['mailabb'])) //Har brugeren sendt formularen?
{
    foreach($_POST['mailabb'] as $mailabb) //Kør igennem array'et
    {
$hent = mysql_query("SELECT email FROM brugere WHERE Brugernavn = '$bruger' LIMIT 1") or die(mysql_error());
$show = mysql_fetch_array($hent);
{
$email = $show[email];
}
    mysql_query("INSERT INTO til_nyhed (brugid, brugernavn, email, gruppe)
    VALUES(0, '$bruger', '$email', '$mailabb')") or die(mysql_error());

  header("Location: mail-abb.php");
}
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