Avatar billede thedeathart Nybegynder
22. april 2004 - 21:30 Der er 9 kommentarer og
1 løsning

Deleteknap + fetch (SQL)

hey.. jeg har et nyhedsystem som laver en fetch:

<?php

// Hent først data ud
$resultat = mysql_query("select * FROM nyhedsys order by date desc");

// Kør så igennem for hver række
while ($raekke = mysql_fetch_array($resultat)) {
  extract($raekke);
?>

<table align="center" border="1" >
    <tr>
        <td width="408"><center><b><? echo "$headline" ?></font></td>
    </tr>
    <tr>
        <td width="408"><br><? echo "$news" ?><br><br></font></td>
    </tr>
    <tr>
        <td width="408">Skrevet af: <a href="mailto:<? echo "$email" ?>"><? echo "$name" ?></a>&nbsp;&nbsp;d.
        <? echo "$date" ?>
        </font></td>
    </tr>
<br>
<?
}
?>


Jeg vil så gerne have et slet-link eller slet-knap, ved hver nyhed, så man kan slette den..
Jeg har prøvet, men så sletter den alle nyhederne..

Nogle gode idér eller forslag ?
Avatar billede dennismp Nybegynder
22. april 2004 - 21:34 #1
Sådan noget som dette måske?

<?php

if( isset($_GET['slet']) ) {
  $id = addslashes($_GET['slet']);
  mysql_query("DELETE FROM nyhedsys WHERE id = '$id'");
}
// Hent først data ud
$resultat = mysql_query("select * FROM nyhedsys order by date desc");

// Kør så igennem for hver række
while ($raekke = mysql_fetch_array($resultat)) {
  extract($raekke);
?>

<table align="center" border="1" >
    <tr>
        <td width="408"><center><b><? echo "$headline" ?></font></td>
    </tr>
    <tr>
        <td width="408"><br><? echo "$news" ?><br><br></font></td>
    </tr>
    <tr>
        <td width="408">Skrevet af: <a href="mailto:<? echo "$email" ?>"><? echo "$name" ?></a>&nbsp;&nbsp;d.
        <? echo "$date" ?>
        <br />
          <a href="<?php print $_SERVER['PHP_SELF'];?>?slet=$id">Slet</a>
        </font></td>
    </tr>
<br>
<?
}
?>
Avatar billede thedeathart Nybegynder
22. april 2004 - 21:37 #2
jaa, det ser godt ud..

Men er $_SERVER = servernavnet ... altså f.eks. localhost ?
Avatar billede dennismp Nybegynder
22. april 2004 - 21:40 #3
$_SERVER er en række variabler som bliver sat af php.. Fx er $_SERVER['PHP_SELF'] navnet på det script der udføres. Den hed i "gamle dage" $HTTP_SERVER_VARS..  Du kan lave en lille fil med følgende indhold: <?php phpinfo(); ?> .. Der kan du se hvad $_SERVER kan indeholde (søg efter _SERVER, den står lidt nede på siden).
Avatar billede thedeathart Nybegynder
22. april 2004 - 21:45 #4
okay tak.. men det virker ikke lige..

der kommer ingen fejlmeddelser.. men det der burde blive slettet, står der stadig, også efter at jeg har opdateret siden..
Avatar billede dennismp Nybegynder
22. april 2004 - 21:50 #5
erstat:
  mysql_query("DELETE FROM nyhedsys WHERE id = '$id'");
med
  mysql_query("DELETE FROM nyhedsys WHERE id = '$id'") or die(mysql_error());

og se om du får fejl.  Har du et felt der hedder ID i tabellen?
Avatar billede thedeathart Nybegynder
22. april 2004 - 21:54 #6
hmm.. stadig ingen fejl, og ja jeg har et felt der hedder ID
Avatar billede dennismp Nybegynder
22. april 2004 - 21:59 #7
Når du trykker på slet, så ændres urlen sådan at der står .. minside.php?slet=42 ?

Har du brugt det kode jeg forslog, eller bruger du noget andet? (hvis du gør, gider du at poste det, så vi arbejder på samme grundlag)
Avatar billede thedeathart Nybegynder
22. april 2004 - 22:03 #8
bruge skam din kode...har fundet fejlen

<a href="<? print $_SERVER['PHP_SELF']; ?>?slet=<? echo "$id" ?> ">Slet</a>

slet=<? echo "$id" ?>


men ellers superp kode.. læg et svar og der er point :)
Avatar billede dennismp Nybegynder
22. april 2004 - 22:06 #9
Heh, det er da godt du er en smule vågen :-)

Tak.
Avatar billede thedeathart Nybegynder
22. april 2004 - 22:08 #10
mange tak :D
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