Avatar billede qp Nybegynder
06. juni 2003 - 20:35 Der er 18 kommentarer og
1 løsning

Syntaks problemer

Nogen der kan forklare mig hvad der går galt her ?

<?
include ("forbind.php");
$id = $_REQUEST['id'];

$query = mysql_query("select * from sextest where id=$id") or die(mysql_error());
while($raekke = mysql_fetch_array($query)){
    $email = $raekke['email'];}
?>

browseren siger:

You have an error in your SQL syntax near '' at line 1
Avatar billede otis Nybegynder
06. juni 2003 - 20:39 #1
prøv where id='$id'")
Avatar billede melange Nybegynder
06. juni 2003 - 20:41 #2
helt præcis hvad indeholder $id ?
Hvis $id bare er et tal burde der ikke være nogle problemmer.

Du er også sikker på at der ikke ligger nogle forkerte SQL-querys i foebind.php ?
Avatar billede qp Nybegynder
06. juni 2003 - 20:45 #3
id er et tal ..
Avatar billede qp Nybegynder
06. juni 2003 - 20:46 #4
der er ingen queries i forbind.php
Avatar billede melange Nybegynder
06. juni 2003 - 20:49 #5
underligt, for hvis $id bare er et tal burde din kode være helt legal.
Er der ikke ander querys i filen ?

Hvis ikke, er du er sikker på at du ikke har lavet nogle af de klassiske dumme fejl som at:

-sidde og redigere i en forkert fil.
-glemt at opdatere (F5)
Avatar billede qp Nybegynder
06. juni 2003 - 20:50 #6
Nope det var det ikke, selvom id var et tal skulle man putte ' rundt om .. herre mærkligt !!
Avatar billede ohmish Nybegynder
06. juni 2003 - 20:51 #7
virker det med

"select * from sextest where id='$id' " ??
Avatar billede qp Nybegynder
06. juni 2003 - 20:52 #8
ja, selvom id er et tal :-/
Avatar billede qp Nybegynder
06. juni 2003 - 20:53 #9
include ("forbind.php");
$id = $_REQUEST['id'];

$query = mysql_query("select * from sextest where id=$'id'") or die(mysql_error());
while($raekke = mysql_fetch_array($query)){
    $email = $raekke['email'];}
Avatar billede melange Nybegynder
06. juni 2003 - 21:00 #10
ohmish << ifølge hans sidste kommentar gør det åbenbart :)

men for lige at rede lidt af min ære (hvis der da er noget tilbage af den ;o) ):

Hvis $id var et tal burde det virke uden '.
Jeg ved ikke om du har forkortet din kode på nogen måde, om $_REQUEST virker underligt (bruger den aldrig selv), eller om jeg bare er fucked op lige nu men på en eller anden måde må $id blive konverteret til en streng!

se fx dette eksempel:

// $id sættes lig 5
$id = 5;
// $id er nu et tal

//leger lidt med $id
$id = $id * 9;
$id = round(sqrt($id));
$id = $id--;

$id = $id
// $id er stadigvæk et tal

$id = '$id';
// $id er nu IKKE et tal, men en streng, og du skal bruge ' i din query
Avatar billede qp Nybegynder
06. juni 2003 - 21:02 #11
$_REQUEST er jo bare når det er ligemeget om det er en GET eler en POST sendt variable ..
Avatar billede ohmish Nybegynder
06. juni 2003 - 21:02 #12
btw.. istedet for request, så prøv at bruge:

if ($_GET['id']) { $id = $_GET['id']; } else { $id = $_POST['id']; }

øverst på siden.
Avatar billede qp Nybegynder
06. juni 2003 - 21:05 #13
Det er jo ligemeget da $_REQUEST gør det ligemeget, men det er en $_GET !
Avatar billede hobz Nybegynder
06. juni 2003 - 21:08 #14
MySQL er ligeglad om tal er i ' (singlequote) eller ikke.
Avatar billede ohmish Nybegynder
06. juni 2003 - 21:08 #15
din query uden ' om $id kræver at databasefeltet er af typen INT.
Avatar billede melange Nybegynder
06. juni 2003 - 21:18 #16
ohmish << uhh ja, det må selvfølgelig være der fejlen ligger. Datatypen i databasen er en streng, og derfor skal $id også gøres til en streng :)
Avatar billede ohmish Nybegynder
07. juni 2003 - 06:22 #17
hovsa.. jeg lavede lige en helligdag der. :)
Avatar billede ohmish Nybegynder
07. juni 2003 - 06:23 #18
Numbers do not have to be
quoted. Dates may or may not require quoting
based on their format
Avatar billede ohmish Nybegynder
07. juni 2003 - 06:32 #19
prøv at teste med

echo "id: ".$id;

lige før din mysql_query. hvad skrives der?
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