Danny92 Skrevet 1. august 2007 Del Skrevet 1. august 2007 (endret) Hei har et script som jeg skal bruke til nyhetsysteme mit, det er et script som sletter ting fra databasen men det funker ikke. Her er det: <?php include("config.php"); if (isset($id)) { $delete_query = mysql_query("delete from nyhet where id='$id'"); header("Location: $PHP_SELF"); } else { //id,title,navn,dato,nyhet $query = mysql_query("select id,title from nyhet order by title"); while ($row = mysql_fetch_array($query)) { echo "<b>".$row["title"]."</b> - <a href=$PHP_SELF?id=".$row["id"].">Slett</a><br>\n"; } } ?> Når jeg trykker på slett så slettes det ikke noe :S Endret 1. august 2007 av dannyboy_1992_ Lenke til kommentar
Crowly Skrevet 1. august 2007 Del Skrevet 1. august 2007 (endret) PHP <?php// metode 1 mysql_query("delete from nyhet where id={$id}")||die("Slette feil: ".mysql_error()); // metode 2 mysql_query("delete from nyhet where id=".$id)||die("Slette feil: ".mysql_error()); ?> Bruk kun '$variabel' når feltet i databasen er varchar/tekst, hvis ikke så holder det med $variabel. Når du bruker variabler i en tekststreng så burde du sette variablen i { }, eller konkatinere den inn som i metode 2 over. Når du kun skal utføre en sql settning mot databasen, og ikke trenger resultatet tilbake, så trenger du ikke $variable=mysql_query(), kun mysql_query(). Er også greit å forutsette at sql koden ikke alltid fungerer, og legge til litt ekstra kode som vil fange opp og vise evt feilmeldinger. Endret 1. august 2007 av crowly Lenke til kommentar
Danny92 Skrevet 1. august 2007 Forfatter Del Skrevet 1. august 2007 Sorry, men det kommer ingen feilmeldinger. Men det virker som at $delete_query ikke er includert noen sted i scriptet. Lenke til kommentar
jeg_lyver_mye Skrevet 1. august 2007 Del Skrevet 1. august 2007 (endret) Prøv denne: PHP <?php include("config.php"); if (isset($_GET['id']) && is_numeric($_GET['id'])) { $id = intval($_GET['id']); $q = mysql_query("delete from nyhet where id = $id"); if (mysql_affected_rows()) { header("Location: " . $_SERVER['PHP_SELF']); } else { echo 'Nyheten ble ikke slettet.'; } } else { $query = mysql_query("select id,title from nyhet order by title"); while ($row = mysql_fetch_array($query)) { echo "<b>".$row["title"]."</b> - <a href=$PHP_SELF?id=".$row["id"].">Slett</a><br>"; } } ?> Endret 1. august 2007 av nevoscript Lenke til kommentar
Danny92 Skrevet 1. august 2007 Forfatter Del Skrevet 1. august 2007 Takker! Det funker og slette men får denne feilmeldingen, må ikke fikses men er takknemlig vis det blir fiksa Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\design 1\news\admin.php:22) in C:\xampp\htdocs\design 1\news\admin.php on line 62 Lenke til kommentar
Crowly Skrevet 1. august 2007 Del Skrevet 1. august 2007 (endret) Sorry, men det kommer ingen feilmeldinger.Men det virker som at $delete_query ikke er includert noen sted i scriptet. 9188324[/snapback] Du skal ikke ha med $delete_query. Erstatt $delete_query = mysql_query("delete from nyhet where id='$id'"); med en av metodene som jeg postet. Endret 1. august 2007 av crowly Lenke til kommentar
jeg_lyver_mye Skrevet 1. august 2007 Del Skrevet 1. august 2007 HELT øverst... i config.php fila de, legg til ob_start(); Altså: PHP <?php ob_start(); // resten av koden... ?> Lenke til kommentar
Crowly Skrevet 1. august 2007 Del Skrevet 1. august 2007 (endret) Takker! Det funker og slette men får denne feilmeldingen, må ikke fikses men er takknemlig vis det blir fiksa Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\design 1\news\admin.php:22) in C:\xampp\htdocs\design 1\news\admin.php on line 62 9188838[/snapback] Du kan ikke skrive ut noe før header, hvis du har en echo o.l så får den du denne feilmeldingen. Edit: Ved bruk av ob_start (output buffering) som i posten over, så kommer du deg rundt denne begrensningen. Endret 1. august 2007 av crowly Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå