Avatar billede lalledk Nybegynder
06. april 2006 - 22:12 Der er 22 kommentarer

hvorfor sletter den alle rækkerne?

Jeg er rimelig ny til php, så vil bare høre, hvorfor alle rækkerne slettes i min tabel, når jeg trykker på "slet"? :)

<html>
<head>

<title>Side titel</title>

<link rel="stylesheet" type="text/css" href="site/style.css">
</head>
<body>

<?php
//Først hentes banneret
include ("site/toppen.html");

//Derefter hentes menuen
include ("site/navi.html");

//Her hentes formularerne
include("site/form.html");

//Databaseforbindelsen inkluderes
include("site/forbindelse.php");

//Tabellen i databasen vælges
$sql="SELECT * FROM guestbook ORDER BY id desc";
$result=mysql_query($sql);

while($rows=mysql_fetch_array($result)){

//Derefter udskrives de forskellige rækker i tabellen i de nedenstående koder
?>
<br>

<table  border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000" bgcolor="#FF8A00">
<tr>
<td><img src="images/topbesked.gif"></td>
</tr>
</table><div id="gaest">
<i>Posted by <? echo htmlspecialchars ($rows['name']); ?> - email: <? echo htmlspecialchars ($rows['email']); ?></i> <p><? echo htmlspecialchars ($rows['comment']); ?></p>
<br>
<?php

$id = $rows['id'];


echo '<a href="?page=vis.php&del=$sletquery">Slet</a>';

$sletquery = mysql_query("delete from guestbook where id = $id");
?>
</div>

<?


//Databasen lukkes

}
mysql_close();
?>

<?php

include("site/bunden.html");
?>

</body>

</html>
Avatar billede jakobdo Ekspert
06. april 2006 - 22:15 #1
Du løber jo alle rækker igennem her:
while($rows=mysql_fetch_array($result)){
Så trækker du ID'et ud på rækken:
$id = $rows['id'];
og så sletter du hver enkelt række igen:
$sletquery = mysql_query("delete from guestbook where id = $id");

Hvis SLET skal give mening, så skal den ikke være i din WHILE og evt i en funktion for sig.
Hvor du så laver:
$sletquery = mysql_query("delete from guestbook where id = $_GET['id'] LIMIT 1");
Avatar billede lalledk Nybegynder
06. april 2006 - 22:22 #2
hmm.. hvis jeg sætter den til LIMIT 1, så resulterer det bare i, at der kommer et link med "slet" ud for et af indlæggene.?
Avatar billede mcardle Nybegynder
06. april 2006 - 22:45 #3
Prøv at set $sletquery = mysql_query("delete from guestbook where id = $id"); til $sletquery = mysql_query("delete * from guestbook where id = $id");
Avatar billede coderdk Praktikant
07. april 2006 - 02:19 #4
Koden opfører sig som den skal. Den sletter mens de vises. Ikke når du trykker slet. Prøv:

<?php

    //Databaseforbindelsen inkluderes
    include("site/forbindelse.php");
   
    if ( !empty( $_GET['del'] ) && is_numeric( $_GET['del'] ) )
    {
        $sletquery = mysql_query("delete from guestbook where id = $_GET[del]");
        header( "location: ?page=vis.php" );
        exit;
    }

?>
<html>
<head>
<title>Side titel</title>
<link rel="stylesheet" type="text/css" href="site/style.css">
</head>
<body>
<?php

    //Først hentes banneret
    include ("site/toppen.html");
   
    //Derefter hentes menuen
    include ("site/navi.html");
   
    //Her hentes formularerne
    include("site/form.html");
   
    //Tabellen i databasen vælges
    $sql="SELECT * FROM guestbook ORDER BY id desc";
    $result=mysql_query($sql);
   
    while( $rows = mysql_fetch_array( $result ) )
    {

//Derefter udskrives de forskellige rækker i tabellen i de nedenstående koder
?>
<br>
<table  border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000" bgcolor="#FF8A00">
<tr>
<td><img src="images/topbesked.gif"></td>
</tr>
</table><div id="gaest">
<i>Posted by <? echo htmlspecialchars ($rows['name']); ?> - email: <? echo htmlspecialchars ($rows['email']); ?></i> <p><? echo htmlspecialchars ($rows['comment']); ?></p>
<br>
<?php

        echo "<a href=\"?page=vis.php&del=$rows[id]\">Slet</a></div>";

    }

    //Databasen lukkes
    mysql_close();

    include("site/bunden.html");
?>
</body>
</html>
Avatar billede lalledk Nybegynder
10. april 2006 - 10:48 #5
Nu kan den slette indlæggene, med overstående kode, men jeg får bare en header fejl:

Cannot modify header information - headers already sent by (output started at /usr/home/web/web110387/site/forbindelse.php:9) in /usr/home/web/web110387/maerkeligt.php on line 9
Avatar billede jakobdo Ekspert
10. april 2006 - 11:23 #6
Du har noget output i din fil: forbindelse.php
Prøv evt at smid koden fra filen herind.
HUSK at ret brugernavn/kodeord/database/host til noget andet, f.eks. XXXXXX
Ellers vil andre kunne logge ind på din database.
Avatar billede lalledk Nybegynder
10. april 2006 - 11:27 #7
Er det eneste, jeg har derinde.. der er bare server, brugernavn, pass og så databasen :)

<?php

mysql_connect ("xxxx","xxxx","xxxx");
mysql_query ("xxxx");


?>
Avatar billede jakobdo Ekspert
10. april 2006 - 15:35 #8
I fejlen siger den linie 9 i din forbindelse.php
Så du må have mere kode end du har angivet herover.
Avatar billede coderdk Praktikant
10. april 2006 - 20:07 #9
Husk ikke engang et mellemrum før <?php eller efter ?> må der være ;)
Avatar billede lalledk Nybegynder
17. april 2006 - 23:00 #10
Hmm.. altså ikke andet i: forbindelse.php .. ved virkelig ikke hvad problemet er
Avatar billede lalledk Nybegynder
17. april 2006 - 23:12 #11
Jeg bruger en side, der hedder sletteside.php, og når den så har slettet et indlæg
kommer den hen til: http://www.sidetitel.com/sletteside.php?page=vis.php&del=93  hvis ID=93, selvfølgelig.. Skal siden, vis.php defineres?
Avatar billede jakobdo Ekspert
18. april 2006 - 07:43 #12
defineres? Hvad mener du?
Avatar billede lalledk Nybegynder
18. april 2006 - 08:31 #13
Ja, om man skal lave en side, der hedder vis.php, eller om det bare er et navn man kan lave i php..
Avatar billede jakobdo Ekspert
18. april 2006 - 09:05 #14
Det kunne da være en god ide ja! :o)
Avatar billede lalledk Nybegynder
19. april 2006 - 14:11 #15
Men hvad skal den side indeholde? Er det ligegyldigt?:)
Avatar billede jakobdo Ekspert
19. april 2006 - 15:21 #16
Noget kode som viser det du ønsker vist! :o)
Har du ikke kodet php før?
Avatar billede lalledk Nybegynder
19. april 2006 - 23:31 #17
Jo, men kan kun det mest basale, med at hente og indsætte i databaser osv.. Så er ikke helt klar over, hvordan det virker, når man begynder at lave koder med php?=osv :)
Avatar billede jakobdo Ekspert
20. april 2006 - 08:03 #18
Ved at du lave: noget.php?side=vis.php
Betyder "bare" du f.eks. har en hovedside kaldet noget.php den henter så f.eks. filen vis.php og så viser den noget info.
Det som står i ?side=vis.php
Kan man så trække ud via: $_GET['side']; //Vil indeholde: vis.php
Avatar billede lalledk Nybegynder
22. april 2006 - 18:05 #19
Men kan man ikke bare gøre sådan, at hvis man  sletter et indlæg, så bliver man på samme side, og siden bliver altså bare opdateret? :)
Avatar billede jakobdo Ekspert
22. april 2006 - 22:07 #20
Jo, det kan man godt. :o)
Avatar billede lalledk Nybegynder
23. april 2006 - 17:41 #21
kan du fortælle mig den bedste måde at gøre det på så? :D
Avatar billede jakobdo Ekspert
23. april 2006 - 18:39 #22
Nej, jeg vil ikke vise dig det.
Jeg vil hjælpe dig til at forsøge at lave det selv. :o)
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