|
| 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
| |
|
|