29. maj 2005 - 01:55
Der er
61 kommentarer og 1 løsning
Krydse af og slette
Hej eksperter! Jeg er igang med et community og i ens gæstebog skal der være en checkbox ude for hver besked hvor man kan krydse dem af man vil slette og så trykke på slet knabben Er det muligt? På forhånd tak :)
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
ja, du kan give checkbox'ene et navn som f.eks. starter med "besked_" og så et id-nummer til hver af dem. Når det er gjort kan du tjekke $_request arrayet efter keys der er indeholder besked_ og derefter trække id-nummeret ud af strengen og slette beskeden i db'en.
Uhm. forstod jeg desværre ikke meget af. Er ikke så god til php Kan du give et eksempel ;-)?
Yep, det har jeg prøvet, men som twiggy sagde kommer der bare 5 chekboxe ved hver besked. Andre forslag :-)?
Det var nu heller ikke meningen at du bare skulle kopiere koden råt ind - men at den kunne tjene til inspiration til hvordan du kunne gøre det.
Som sagt jeg er dårlig til php? Og har ingen anelse om hvordan jeg kan gøre det.
Lad os løse den i trin. Jeg har nogle spørgsmål: 1) Hvilke felter er der i den database-tabel som gæstebogen er gemt i? 2) Hvordan ser den kode ud som udskriver gæstebogen? 3) Hvem skal egentlig have lov til at slette poster i gæstebogen? Vel ikke hvem som helst.
1) CREATE TABLE `gb` ( `id` int(11) NOT NULL auto_increment, `forum_user` int(11) NOT NULL default '0', `to_user` int(11) NOT NULL default '0', `date` longtext NOT NULL, `besked` longtext NOT NULL, `privat` varchar(255) NOT NULL default '', PRIMARY KEY (`id`) ); 2) Okeeey, du bedte selv om det :) include("includes/mysql.php"); include("includes/functions.php"); include("includes/online.php"); include("includes/login.check.php"); //Scriptet kodet af Unsafe.dk, Overrækkes til Rune/R-fritz/Spunk if(!$_GET["id"]) { header("Location: index.php"); } $connn = mysql_query("SELECT * FROM users WHERE id = '$_GET[id]'"); $rsss = mysql_fetch_array($connn); if(mysql_num_rows($connn) == 0) { header("Location: index.php"); } if($_SERVER["REQUEST_METHOD"] == "POST") { $con = mysql_query("SELECT * FROM users WHERE brugernavn = '$_SESSION[brugernavn]'"); $rss = mysql_fetch_array($con); $sql = "INSERT INTO gb (to_user, forum_user, date, besked, privat) values('".$_GET["id"]."', '".$rss["id"]."', '".date("Y-m-j H:i:s")."', '".$_POST["besked"]."', '".$_POST["privat"]."')"; mysql_query($sql) or die(mysql_error()); } $conn = mysql_query("SELECT * FROM users WHERE brugernavn = '$_SESSION[brugernavn]'"); $rs = mysql_fetch_array($conn); $conn2 = mysql_query("SELECT * FROM gb WHERE to_user = '$_GET[id]'"); $rs2 = mysql_fetch_array($conn2); $conn3 = mysql_query("SELECT * FROM users WHERE id = '$_GET[id]'"); $rs3 = mysql_fetch_array($conn3); include("includes/top.php"); include("includes/brugermenu.php"); ?> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="indhold-topbar-bg">Gæstebog for <?=$rs3["brugernavn"];?> | <?=mysql_num_rows($conn2);?> indlæg</td> </tr> </table> <script language="javascript"> <!-- function check_form() { if (document.submit.besked.value=="") { alert("Du mangler lige beskeden ikke ;)"); return false;} return true; } //--> </script> <form name="submit" method="post" action="<?=$PHP_SELF?>" onsubmit="return check_form();"> <br /> <textarea cols="54" rows="8" name="besked"></textarea><br /> <input type="submit" name="submit" value="Skriv besked"> <input type="button" value="Smileys" onClick="Newwin=window.open('smileys.php','Newwin','height=500,width=500,toolbar=no,status=no,scrollbars=yes,resizable=yes'); "> <input type="checkbox" name="privat" value="yes"> Må kun læses af <?=$rs3["brugernavn"];?> og mig </form><br /><br /> <form action="sletindlaeg.php?id=<?=$_GET["id"];?>" method="post" name="form"> <? if(mysql_num_rows($conn2) == 0) { print "Der er desværre ingen beskeder i gæstebogen.<br /><br />"; } else { $pr_side = 10; $antal = mysql_result(mysql_query("SELECT COUNT(*) FROM gb WHERE to_user = '$_GET[id]'"),0) or die(mysql_error()); $vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0; $conn5 = mysql_query("SELECT * FROM gb WHERE to_user = '$_GET[id]' ORDER BY id DESC LIMIT $vis_fra, $pr_side"); $i = 0; while($rs5 = mysql_fetch_array($conn5)) { $i++; $conn4 = mysql_query("SELECT * FROM users WHERE id = '$rs5[forum_user]'"); $rs4 = mysql_fetch_array($conn4); $cunn = mysql_query("SELECT * FROM online_profiles WHERE brugernavn = '$rs4[brugernavn]'"); $ruu = mysql_fetch_array($cunn); if($rs4["kon"] == "Dreng") { $kon = "D"; } elseif($rs4["kon"] == "Pige") { $kon = "P"; } ?> <?php if ($rs5["privat"] == "yes") { if (($rs["id"] == $_GET["id"]) OR ($rs["id"] == $rs5["forum_user"])) { ?> <table width="100%" cellspacing="0" cellpadding="2"> <tr> <td width="100%" class="text2" style="background: <?=$rs4["bcolor"];?>; color: <?=$rs4["fcolor"];?>; border-top: 1px solid <?=$rs4["fcolor"];?>; border-bottom: 1px solid <?=$rs4["fcolor"];?>;"> <b>PRIVAT</b> - <b><?php if(mysql_num_rows($cunn) == 1) { ?><span class="online"><a href="profil.php?id=<?=$rs4["id"];?>"><?=$rs4["brugernavn"];?></a></span><?php } else { ?><a href="profil.php?id=<?=$rs4["id"];?>"><?=$rs4["brugernavn"];?></a><?php } ?></b> <?=$kon?><?=$rs4["alder"];?> | <?=format_date("j F Y - \\K\\l\\. H:i", $rs5["date"]);?> | <b><a href="java script:window.open('svar.php?id=<?=$rs4["id"];?>','Detaljer','toolbar=0,status=0,scrollbars=yes,resizable=no,width=400,height=240,top=50,left=50').focus();void(0)">Gb</a><b>,</b> <a href="profil.beskeder.php?action=sendbesked&id=<?=$rs4["id"];?>">Pb</a> | <a href="profil.gb.php?id=<?=$rs4["id"];?>">Se Gb</a></b> <?php if($rs["id"] == $_GET["id"]) { ?> <td class="text2" style="background: <?=$rs4["bcolor"];?>; color: <?=$rs4["fcolor"];?>; border-top: 1px solid <?=$rs4["fcolor"];?>; border-bottom: 1px solid <?=$rs4["fcolor"];?>;"> <input type="checkbox" name="fjern" value="$rs5[id]"> </td> <?php } ?> </td> </tr> <tr> <td width="100%" class="text2" style="background: <?=$rs4["bcolor"];?>; color: <?=$rs4["fcolor"];?>;" <?php if($rs["id"] == $_GET["id"]) { print "colspan=\"2\""; } ?>> <?php if(file_exists("images/profiles/$rs4[id].jpg")) { ?><img src="images/profiles/<?=$rs4["bnavn"];?>" width="100" height="75" align="right"><?php } ?> <? echo nl2br(smilies(nohtml($rs5[besked]))) ?> </td> </tr> </table> <?php } }else { ?> <table width="100%" cellspacing="0" cellpadding="2"> <tr> <td width="100%" class="text2" style="background: <?=$rs4["bcolor"];?>; color: <?=$rs4["fcolor"];?>; border-top: 1px solid <?=$rs4["fcolor"];?>; border-bottom: 1px solid <?=$rs4["fcolor"];?>;"> <b><?php if(mysql_num_rows($cunn) == 1) { ?><span class="online"><a href="profil.php?id=<?=$rs4["id"];?>"><?=$rs4["brugernavn"];?></a></span><?php } else { ?><a href="profil.php?id=<?=$rs4["id"];?>"><?=$rs4["brugernavn"];?></a><?php } ?></b> <?=$kon?><?=$rs4["alder"];?> | <?=format_date("j F Y - \\K\\l\\. H:i", $rs5["date"]);?> | <b><a href="java script:window.open('svar.php?id=<?=$rs4["id"];?>','Detaljer','toolbar=0,status=0,scrollbars=yes,resizable=no,width=400,height=240,top=50,left=50').focus();void(0)">Gb</a><b>,</b> <a href="profil.beskeder.php?action=sendbesked&id=<?=$rs4["id"];?>">Pb</a> | <a href="profil.gb.php?id=<?=$rs4["id"];?>">Se Gb</a></b> <?php if($rs["id"] == $_GET["id"]) { ?> <td class="text2" style="background: <?=$rs4["bcolor"];?>; color: <?=$rs4["fcolor"];?>; border-top: 1px solid <?=$rs4["fcolor"];?>; border-bottom: 1px solid <?=$rs4["fcolor"];?>;"> <input type="checkbox" name="fjern" value="$rs5[id]"> </td> <?php } ?> </td> </tr> <tr> <td width="100%" class="text2" style="background: <?=$rs4["bcolor"];?>; color: <?=$rs4["fcolor"];?>;" <?php if($rs["id"] == $_GET["id"]) { print "colspan=\"2\""; } ?>> <?php if(file_exists("images/profiles/$rs4[id].jpg")) { ?><img src="images/profiles/<?=$rs4["bnavn"];?>" width="100" height="75" align="right"><?php } ?> <? echo nl2br(smilies(nohtml($rs5[besked]))) ?> </td> </tr> </table> <?php } } } ?> <b>Sideskift:</b><br /> <?php if ($vis_fra > 0) { $back= $vis_fra - $pr_side; echo "<a href='profil.gb.php?id=$_GET[id]&visfra=$back'>Forrige</a> "; } $page = 1; for ($start = 0; $antal > $start; $start = $start + $pr_side) { if($vis_fra != $page * $pr_side - $pr_side) { echo "<a href='profil.gb.php?id=$_GET[id]&visfra=$start'>$page</a> "; } else { echo $page." "; } $page++; } if ($vis_fra < $antal - $pr_side) { $next = $vis_fra + $pr_side; echo " <a href='profil.gb.php?id=$_GET[id]&visfra=$next'>Næste</a>"; } ?> <br /> <?php if($rs["id"] == $_GET["id"]) { ?><br /> <b><a OnClick="return confirm('Er du sikker på at du vil slette de markerede beskeder?');" href="java script:form.submit();">Slet markeret</a></b><?php } ?> </form> <?php include("includes/bund.php"); ?> 3) Nej den tjekker også om den bruger der er logget ind om det er hans/hendes gb, hvis ja vises der en checkbox.
Jaaae, jeg bad godt nok selv om den. Men derfor kunne du nu godt have redigeret det overflødige væk før du postede. I øvrigt undre jeg mig over at det er nøjagtig den samme kode som twiggy postede i sit spørgsmål (
http://www.eksperten.dk/spm/621277 )?
Heh er r-fritz, han spurgte åbenbart om samme spørgsmål. Men det er skam mig der har kodet det :) Jaa kunne jeg godt, men troed du ville ha hele min kode.
Ok, nu har jeg så tygget mig igennem dit script. Og dette er sådan nogenlunde hvad jeg er kommet frem til: (1) ID’et på den bruger som kigger på sin gæstebog er $_GET[id] (2) Når du udskriver gæstebogen så gør du det på grundlag af en SQL-sætning: "SELECT * FROM gb WHERE to_user = '$_GET[id]' ORDER BY id DESC LIMIT $vis_fra, $pr_side" (3) - og denne looper du igennem: $conn5 = mysql_query("SELECT * FROM gb WHERE to_user = '$_GET[id]' ORDER BY id DESC LIMIT $vis_fra, $pr_side"); while ($rs5 = mysql_fetch_array($conn5)) { // Kode som udskriver en enkelt post i gæstebogen } (4) Da hvert gennemløb i koden svare til en post i gæstebogen, skal der også udskrives em checkboks pr. loop. (5) Checkboksene skal have et fælles navn - navnet "fjern" er allerede blevet foreslået. (6) Loopen tilrettes derfor sådan her: <?php while ($rs5 = mysql_fetch_array($conn5)) ?> <input type="checkbox" name="fjernes" value="<?php =$rs5[id]; ?>"> <?php // Kode som udskriver en enkelt post i gæstebogen } ?> (7) Du skal selv indsætte noget passende html-kode sådan at den enkelte checkboks forbliver sammen med den post den høre til. (8a) Så er du faktisk færdig med den første halvdel - den som handler om at anbringe checkboksene. (8b) Den anden halvdel består i at slette de poster, i den pågældende gæstebog, som høre til de afkrydsede checkbokse. (9) Formen submitter tilbage til sig selv, og derfor er det på samme side at koden til at slette skal placeres. (10) Jeg kan se at typen for søjlen "id" i din gæstebog er unik. Der er mao. ikke to forskellige brugere som kan have det samme id for en af posterne i deres gæstebog. Derfor behøver vi heller ikke at have nogen reference med til brugeren når vi sletter. (11) Koden for st slette er allerede givet af dulius over i det andet spørgsmål (27/05-2005 21:41:07): <?php $fjernes = $_POST["fjernes"]; foreach ($fjernes as $id) { mysql_query("DELETE FROM gb WHERE id='$id'"); } ?> Denne lille kodestump skal bare op i toppen og lægge. Et passende sted. Og det skulle vist være det.
Virker stadigvæk ikke :( har sat chekboxen ind ved beskeden: <input type="checkbox" name="fjernes" value="<?=$rs5[id];?>"> og her er min post kode: if($_SERVER["REQUEST_METHOD"] == "POST") { if($_POST["fjernes"]) { $fjernes = $_POST["fjernes"]; foreach ($fjernes as $id) { mysql_query("DELETE FROM gb WHERE id='$id'"); } } else { $con = mysql_query("SELECT * FROM users WHERE brugernavn = '$_SESSION[brugernavn]'"); $rss = mysql_fetch_array($con); $sql = "INSERT INTO gb (to_user, forum_user, date, besked, privat) values('".$_GET["id"]."', '".$rss["id"]."', '".date("Y-m-j H:i:s")."', '".$_POST["besked"]."', '".$_POST["privat"]."')"; mysql_query($sql) or die(mysql_error()); } } :-(
Feltet id er defineret som et tal i din tabel og derfor skal SQL'en se sådan her ud: mysql_query("DELETE FROM gb WHERE id=$id"); - altså uden pinger rundt om $id. Bortset for det så ser det rigtigt nok ud. I øvrigt: I stedet for blot at skrive "virker ikke" så må man hellere beskreve hvad det er der sker. Vi andre har jo ikke set det du har set - og vi er derfor henvist til at gætte.
Hehe Det sker ikke noget Den viser bare gæstebogen efter man har trykket på <a OnClick="return confirm('Er du sikker på at du vil slette de markerede beskeder?');" href="java script:form.submit();">Slet markeret</a> Og det samme sker stadigvæk :(
Så er det vist tid til at debugge: if ($_SERVER["REQUEST_METHOD"] == "POST") { if ($_POST["fjernes"]) { echo "DEBUG: Inde i POST_fjernes.<br>"; $fjernes = $_POST["fjernes."]; foreach ($fjernes as $id) { $DeleteSQL = "DELETE FROM gb WHERE id=$id"; echo "DEBUG: SQL " . $DeleteSQL . "<br>" mysql_query($DeleteSQL); } } else { echo "DEBUG: Ikke inde i POST_fjernes.<br>"; $con = mysql_query("SELECT * FROM users WHERE brugernavn = '$_SESSION[brugernavn]'"); $rss = mysql_fetch_array($con); $sql = "INSERT INTO gb (to_user, forum_user, date, besked, privat) values('".$_GET["id"]."', '".$rss["id"]."', '".date("Y-m-j H:i:s")."', '".$_POST["besked"]."', '".$_POST["privat"]."')"; mysql_query($sql) or die(mysql_error()); } }
Det er stadig det samme. :-(
Nææ der står DEBUG: Inde i POST_fjernes. I toppen af designet hehe. Så det vil sige den burde slette de beskeder jeg afkrydser
Ikke hvis echo nr. 2 ikke bliver udskrevet: echo "DEBUG: SQL " . $DeleteSQL . "<br>" Og som jeg læser din beskrivelse - så kommer der ikke nogen udskrift fra denne?
Der er kommet et lille punktim ind i: $fjernes = $_POST["fjernes."]; Det skal i hvert fald væk hvis det skal virke.
Nej den bliver ikke udskrevet. Kun DEBUG: Inde i POST_fjernes. altså: echo "DEBUG: Inde i POST_fjernes.<br>"; Desværre :/ hvad kan der være galt? Beskederne og submit taksten er jo inde i en form og det hele.. så jeg forstår det ikke.
Det har lige lige rettet. Der kommer stadig bare DEBUG: Inde i POST_fjernes.
Så prøv at ændre foreach-løkken til: for ($i = 0; $i < count($_POST['fjernes']); $i++) { $id = $_POST['fjernes']['$i']; $DeleteSQL = "DELETE FROM gb WHERE id=$id"; echo "DEBUG: SQL " . $DeleteSQL . "<br>" mysql_query($DeleteSQL); }
Nu står der i toppen DEBUG: Inde i POST_fjernes. DEBUG: SQL DELETE FROM gb WHERE id=4 Men det er ikke id 4 jeg sletter jeg prøvede at slette id 458
Hmm, så kom vi da så langt. Desværre må vi vente til imorgen med resten. Prøv lige at tjekke html-koden for checkboksen efter. Står der 4 eller 458 i denne?
Hehe okey :) der står 458,
Med nogle smårettelser hist og pist så virker den for mig: <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { if ($_POST["fjernes"]) { echo "DEBUG: Inde i POST_fjernes.<br>"; for ($i = 0; $i < count($_POST['fjernes']); $i++) { $id = $_POST['fjernes'][$i]; $DeleteSQL = "DELETE FROM gb WHERE id=$id"; echo "DEBUG: SQL " . $DeleteSQL . "<br>"; // mysql_query($DeleteSQL); } } else { echo "DEBUG: Ikke inde i POST_fjernes.<br>"; // $con = mysql_query("SELECT * FROM users WHERE brugernavn = '$_SESSION[brugernavn]'"); // $rss = mysql_fetch_array($con); $sql = "INSERT INTO gb (to_user, forum_user, date, besked, privat) values('".$_GET["id"]."', '".$rss["id"]."', '".date("Y-m-j H:i:s")."', '".$_POST["besked"]."', '".$_POST["privat"]."')"; // mysql_query($sql) or die(mysql_error()); } } ?> PS: Jeg har kommenteret alt MySQL ud. Vi skulle jo nødigt få slettet noget før at vi er helt sikker på at det er det rigtige SQL som ville blive udført. :^)
Hehe Det virker stadig ikke :( DEBUG: Inde i POST_fjernes. DEBUG: SQL DELETE FROM gb WHERE id=7 Står der når det var id 75 jeg prøvede at slette.
Der er ingen som helst fornuftig grund til at den skulle klippe alt andet end det første ciffer. Prøv at poste din kode - ja bare alt sammen igen. ;^)
<?php if (isset($_POST["fjernes"]) && is_array($_POST["fjernes"])) { { echo "DEBUG: Inde i POST_fjernes:"; for ($_POST["fjernes"] as $id) { $DeleteSQL = "DELETE FROM gb WHERE id= ". intval($id); echo "<br />\n" . $DeleteSQL; // mysql_query($DeleteSQL); } } ?>
Og ellers: for ($i = 0; $i < count($_POST['fjernes']); $i++) { $DeleteSQL = "DELETE FROM gb WHERE id= ". intval($_POST['fjernes'][$i]); echo "DEBUG: SQL " . $DeleteSQL . "<br>"; // mysql_query($DeleteSQL); }
UpS for ($_POST["fjernes"] as $id) foreach ($_POST["fjernes"] as $id) !!!
Desværre sukos, det virker heller ikke Hehe ok nielle <?php include("includes/mysql.php"); include("includes/functions.php"); include("includes/online.php"); include("includes/login.check.php"); //Scriptet kodet af Unsafe.dk, Overrækkes til Rune/R-fritz/Spunk if(!$_GET["id"]) { header("Location: index.php"); } $connn = mysql_query("SELECT * FROM users WHERE id = '$_GET[id]'"); $rsss = mysql_fetch_array($connn); if(mysql_num_rows($connn) == 0) { header("Location: index.php"); } if($_SERVER["REQUEST_METHOD"] == "POST") { if ($_POST["fjernes"]) { echo "DEBUG: Inde i POST_fjernes.<br>"; for ($i = 0; $i < count($_POST['fjernes']); $i++) { $id = $_POST['fjernes'][$i]; $DeleteSQL = "DELETE FROM gb WHERE id=$id"; echo "DEBUG: SQL " . $DeleteSQL . "<br>"; // mysql_query($DeleteSQL); } } else { echo "DEBUG: Ikke inde i POST_fjernes.<br>"; $con = mysql_query("SELECT * FROM users WHERE brugernavn = '$_SESSION[brugernavn]'"); $rss = mysql_fetch_array($con); $sql = "INSERT INTO gb (to_user, forum_user, date, besked, privat) values('".$_GET["id"]."', '".$rss["id"]."', '".date("Y-m-j H:i:s")."', '".$_POST["besked"]."', '".$_POST["privat"]."')"; mysql_query($sql) or die(mysql_error()); } } $conn = mysql_query("SELECT * FROM users WHERE brugernavn = '$_SESSION[brugernavn]'"); $rs = mysql_fetch_array($conn); $conn2 = mysql_query("SELECT * FROM gb WHERE to_user = '$_GET[id]'"); $rs2 = mysql_fetch_array($conn2); $conn3 = mysql_query("SELECT * FROM users WHERE id = '$_GET[id]'"); $rs3 = mysql_fetch_array($conn3); include("includes/top.php"); include("includes/brugermenu.php"); ?> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="indhold-topbar-bg">Gæstebog for <?=$rs3["brugernavn"];?> | <?=mysql_num_rows($conn2);?> indlæg</td> </tr> </table> <script language="javascript"> <!-- function check_form() { if (document.submit.besked.value=="") { alert("Du mangler lige beskeden ikke ;)"); return false;} return true; } //--> </script> <form name="submit" method="post" action="<?=$PHP_SELF?>" onsubmit="return check_form();"> <br /> <textarea cols="54" rows="8" name="besked"></textarea><br /> <input type="submit" name="submit" value="Skriv besked"> <input type="button" value="Smileys" onClick="Newwin=window.open('smileys.php','Newwin','height=500,width=500,toolbar=no,status=no,scrollbars=yes,resizable=yes'); "> <input type="checkbox" name="privat" value="yes"> Må kun læses af <?=$rs3["brugernavn"];?> og mig </form><br /><br /> <form action="<?=$PHP_SELF?>" method="post" name="form"> <? if(mysql_num_rows($conn2) == 0) { print "Der er desværre ingen beskeder i gæstebogen.<br /><br />"; } else { $pr_side = 10; $antal = mysql_result(mysql_query("SELECT COUNT(*) FROM gb WHERE to_user = '$_GET[id]'"),0) or die(mysql_error()); $vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0; $conn5 = mysql_query("SELECT * FROM gb WHERE to_user = '$_GET[id]' ORDER BY id DESC LIMIT $vis_fra, $pr_side"); $i = 0; while($rs5 = mysql_fetch_array($conn5)) { $i++; $conn4 = mysql_query("SELECT * FROM users WHERE id = '$rs5[forum_user]'"); $rs4 = mysql_fetch_array($conn4); $cunn = mysql_query("SELECT * FROM online_profiles WHERE brugernavn = '$rs4[brugernavn]'"); $ruu = mysql_fetch_array($cunn); if($rs4["kon"] == "Dreng") { $kon = "D"; } elseif($rs4["kon"] == "Pige") { $kon = "P"; } ?> <?php if ($rs5["privat"] == "yes") { if (($rs["id"] == $_GET["id"]) OR ($rs["id"] == $rs5["forum_user"])) { ?> <table width="100%" cellspacing="0" cellpadding="2"> <tr> <td width="100%" class="text2" style="background: <?=$rs4["bcolor"];?>; color: <?=$rs4["fcolor"];?>; border-top: 1px solid <?=$rs4["fcolor"];?>; border-bottom: 1px solid <?=$rs4["fcolor"];?>;"> <b>PRIVAT</b> - <b><?php if(mysql_num_rows($cunn) == 1) { ?><span class="online"><a href="profil.php?id=<?=$rs4["id"];?>"><?=$rs4["brugernavn"];?></a></span><?php } else { ?><a href="profil.php?id=<?=$rs4["id"];?>"><?=$rs4["brugernavn"];?></a><?php } ?></b> <?=$kon?><?=$rs4["alder"];?> | <?=format_date("j F Y - \\K\\l\\. H:i", $rs5["date"]);?> | <b><a href="java script:window.open('svar.php?id=<?=$rs4["id"];?>','Detaljer','toolbar=0,status=0,scrollbars=yes,resizable=no,width=400,height=240,top=50,left=50').focus();void(0)">Gb</a><b>,</b> <a href="profil.beskeder.php?action=sendbesked&id=<?=$rs4["id"];?>">Pb</a> | <a href="profil.gb.php?id=<?=$rs4["id"];?>">Se Gb</a></b> <?php if($rs["id"] == $_GET["id"]) { ?> <td class="text2" style="background: <?=$rs4["bcolor"];?>; color: <?=$rs4["fcolor"];?>; border-top: 1px solid <?=$rs4["fcolor"];?>; border-bottom: 1px solid <?=$rs4["fcolor"];?>;"> <input type="checkbox" name="fjernes" value="<?=$rs5[id];?>"> </td> <?php } ?> </td> </tr> <tr> <td width="100%" class="text2" style="background: <?=$rs4["bcolor"];?>; color: <?=$rs4["fcolor"];?>;" <?php if($rs["id"] == $_GET["id"]) { print "colspan=\"2\""; } ?>> <?php if(file_exists("images/profiles/$rs4[id].jpg")) { ?><img src="images/profiles/<?=$rs4["bnavn"];?>" width="100" height="75" align="right"><?php } ?> <? echo nl2br(smilies(nohtml($rs5[besked]))) ?> </td> </tr> </table> <?php } }else { ?> <table width="100%" cellspacing="0" cellpadding="2"> <tr> <td width="100%" class="text2" style="background: <?=$rs4["bcolor"];?>; color: <?=$rs4["fcolor"];?>; border-top: 1px solid <?=$rs4["fcolor"];?>; border-bottom: 1px solid <?=$rs4["fcolor"];?>;"> <b><?php if(mysql_num_rows($cunn) == 1) { ?><span class="online"><a href="profil.php?id=<?=$rs4["id"];?>"><?=$rs4["brugernavn"];?></a></span><?php } else { ?><a href="profil.php?id=<?=$rs4["id"];?>"><?=$rs4["brugernavn"];?></a><?php } ?></b> <?=$kon?><?=$rs4["alder"];?> | <?=format_date("j F Y - \\K\\l\\. H:i", $rs5["date"]);?> | <b><a href="java script:window.open('svar.php?id=<?=$rs4["id"];?>','Detaljer','toolbar=0,status=0,scrollbars=yes,resizable=no,width=400,height=240,top=50,left=50').focus();void(0)">Gb</a><b>,</b> <a href="profil.beskeder.php?action=sendbesked&id=<?=$rs4["id"];?>">Pb</a> | <a href="profil.gb.php?id=<?=$rs4["id"];?>">Se Gb</a></b> <?php if($rs["id"] == $_GET["id"]) { ?> <td class="text2" style="background: <?=$rs4["bcolor"];?>; color: <?=$rs4["fcolor"];?>; border-top: 1px solid <?=$rs4["fcolor"];?>; border-bottom: 1px solid <?=$rs4["fcolor"];?>;"> <input type="checkbox" name="fjernes" value="<?=$rs5[id];?>"> </td> <?php } ?> </td> </tr> <tr> <td width="100%" class="text2" style="background: <?=$rs4["bcolor"];?>; color: <?=$rs4["fcolor"];?>;" <?php if($rs["id"] == $_GET["id"]) { print "colspan=\"2\""; } ?>> <?php if(file_exists("images/profiles/$rs4[id].jpg")) { ?><img src="images/profiles/<?=$rs4["bnavn"];?>" width="100" height="75" align="right"><?php } ?> <? echo nl2br(smilies(nohtml($rs5[besked]))) ?> </td> </tr> </table> <?php } } } ?> <b>Sideskift:</b><br /> <?php if ($vis_fra > 0) { $back= $vis_fra - $pr_side; echo "<a href='profil.gb.php?id=$_GET[id]&visfra=$back'>Forrige</a> "; } $page = 1; for ($start = 0; $antal > $start; $start = $start + $pr_side) { if($vis_fra != $page * $pr_side - $pr_side) { echo "<a href='profil.gb.php?id=$_GET[id]&visfra=$start'>$page</a> "; } else { echo $page." "; } $page++; } if ($vis_fra < $antal - $pr_side) { $next = $vis_fra + $pr_side; echo " <a href='profil.gb.php?id=$_GET[id]&visfra=$next'>Næste</a>"; } ?> <br /> <?php if($rs["id"] == $_GET["id"]) { ?><br /> <b><a OnClick="return confirm('Er du sikker på at du vil slette de markerede beskeder?');" href="java script:form.submit();">Slet markeret</a></b><?php } ?> </form> <?php include("includes/bund.php"); ?>
Har du prøvet en "Vis kilde" for siden, for at se om der overhovedet er flere "id"? Og et eksempel: <?php echo"<form action=\"". $_SERVER["PHP_SELF"] ."\" method=\"post\">\n"; for($i = 1; $i <= 5; $i++) { echo"<input type=\"checkbox\" name=\"fjernes[]\" value=\"". $i ."\" id=\"l_". $i ."\"><label for=\"l_". $i ."\">checkbox ". $i ."</label><br>\n"; } echo"<input type=\"submit\" value=\"Vis\">\n"; echo"</form>"; if(isset($_POST["fjernes"]) && is_array($_POST["fjernes"])) { foreach($_POST["fjernes"] as $vaerdi) { $sql = "DELETE FROM `tabel` WHERE `id` = ". intval($vaerdi) ." AND `ejer` = 'navn'"; echo $sql ."<br />\n"; } } ?>
Hmm, jeg kan se at vi (dvs. mig) har glemt noget: Prøv at ret dine to forekomster af: <input type="checkbox" name="fjernes" value="<?php =$rs5[id]; ?>"> - til: Hmm, jeg kan se at vi (altså mig) har gjemt noget <input type="checkbox" name="fjernes[]" value="<?php =$rs5[id]; ?>">
Sukos > Ja der er flere forskellige id's i hver chekbox den kode har jeg prøvet, der vises bare 5 chekboxe hvor der står chekbox og så 1 og op til 5 Nielle> Hjalp ikke :/
Har du et link sådan at jeg selv kan se?
Du har to forms på din side. Når du prøver at submitte, er der tvivl om hvilken det er der skal summittes. Så vidt jeg kan se er det din første form som bliver submittet mens at ckeckboksene faktisk er i form nr. 2. Derfor kommer de slet ikke med.
Der er da ikke noget galt? Når jeg - fra test-brugerens gæstebog - klikker af i alle 5 entries, og trykker på linket i bunden, så får jeg: DEBUG: Inde i POST_fjernes. DEBUG: SQL DELETE FROM gb WHERE id=504 DEBUG: SQL DELETE FROM gb WHERE id=503 DEBUG: SQL DELETE FROM gb WHERE id=502 DEBUG: SQL DELETE FROM gb WHERE id=501 DEBUG: SQL DELETE FROM gb WHERE id=339 Det passer fint med de id'er der er på de 5 checkbokse.
Ja det er 2 forums :O det er jo en submit kode på teksten, ellers kan det da ikke virker vel? Skal det hele bare være en stor form? ja nu gør det :)
Så er problemet vel løst! :^) :^) :^)
Sagde ja nu gør det til det med numrene :p ( DEBUG: Inde i POST_fjernes. DEBUG: SQL DELETE FROM gb WHERE id=504 DEBUG: SQL DELETE FROM gb WHERE id=503 DEBUG: SQL DELETE FROM gb WHERE id=502 DEBUG: SQL DELETE FROM gb WHERE id=501 DEBUG: SQL DELETE FROM gb WHERE id=339 )
Og nu da der kun er 1 form ud over så sker der bare intet når jeg klikker på Slet de markeret beskeder.
Lige nu har vi jo faktisk også udkommenteret den kode som foretager selve sletningen.
uhm, okey :O Hehe men det virker dog stadig ikke :P
Hvad med at gå tilbage til den kode du havde 30/05-2005 23:17:57? Den så da ud til at birke.
Vi må fortsætte i morgen. Dynerne kalder.
det var jo bare en kopi af det du skrev Det er bare det den udskriver når man prøver at submitte, men den sletter alligevel ikke hehe Jæz ;) samme her
Skal vi se at få knækket denne nåd? Den kode du havde 30/05-2005 22:57:30 virkede. Der manglede bare lige en smule for at vi var i mål. Hvad skete der egentlig med den kode?
Hvilken kode? det var jo bare hvad den udskrev når man submittede den Ja ville være dejligt hvis vi snart kunne få det til at virke hehe :)
01. juni 2005 - 17:30
#52
Der var jo noget ASP kode som lå bagved og var ansvarlig for at de 5-6 linjer blev udskrevet. Det er den kode jeg spørge efter. Siden at den udskrev de 5 SQL kommandoer på skærmen, og siden at de jo var korrekte, så var den ASP kode lige ved at være det der skulle til. Den eneste ændring der skulle til var jo at selve udskriften, som jo kun var til debugning, skulle fjernes og at SQL kommandoerne skulle udføres (vi havde jo kommenteret dem ud). Det er som sagt den kode jeg spurgte efter. Lige nu kommer der ikke noget frem på skærmen hvis jeg prøver at eftergøre det jeg gjorde for at se det som jeg så 30/05-2005 22:57:30. Hvad har du lavet af ændringer siden at jeg ikke ser de der SQL kommandoer mere?
03. juni 2005 - 06:37
#53
Øhm, det forstord jeg ikke meget af.. Jeg har ikke lavet nogle ændringer, forstår bare stadig ikke hvorfor det ikke virker :s?
03. juni 2005 - 06:39
#54
eller jo, jeg lavet jo det hele til en stor forum, altså fra textarea't og afsluttet formen efter submit linket, men nu sker der bare intet
03. juni 2005 - 15:51
#55
Så må jo enten lave det tilbage igen - eller poste den nye kode.
04. juni 2005 - 16:43
#56
Undskyld men hvilken ny kode. Det virker jo ikke lige meget hvad vi har prøvet.
05. juni 2005 - 07:53
#57
Du skriver 03/06-2005 06:39:06 at du har lavet nogle ændringer. Det er den nye kode som jeg da meget gerne vil se.
05. juni 2005 - 07:58
#58
I øvrigt er jeg ikke enig i din vurdering af at "Det virker jo ikke lige meget hvad vi har prøvet."; I 30/05-2005 22:57:30 så jeg at den rent faktisk udskrev de SQL sætninger som skulle udføres. De blev bare ikke udført - og derfor blev posterne selvfølgelig heller ikke slettet. Grunden til at de ikke blev udført var jo den simple at vi tidligere havde udkommenteret MySQL koden. Vi skulle stort set bare have fjernet denne udkommentering ført at vi var i mål. Vi er der næsten!
06. juni 2005 - 22:07
#59
Jeg har bare fjernet formen rundt om beskederne, ikke andet. Og jeg er ret forvirret, forstår ikke havd du vil have mig til at gøre :-( Skal jeg poste min kode igen?
06. juni 2005 - 22:13
#60
:D det virker nu :D Jeg rettede bare // msyql_query($DeleteSQL); Til msyql_query($DeleteSQL); Smid et svar :D
06. juni 2005 - 23:06
#61
Svar :^)
06. juni 2005 - 23:41
#62
Sådan :) Mange tak, og undskyld jeg var til besvær :p
Vi tilbyder markedets bedste kurser inden for webudvikling