24. december 2008 - 14:58Der er
8 kommentarer og 1 løsning
Slette nyheder
Hej med jer.
Jeg fandt en gammel tråd herinde, hvor jeg fandt nogle koder som jeg kunne liste og slette nyheder, som jeg har skrevet i mysql databasen med. Men jeg kan ikke helt få det til at virke. Måske i kan se om jeg har lavet en fejl. Koderne er her:
Sletnyhed.php
<? $q = mysql_query("SELECT id, overskrift FROM nyheder ORDER BY id ASC") or die(mysql_error());
if(isset($_GET['id']) && is_numeric($_GET['id'])) { //connect mysql_query("DELETE FROM nyheder WHERE id = ".$_GET['id']) or die(mysql_error()); header("Location: ".$_SERVER['HTTP_REFERER']); } else { echo "Fejl i nyhedsID."; }
?>
Den siger bare "Fejl i nyhedsID", når jeg klikker slet inde på min side. Hvor er fejlen? (:
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Slettet bruger
24. december 2008 - 15:03#1
Prøv med:
<? $q = mysql_query("SELECT id, overskrift FROM nyheder ORDER BY id ASC") or die(mysql_error());
if(isset($_GET['id']) && is_numeric($_GET['id'])) { //connect mysql_query("DELETE FROM nyheder WHERE id = ".$_GET['id'].") or die(mysql_error()); header("Location: ".$_SERVER['HTTP_REFERER']); } else { echo "Fejl i nyhedsID."; }
Den siger stadig fejl. Men det tyder på at der er fejl i din kode, det er som om du ikke får lukket ordentlig af her: mysql_query("DELETE FROM nyheder WHERE id = ".$_GET['id'].") or die(mysql_error());
Har prøvet at sætte et " mere ind så der står:
mysql_query("DELETE FROM nyheder WHERE id = ".$_GET['id']."") or die(mysql_error());
Men den siger stadig fejl.
Synes godt om
Slettet bruger
24. december 2008 - 16:46#3
Ja, det kan jeg se. Det var min fejl.
Det ser ud til, at du enten kalder scriptet uden et id, eller et id, der ikke er et tal.
Hej nh92 .. jeg har dette kodeeksempel .. så skal jeg bare helt præcist vide hvilke felter, for så gør jeg så du også kan rette? ----------------------------------------------------
<? $db_tabel = $db_prefix."reklamer"; $filnavn = "index.php"; // hvis du bruger en anden fil, så ændr her.. hvis du parser skal du ændre lidt i filen..
IF(!empty($_GET['id'])){ $forespEdit = mysql_query("SELECT * FROM ".$db_tabel." WHERE id = ".$_GET['id']." ORDER BY id DESC LIMIT 1"); while ($row = mysql_fetch_array($forespEdit)){ $hpurl = $row[www]; $titel = $row[titel]; $tekst = $row[tekst]; $id = $row[id]; $pris = $row[pris]; $billede = $row[billede];
mysql_query("UPDATE forumindlaeg SET www = '$newwww', titel = '$newtitel', tekst = '$newtekst', pris = '$newpris', billede = '$newbillede' WHERE id = '".$_GET['id']."' LIMIT 1");
echo 'Annoncen med titlen <b>'.$newtitel.'</b> blev redigeret'; } }
$foresp = mysql_query("SELECT titel, www, id FROM ".$db_tabel." \"$id\" ORDER BY id DESC"); while ($row = mysql_fetch_array($foresp)){ $hpurl = $row[www]; // Det er altså en skidt ting at bruge "www" i sine navne :( .. $titel = $row[titel]; $id = $row[id];
Okay, jeg har lige prøvet at copy/paste ind i en HTML-editor.. og din fejl er EKSTREMT, EKSTREMT lille ..
det er fordi du har kommet til at lave et apostrof over "i" på "id" - så den egentligt hedder "íd" .. og det er jo ikke det samme som "id" hvorfor $_GET['id'] ikke finder noget ..
Så du skal blot indsætte dette i din første fil:
<? $q = mysql_query("SELECT id, overskrift FROM nyheder ORDER BY id ASC") or die(mysql_error());
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.