Et eller andet galt når jeg vil slette en post

Tags:    php

Jeg har en gæstebog, hvor jeg gerne vil have mulighed for at slette en post:


<?php

require("./gbog-ting/mysql-funktioner.php");

if(is_array($HTTP_GET_VARS)) {
$id = $HTTP_GET_VARS['id'];
$start_nr = $HTTP_GET_VARS['start_nr'];
} elseif (is_array($_GET)) {
$id = $_GET['id'];
$start_nr = $_GET['start_nr'];
}

$sql = "delete from tabel1 where id = $id";

aabn_forbindelse_og_vaelgdb();
sql_spoerg($sql);
luk_forbindelse();

header("Location: gbog.php?start_nr=$start_nr");

?>



Jeg får følgende fejl

Kunne ikke udføre: delete from tabel1 where id =
Fejlen er: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

nogen der kan hjælpe?





9 svar postet i denne tråd vises herunder
5 indlæg har modtaget i alt 10 karma
Sorter efter stemmer Sorter efter dato
Jeg har en gæstebog, hvor jeg gerne vil have mulighed for at slette en post:


<?php

require("./gbog-ting/mysql-funktioner.php");

if(is_array($HTTP_GET_VARS)) {
$id = $HTTP_GET_VARS['id'];
$start_nr = $HTTP_GET_VARS['start_nr'];
} elseif (is_array($_GET)) {
$id = $_GET['id'];
$start_nr = $_GET['start_nr'];
}

$sql = "delete from tabel1 where id = $id";

aabn_forbindelse_og_vaelgdb();
sql_spoerg($sql);
luk_forbindelse();

header("Location: gbog.php?start_nr=$start_nr");

?>



Jeg får følgende fejl

Kunne ikke udføre: delete from tabel1 where id =
Fejlen er: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

nogen der kan hjælpe?



Er du sikker på at $id rent faktisk har en værdi? Prøv at lave en var_dump($id) og se hvad der skrives.
Hvis $id er tom, vil det være forklaringen.



så længe dine links er www.side.dk/side.php?id=noget
så kan jeg ikke se hvordan $id skulle kunne være tom, medmindre da at du er skør nok til at øverskive enten

$HTTP_GET_VARS
else
$_GET

Ligeledes under antagelse af at du ikke er helt skør vil de 2 altid være ens iøvrigt og du bør kun bruge $_GET. under samme antagelse er det også meningsløst at tjekke om $_GET er et array for det er det altid.

Følgende fejl kan du have lavet som jeg ikke kan se,
1. du kommer til den kode der igennem en form der har method post og du prøver at tilgå feltet via $_GET

2. du kommer til siden via en header redirekt hvor du ikke har skrevet ?id i redirekten.

3. du kommer til siden via links hvor der hver skulle have id til det indlæg de skal slette men det har de ikke.



Prøv:

Fold kodeboks ind/udKode 




Rydder lige lidt op...:
Fold kodeboks ind/udKode 


HUSK: altid at teste. Især når det angår redigering af data i database. Forkerte værdier kan ende op med at slette hele databasen.



gnu det der (int) gør det at den kun kan modtage tal ?





id er faktisk ikke tom, hver post har en værdi her, der tælles op



id er faktisk ikke tom, hver post har en værdi her, der tælles op


Nej, jeg har fanget at den ikke burde være tom, men har du sikret dig at den ikke er det?



Jeg er ikke helt sikker i min sag, men er det ikke noget med at man kan bruge GET-variabler i Header-location? Mener at den fejler hvis man prøver at bruge et "?"



Jeg er ikke helt sikker i min sag, men er det ikke noget med at man kan bruge GET-variabler i Header-location? Mener at den fejler hvis man prøver at bruge et "?"


Det er en skrøne... :)



t