/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Problemer med søgning
Fra : Aagaard


Dato : 20-11-05 08:15

Jeg har et adressekartotek, hvor jeg ikke kan søge på almindelig tekst...

$getkey = postnummer som indtastes
$result = mysql_query("SELECT * FROM adrbog WHERE Postnr=$getkey");
Her går søgningen fint, og resultater vises.

$getkey = bynavn som indtastes
$result = mysql_query("SELECT * FROM adrbog WHERE By=$getkey");
Her er der ingen resultat, selv om det indtastede bynavn findes i basen.

Hvad kan der være galt?

--
Aagaard



 
 
Peter Lykkegaard (20-11-2005)
Kommentar
Fra : Peter Lykkegaard


Dato : 20-11-05 09:01

"Aagaard" wrote

> $getkey = postnummer som indtastes
> $result = mysql_query("SELECT * FROM adrbog WHERE Postnr=$getkey");
> Her går søgningen fint, og resultater vises.
>
> $getkey = bynavn som indtastes
> $result = mysql_query("SELECT * FROM adrbog WHERE By=$getkey");
> Her er der ingen resultat, selv om det indtastede bynavn findes i basen.
>
> Hvad kan der være galt?
>
By er et reserveret ord (order by)
Du burde få en fejl?

Prøv med denne
$result = mysql_query("SELECT * FROM adrbog WHERE [By]=$getkey");

- Peter



Michael Zedeler (20-11-2005)
Kommentar
Fra : Michael Zedeler


Dato : 20-11-05 09:07

Peter Lykkegaard wrote:
> "Aagaard" wrote
>
>>$getkey = postnummer som indtastes
>>$result = mysql_query("SELECT * FROM adrbog WHERE Postnr=$getkey");
>>Her går søgningen fint, og resultater vises.
>>
>>$getkey = bynavn som indtastes
>>$result = mysql_query("SELECT * FROM adrbog WHERE By=$getkey");
>>Her er der ingen resultat, selv om det indtastede bynavn findes i basen.
>>
>>Hvad kan der være galt?
>
> By er et reserveret ord (order by)
> Du burde få en fejl?
>
> Prøv med denne
> $result = mysql_query("SELECT * FROM adrbog WHERE [By]=$getkey");

Er det korrekt syntaks i mysql? Jeg troede det var noget, der hører
Microsofts produkter til. Normalt ville det hedde

$result = mysql_query("SELECT * FROM adrbog WHERE \"By\"=$getkey");

Mvh. Michael.
--
Visit my home page at http://michael.zedeler.dk/
Get my vcard at http://michael.zedeler.dk/vcard.vcf

Aagaard (20-11-2005)
Kommentar
Fra : Aagaard


Dato : 20-11-05 09:27

"Michael Zedeler" <michael@zedeler.dk> skrev:
i en meddelelse news:F8Wff.658$Cl2.4758@news000.worldonline.dk...
>>
>> By er et reserveret ord (order by)
>> Du burde få en fejl?
>>
Der kommer ingen fejl.
>
> $result = mysql_query("SELECT * FROM adrbog WHERE \"By\"=$getkey");

Det virker ikke med \", hverken ved søgning i By eller i Postnr.
Uden \" virker Postnr, men hverken By, Type eller Adresse.

--
Aagaard



Michael Zedeler (20-11-2005)
Kommentar
Fra : Michael Zedeler


Dato : 20-11-05 13:09

Aagaard wrote:
> "Michael Zedeler" <michael@zedeler.dk> skrev:
> i en meddelelse news:F8Wff.658$Cl2.4758@news000.worldonline.dk...
>
>>>By er et reserveret ord (order by)
>>>Du burde få en fejl?
>>>
>
> Der kommer ingen fejl.
>
>> $result = mysql_query("SELECT * FROM adrbog WHERE \"By\"=$getkey");
>
>
> Det virker ikke med \", hverken ved søgning i By eller i Postnr.
> Uden \" virker Postnr, men hverken By, Type eller Adresse.

Har du husket at der skal anførselstegn omkring, hvis feltet ikke er
nummerisk?

Prøv lige at skrive dine statements ud, før de bliver smidt i hovedet på
databsen. Post dem her i gruppen - både de, der virker og de der ikke
virker. et bedste er at gøre sådan her:

$query = "SELECT * FROM adrbog WHERE \"By\"=$getkey";
echo $query;
$result = mysql_query();

Mvh. Michael.
--
Visit my home page at http://michael.zedeler.dk/
Get my vcard at http://michael.zedeler.dk/vcard.vcf

Aagaard (20-11-2005)
Kommentar
Fra : Aagaard


Dato : 20-11-05 15:50

"Michael Zedeler" <michael@zedeler.dk> skrev:
; i en meddelelse news:8HZff.670$Cl2.4600@news000.worldonline.dk...
> Har du husket at der skal anførselstegn omkring, hvis feltet ikke er
> nummerisk?
>
Det var lige netop det der manglede, så nu virker det.

--
Aagaard



Peter Lykkegaard (20-11-2005)
Kommentar
Fra : Peter Lykkegaard


Dato : 20-11-05 10:42

"Michael Zedeler" wrote

> Er det korrekt syntaks i mysql? Jeg troede det var noget, der hører
> Microsofts produkter til. Normalt ville det hedde
>
Det fremgik ikke helt klart at det var MySQL
Jeg kan selvfølgelig se det nu

- Peter



Aagaard (20-11-2005)
Kommentar
Fra : Aagaard


Dato : 20-11-05 09:21

"Peter Lykkegaard" <plykkegaard@gmail.com> skrev:
>>
> By er et reserveret ord (order by)
> Du burde få en fejl?
>
> Prøv med denne
> $result = mysql_query("SELECT * FROM adrbog WHERE [By]=$getkey");

Dit forslag virker ikke, og der kommer ingen fejlmeddelelse når jeg bruger
By.

$result = mysql_query("SELECT * FROM adrbog WHERE [By]=$getkey");
virker kun hvis jeg fjerner [] og søger efter numeriske værdier.

Søgning efter numeriske værdier virker på alle tabeller med f.eks. telefon,
postnummer, husnr.
Søgning efter alt andet slår fejl.

Kan det være en opsætning i MySql eller php? Jeg kører på egen server med
admin rettigheder.

--
Aagaard



Peter Lykkegaard (20-11-2005)
Kommentar
Fra : Peter Lykkegaard


Dato : 20-11-05 10:45

"Aagaard" wrote

> Dit forslag virker ikke, og der kommer ingen fejlmeddelelse når jeg bruger
> By.
>
Spøjst

Har du et modul til MySQL hvor du kan køre din select statements?

> Kan det være en opsætning i MySql eller php?

Eller syntaks
Prøv at høre i dk.edb.internet.webdesign.serverside.php

- Peter



Aagaard (20-11-2005)
Kommentar
Fra : Aagaard


Dato : 20-11-05 10:57

"Peter Lykkegaard" <plykkegaard@gmail.com> skrev:

> Har du et modul til MySQL hvor du kan køre din select statements?

Jeg har phpmyadmin, og her virker det helt efter bogen.
Når jeg lader phpmyadmin fremstille php-kode, så virker det ikke...
underligt!

> Eller syntaks
> Prøv at høre i dk.edb.internet.webdesign.serverside.php
>
Jeg prøver. Tak for hjælpen.

--
Aagaard



Nis Jorgensen (20-11-2005)
Kommentar
Fra : Nis Jorgensen


Dato : 20-11-05 15:50

On Sun, 20 Nov 2005 08:15:06 +0100, "Aagaard" <nomail@nomail.inv>
wrote:

>
>$getkey = bynavn som indtastes
>$result = mysql_query("SELECT * FROM adrbog WHERE By=$getkey");
>Her er der ingen resultat, selv om det indtastede bynavn findes i basen.

Som andre har naevnt er BY et reserveret ord. I de fleste databaser
vil ovenstaaende give en fejl, og du vil vaere noedt til at bruge
anfoerselstegn omkring "By". Jeg er forbloeffet over at sidstnaevnte
ikke virker.

Derudover gaar jeg ud fra at $getkey er en tekststreng. Saadanne skal
i enkelte anfoerselstegn:

$result = mysql_query("SELECT * FROM adrbog WHERE By='$getkey'");

Jeg gaar ud fra at du escaper anfoerselstegn i $getkey andetsteds (fx
vha phps magic_quotes indstilling)

Du boer ogsaa gemme dine postnumre som tekst, men det er en anden
historie.

--
Nis Jørgensen
Udlandsbornholmer

Aagaard (20-11-2005)
Kommentar
Fra : Aagaard


Dato : 20-11-05 16:04

"Nis Jorgensen" <nis@superlativ.dk> skrev:
>
> Som andre har naevnt er BY et reserveret ord. I de fleste databaser
> vil ovenstaaende give en fejl, og du vil vaere noedt til at bruge
> anfoerselstegn omkring "By". Jeg er forbloeffet over at sidstnaevnte
> ikke virker.
>
Jeg retter dette i db og i php.

> $result = mysql_query("SELECT * FROM adrbog WHERE By='$getkey'");
>
> Jeg gaar ud fra at du escaper anfoerselstegn i $getkey andetsteds (fx
> vha phps magic_quotes indstilling)
>
Som du sikkert har set, så fik jeg løsningen, som er:
$result = mysql_query("SELECT * FROM adrbog WHERE Navn='".$getkey."'");

> Du boer ogsaa gemme dine postnumre som tekst, men det er en anden
> historie.
>
Det har jeg gjort i en varchar(10) ... med tanke udenlandske postnumre.

Tak for hjælp og indspark.

--
Aagaard



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408921
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste