Avatar billede raan Nybegynder
01. marts 2007 - 17:44 Der er 19 kommentarer og
1 løsning

fejl i php.

jeg får denne fejl:
Fejl: 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 'by='roenne' ORDER BY firma DESC' at line 1

og den linje over det der er ser sådan her ud:
$hent = mysql_query("SELECT * FROM vaelger by='$_GET[by]' ORDER BY firma DESC") or die("Fejl: " . mysql_error());

en der kan hjælpe? :)
Avatar billede amews_aj Nybegynder
01. marts 2007 - 17:46 #1
Problemet er navnet by

Den fortolker det som sql i stedet for feltnavn.

Du skal sætte det ind sådanne: `by`='$_GET.......

Læg mærke til ` og ikke '
Avatar billede amews_aj Nybegynder
01. marts 2007 - 17:46 #2
Og det var et svar
Avatar billede amews_aj Nybegynder
01. marts 2007 - 17:47 #3
Altså den fortolker det ligesom dette: order BY
i stedet for feltnavn
En kommando
Avatar billede mccookie Seniormester
01. marts 2007 - 17:48 #4
by er et såkaldt reserveret navn i SQL brug evt. et prefix/postfix til at ordne det:

eks. DB_by

///McCookie
Avatar billede simplus Nybegynder
01. marts 2007 - 17:49 #5
Det er sandt hvad amews_aj siger at BY er et reseveret navn og må derfor ikke bruges som de andre. Det skal støttes af nogle ` rundt om sig. Dog er det også vigtigt lige at nævne at den query d har opbygget dér, er utrolig usikker og kan nemt misbruges. Du bør aldrig benytte en GET direkte i en query uden at den er gennemtjekket. Brug mysql_real_escape_string til at fixe det problem! :-)
Avatar billede raan Nybegynder
01. marts 2007 - 17:55 #6
jeg må skuffe, og sige at det ikke hjalp ?
Avatar billede raan Nybegynder
01. marts 2007 - 17:56 #7
simplus: kan du lave en 'sikker' til mig så? :)
Avatar billede amews_aj Nybegynder
01. marts 2007 - 17:57 #8
$hent = mysql_query("SELECT * FROM vaelger `by`='".mysql_real_escape_string($_GET[by])."' ORDER BY firma DESC") or die("Fejl: " . mysql_error());
Avatar billede raan Nybegynder
01. marts 2007 - 18:00 #9
Fejl: 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 '='roenne' ORDER BY firma DESC' at line 1

stadig den samme fejl ? :s
Avatar billede amews_aj Nybegynder
01. marts 2007 - 18:02 #10
Ved ikke hvad der er galt i den, men uanset hvad, er det ikke samme fejl:

Før
near 'by='roenne'

Nu
near '='roenne'
Avatar billede raan Nybegynder
01. marts 2007 - 18:04 #11
nej, det kan jeg godt se. åh!
Avatar billede simplus Nybegynder
01. marts 2007 - 18:06 #12
Nej det er klart du mangler en WHERE

<?php
$city = mysql_real_escape_string($_GET[by]);

$hent = mysql_query("SELECT * FROM vaelger WHERE `by` = '$city' ORDER BY firma DESC") or die("Fejl: " . mysql_error());
?>
Avatar billede amews_aj Nybegynder
01. marts 2007 - 18:06 #13
selvfølgelig, den overså jeg lige - heh
Avatar billede simplus Nybegynder
01. marts 2007 - 18:07 #14
man kan nemlig ikke bare skrive

`by` = 'værdi'

man skal istedet gøre brug af WHERE

WHERE `by` = 'værdi'
Avatar billede raan Nybegynder
01. marts 2007 - 18:10 #15
sådan! - så skete der noget.

hvis jeg lige må spørge om en sidste ting, simplus? - nu hedder min side visalle.php?by=roenne, hvis jeg nu vil kalde den visalle.php så får jeg den fejl igen, burde den ikke vise alle?

simplus et svar ;)
Avatar billede simplus Nybegynder
01. marts 2007 - 18:12 #16
nej, men du kan vidst nok snyde PHP og skrive visalle.php?by=' også vil den vise alle, men det er slet ikke nødvendigt at gøre sådan. Du kan da bare lave en værdi der hedder visalle.php?by=alle og skrive:

if ($_GET[by] == "alle") {

$hent = mysql_query("SELECT * FROM vaelger ORDER BY firma DESC") or die("Fejl: " . mysql_error());

}
Avatar billede simplus Nybegynder
01. marts 2007 - 18:13 #17
nå ja, og bare behold pointene :-)
Avatar billede raan Nybegynder
01. marts 2007 - 18:14 #18
okay, det vil jeg prøve.

mange tak! :)
Avatar billede raan Nybegynder
01. marts 2007 - 18:14 #19
jeg lukker!

plus til simplus!
Avatar billede simplus Nybegynder
01. marts 2007 - 18:15 #20
Det var så lidt.
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