Avatar billede unsafe Nybegynder
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 :)
Avatar billede rocha_dk Nybegynder
29. maj 2005 - 02:21 #1
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.
Avatar billede unsafe Nybegynder
29. maj 2005 - 03:03 #2
Uhm. forstod jeg desværre ikke meget af.

Er ikke så god til php

Kan du give et eksempel ;-)?
Avatar billede nielle Nybegynder
29. maj 2005 - 07:54 #3
Avatar billede unsafe Nybegynder
29. maj 2005 - 14:55 #4
Yep, det har jeg prøvet, men som twiggy sagde kommer der bare 5 chekboxe ved hver besked.

Andre forslag :-)?
Avatar billede nielle Nybegynder
29. maj 2005 - 15:18 #5
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.
Avatar billede unsafe Nybegynder
29. maj 2005 - 15:23 #6
Som sagt jeg er dårlig til php?

Og har ingen anelse om hvordan jeg kan gøre det.
Avatar billede nielle Nybegynder
29. maj 2005 - 16:28 #7
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.
Avatar billede unsafe Nybegynder
29. maj 2005 - 17:03 #8
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.
Avatar billede nielle Nybegynder
29. maj 2005 - 18:17 #9
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)?
Avatar billede unsafe Nybegynder
29. maj 2005 - 18:32 #10
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.
Avatar billede nielle Nybegynder
29. maj 2005 - 20:58 #11
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.
Avatar billede unsafe Nybegynder
29. maj 2005 - 22:10 #12
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());

}
}

:-(
Avatar billede nielle Nybegynder
29. maj 2005 - 22:16 #13
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.
Avatar billede unsafe Nybegynder
29. maj 2005 - 22:30 #14
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 :(
Avatar billede nielle Nybegynder
29. maj 2005 - 22:38 #15
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());
    }
}
Avatar billede unsafe Nybegynder
29. maj 2005 - 22:42 #16
Det er stadig det samme. :-(
Avatar billede unsafe Nybegynder
29. maj 2005 - 22:46 #17
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
Avatar billede nielle Nybegynder
29. maj 2005 - 22:52 #18
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?
Avatar billede nielle Nybegynder
29. maj 2005 - 22:58 #19
Der er kommet et lille punktim ind i:

$fjernes = $_POST["fjernes."];

Det skal i hvert fald væk hvis det skal virke.
Avatar billede unsafe Nybegynder
29. maj 2005 - 22:58 #20
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.
Avatar billede unsafe Nybegynder
29. maj 2005 - 23:02 #21
Det har lige lige rettet.

Der kommer stadig bare

DEBUG: Inde i POST_fjernes.
Avatar billede nielle Nybegynder
29. maj 2005 - 23:04 #22
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);
}
Avatar billede unsafe Nybegynder
29. maj 2005 - 23:13 #23
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
Avatar billede nielle Nybegynder
29. maj 2005 - 23:17 #24
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?
Avatar billede unsafe Nybegynder
29. maj 2005 - 23:24 #25
Hehe okey :)

der står 458,
Avatar billede nielle Nybegynder
30. maj 2005 - 19:29 #26
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. :^)
Avatar billede unsafe Nybegynder
30. maj 2005 - 21:17 #27
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.
Avatar billede nielle Nybegynder
30. maj 2005 - 21:22 #28
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. ;^)
Avatar billede sukos Juniormester
30. maj 2005 - 21:22 #29
<?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);
        }
    }
?>
Avatar billede sukos Juniormester
30. maj 2005 - 21:24 #30
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);
        }
Avatar billede sukos Juniormester
30. maj 2005 - 21:25 #31
UpS

for ($_POST["fjernes"] as $id)

foreach ($_POST["fjernes"] as $id)

!!!
Avatar billede unsafe Nybegynder
30. maj 2005 - 21:47 #32
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");

?>
Avatar billede sukos Juniormester
30. maj 2005 - 21:58 #33
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";
    }
}
?>
Avatar billede nielle Nybegynder
30. maj 2005 - 22:12 #34
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]; ?>">
Avatar billede unsafe Nybegynder
30. maj 2005 - 22:21 #35
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 :/
Avatar billede nielle Nybegynder
30. maj 2005 - 22:28 #36
Har du et link sådan at jeg selv kan se?
Avatar billede unsafe Nybegynder
30. maj 2005 - 22:35 #37
www.r-fritz.dk

i ens gæstebøger
Avatar billede nielle Nybegynder
30. maj 2005 - 22:53 #38
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.
Avatar billede nielle Nybegynder
30. maj 2005 - 22:57 #39
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.
Avatar billede unsafe Nybegynder
30. maj 2005 - 23:03 #40
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 :)
Avatar billede nielle Nybegynder
30. maj 2005 - 23:09 #41
Så er problemet vel løst! :^) :^) :^)
Avatar billede unsafe Nybegynder
30. maj 2005 - 23:17 #42
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

)
Avatar billede unsafe Nybegynder
30. maj 2005 - 23:20 #43
Og nu da der kun er 1 form ud over så sker der bare intet når jeg klikker på Slet de markeret beskeder.
Avatar billede nielle Nybegynder
30. maj 2005 - 23:32 #44
Lige nu har vi jo faktisk også udkommenteret den kode som foretager selve sletningen.
Avatar billede unsafe Nybegynder
30. maj 2005 - 23:37 #45
uhm, okey :O

Hehe men det virker dog stadig ikke :P
Avatar billede nielle Nybegynder
30. maj 2005 - 23:39 #46
Hvordan virker det ikke?
Avatar billede nielle Nybegynder
30. maj 2005 - 23:41 #47
Hvad med at gå tilbage til den kode du havde 30/05-2005 23:17:57? Den så da ud til at birke.
Avatar billede nielle Nybegynder
30. maj 2005 - 23:41 #48
Vi må fortsætte i morgen. Dynerne kalder.
Avatar billede unsafe Nybegynder
30. maj 2005 - 23:49 #49
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
Avatar billede nielle Nybegynder
31. maj 2005 - 18:13 #50
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?
Avatar billede unsafe Nybegynder
31. maj 2005 - 23:17 #51
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 :)
Avatar billede nielle Nybegynder
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?
Avatar billede unsafe Nybegynder
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?
Avatar billede unsafe Nybegynder
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
Avatar billede nielle Nybegynder
03. juni 2005 - 15:51 #55
Så må jo enten lave det tilbage igen - eller poste den nye kode.
Avatar billede unsafe Nybegynder
04. juni 2005 - 16:43 #56
Undskyld men hvilken ny kode.

Det virker jo ikke lige meget hvad vi har prøvet.
Avatar billede nielle Nybegynder
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.
Avatar billede nielle Nybegynder
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!
Avatar billede unsafe Nybegynder
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?
Avatar billede unsafe Nybegynder
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
Avatar billede nielle Nybegynder
06. juni 2005 - 23:06 #61
Svar :^)
Avatar billede unsafe Nybegynder
06. juni 2005 - 23:41 #62
Sådan :)

Mange tak, og undskyld jeg var til besvær :p
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