Avatar billede xeox Nybegynder
03. maj 2005 - 14:39 Der er 13 kommentarer og
1 løsning

Sletning og trække 1 fra?

Hej alle sammen, jeg skal lige bruge lidt hjælp til dette script:

<?
          // Henter tråd
include "../db.php";
if(isset($_GET['id']))
{
mysql_query("DELETE FROM forum_msg WHERE id='". $_GET["id"] ."'") or die(mysql_error());

echo "<center><b><font face=Verdana size=1>Replyen blev slettet!</font></b><br><br></center>";
}

$id = $_GET[id];
$query = mysql_query("SELECT * FROM forum_body WHERE id='$id'");
while ($row = mysql_fetch_array($query)) {

echo "<div align='left'>";
echo "<b>$row[overskrift]</b>&nbsp;"; if($row[email] == ""){ echo "$row[navn]";
} else {
echo "<a href=\"mailto:$row[email]\">$row[navn]</a>";
}
echo " ($row[dato])<br><br>\n";
echo "$row[besked]\n";
echo "<br><br>";
echo "<hr noshade color=\"#00000\" size=\"1\">\n";
echo "</div>";
}
?>
            <?
            // Henter kommentarer
$id = $_GET[id];
$query = mysql_query("SELECT * FROM forum_msg WHERE replyto='$id' ORDER BY id");
while ($row = mysql_fetch_array($query)) {
if($row[email] == ""){
echo "$row[navn]";
} else {
echo "<a href=\"mailto:$row[email]\">$row[navn]</a> | <a href='?id=$row[id]'><img src='../../gfx/deleted.gif' width='17' height='16' border='0'></a>";
}
echo " ($row[dato])<br><br>\n";
echo "$row[besked]\n";
echo "<hr noshade color=\"#00000\" size=\"1\">\n";
}
?>
            <div align="center">
<b>Kommenter tråd</b><br>
              <script language="JavaScript">
function Check() {
    if (document.post.navn.value == "") {
      alert("Du skal skrive dit navn");
      return false;
    }
    if (document.post.besked.value == "") {
      alert("Du skal skrive en besked");
      return false;
    }
}
</script>
              <table width="330" cellspacing="0" cellpadding="1">
                <form method="post" action="reply_ok.php?id=<? echo "$id" ?>" name="post" onsubmit="return Check()">
                  <tr>
                    <td width="165">Navn:
                      <input name="navn" type="text" style="width: 119px" value="<? echo "$c_navn"; ?>"></td>
                    <td width="165">Email:
                      <input type="text" name="email" value="<? echo "$c_email"; ?>" style="width: 119px"></td>
                  </tr>
                  <tr>
                    <td width="330" colspan="2"> <textarea name="besked" rows="7" style="width: 324px"></textarea>
                      <br> <input type="submit" name="send" value="Send"> <input type="checkbox" name="cookie">
                      Gem navn og email. </td>
                  </tr>
                </form>


det som det gør, er at jeg kan se hvad der er blevet skrevet i mit forum, og jeg kan gå ind og slette de replyes der har været til den angivne tråd.

Det som jeg skal have hjælp til er:

1.At hver kan jeg trykker på deleted.gif, så sletter den fint den ønsket reply, men så i stedet for at gå tilbage så jeg kan se andre replyes skriver den bare "Replyen er slettet" Det er også fint nok, men jeg vil gerne være fri for at skulle trykke mig igennem systemet igen for at komme til den ønskede tråd.  - Håber i forstod den !

2. Her vil jeg gerne have at den minuser EN i $replies på den pågældende id.. Altså hvis der står der er 5 replies og jeg så trykker delete på en så skal der jo stå 4.. For det gør den nemlig ik auto :)

Håber i er med ;)
Avatar billede pallotto Nybegynder
03. maj 2005 - 20:05 #1
Hvis du godt vil have den til selv at finde ud af hvor mange replys som der er til dine forum tråde.
$varialbel = mysql_result(mysql_query("SELECT COUNT(*) FROM TABEL WHERE godkendt='1'"), 0);
Hvis du printer den så vil den blot skrive hvor mange derer i TABEL som har godkendt = 1
meget nemt.
Avatar billede xeox Nybegynder
03. maj 2005 - 21:18 #2
Jamen jeg har en jeg bare kan kalde frem sådan her: $replies... der tæller den af sig selv op når der kommer et replie.. Men jeg vil gerne have sådan når jeg bruger mit script så minuer den med EN hver gang. en test side kan fremvises hvis der bliver smidt en email op her :)
Avatar billede pallotto Nybegynder
04. maj 2005 - 14:24 #3
Okay det du godt vil er sådan set bare at lavet lidt matematik med PHP?

$replies = 5; // et tal vi bare går ud fra
$replies -= 1; // vi tager $replies og minuser 1
print $replies; // og vi printer
Avatar billede xeox Nybegynder
04. maj 2005 - 20:10 #4
Ja på en måde. Men den skal -=1 i min db i $replies .. der er et felt der hedder $replies som tilføjer én hver gang der bliver postet en replie.. Men når jeg så går ind og trykker på "<a href='?id=$row[id]'><img src='../../gfx/deleted.gif' width='17' height='16' border='0'></a>" for at slette en replie, skal den MINUS én i feltet $replies i min DB. for ellers vil der hele tiden f.eks. stå 4 replies, selv om jeg lige har slettet én så der kun er 3 i. så det må jeg være noget med:

if(isset($_GET['id']))
{
mysql_query("DELETE FROM forum_msg WHERE id='". $_GET["id"] ."' $replies -= 1") or die(mysql_error());

echo "<center><b><font face=Verdana size=1>Replyen blev slettet!</font></b><br><br></center>";
}


eller noget???
Avatar billede pallotto Nybegynder
04. maj 2005 - 20:42 #5
Hvis du godt vil rette i databasen ska du bruge
mysql_query("UPDATE TABEL SET vist = vist - 1 WHERE id = '".$_GET['link']."'") or die(mysql_error());

Du ska bare rette TABEL til det tabelen hedder.
"vist" til det som du godt vil rette i tabelen.

Så hvis jeg skulle rette det kode du lige prøve at sende.

if(isset($_GET['id']))
{
mysql_query("DELETE FROM forum_msg WHERE id='". $_GET["id"] ."'") or die(mysql_error());
mysql_query("UPDATE forum_msg SET replies = replies - 1 WHERE id = '$_GET[id]'") or die(mysql_error());

echo "<center><b><font face=Verdana size=1>Replyen blev slettet!</font></b><br><br></center>";
}

Du kan lige rette den til så den passer til din database..
Avatar billede xeox Nybegynder
09. maj 2005 - 14:20 #6
Ja det virker næsten. Men lige nu, når jeg bare går ind på tråden så minuer den én fra replies.. og det skal den jo ikke ;). det er først når jeg har klikket på delete ud for den bestemte replie
Avatar billede pallotto Nybegynder
09. maj 2005 - 15:48 #7
Hmm ja. Det kode jeg sendte dig det virker jo først hvis der står &id= ellers bliver det jo ikk aktiveret..
Avatar billede xeox Nybegynder
09. maj 2005 - 15:58 #8
Ja og det er problemet, for den skal jo først blive aktiv når jeg trykker slet .. lige nu minuser den jo én lige så snart jeg åbner siden !
Avatar billede pallotto Nybegynder
09. maj 2005 - 16:04 #9
Hvad står der i adresse baren når du går ind på den side med det her php kode?

Hvis den bliver aktiveret hele tiden er det jo fordi at der står id i adressebaren.. så kan du jo lave den om til &sletid= fx så den først bliver aktiveret når du har trykker på knappen og dermed at der vil komme &sletid= i adressebaren
Avatar billede xeox Nybegynder
09. maj 2005 - 21:58 #10
Ja den skriver et id.. så er det derfor ja.. har du et eksempel på hvordan jeg laver det helt præcis med &sletid= ?
Avatar billede pallotto Nybegynder
10. maj 2005 - 17:02 #11
Hehe. Jeg kan da godt give dig et eksempel.

hvis i dit link du skriver index.php?id=6&sletid=3 eller hvordan din url nu ser ud. men du kan se $sletid= er sat til 3 så vil koden som jeg sendte dig  tidligere se sådan her ud:

if(isset($_GET['sletid']))
{
mysql_query("DELETE FROM forum_msg WHERE id='". $_GET["sletid"] ."'") or die(mysql_error());
mysql_query("UPDATE forum_msg SET replies = replies - 1 WHERE id = '$_GET[id]'") or die(mysql_error());

echo "<center><b><font face=Verdana size=1>Replyen blev slettet!</font></b><br><br></center>";
}
Avatar billede xeox Nybegynder
11. maj 2005 - 09:38 #12
smider du et svar. jeg bliver lige nødt til at oprette igen, da den skal være færdig idag :(
Avatar billede pallotto Nybegynder
11. maj 2005 - 15:11 #13
Du får et svar :)
Avatar billede xeox Nybegynder
06. juni 2005 - 08:48 #14
tak

-lukket-
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