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

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Hjælp til opbygning af søgefunktion
Fra : Morten Brøgger


Dato : 12-09-05 20:30

Hej NG

Jeg kunne godt bruge lidt hjælp igen.
Jeg er ved at lave en søgefuktion på min hjemmeside. Den er stadig ikke
færdig, så for nemhedsskyld har jeg fastsat et søgeord som $soegeord
="stemplet" . (men jeg vil da gerne også meget gerne have hjælp til at lave
en ordentlig formular, hvis i kan hjælpe med det)

Jeg får fejlmeddelelsen: "Unknown column 'stemplet' in 'where clause' "
Det er altså linien:

$get_items = "select Miniature_billede, id, item_title, item_price from
store_items where item_desc = $soegeord order by item_title";
$get_items_res = mysql_query($get_items) or die(mysql_error());

Som driller. Jeg kan regne ud at det ikke skal være "lig med" men istedet
"som indeholder" som giver fejlen.
Men hvordan gør man så det?

I kan se scriptet som jeg har prøvet at stykke sammen her nedenfor:

<?php
// her oprettes der forbindelse til databasen. Det virker fint
$display_block .= "<p><strong><a
href=\"$_SERVER[PHP_SELF]?cat_id=$cat_id\">$cat_title</a></strong><br>$cat_desc</p>";
$soegeord = "stemplet";
//get items
$get_items = "select Miniature_billede, id, item_title, item_price from
store_items where item_desc = $soegeord order by item_title";
$get_items_res = mysql_query($get_items) or die(mysql_error());
if (mysql_num_rows($get_items_res) < 1) {
$display_block = "<P><em>Desværre ingen lots der matcher din søgning -
endnu. Tryk på tilbageknappen i din browser</em></p>";
} else {
$display_block .= "<ul>";
while ($items = mysql_fetch_array($get_items_res)) {
$Miniature_billede = $items[Miniature_billede];
$item_id = $items[id];
$item_title = stripslashes($items[item_title]);
$item_price = $items[item_price];
$display_block .= "<br><a href=\"showitem.php?item_id=$item_id\"><img
src=\"$Miniature_billede\" border=0></a><a
href=\"showitem.php?item_id=$item_id\">$item_title</a></strong> (Kr.
$item_price)";
}
$display_block .= "</ul>";
}
$display_block .= "</ul>";
?>
<HTML>
<HEAD>
<TITLE>Søgefunktion</TITLE>
</HEAD>

Kom endelig med forslag til forbedringer, hvis det kan laves bedre. Det kan
det sikkert.

På forhånd tak


--
Med venlig hilsen

Morten Brøgger



 
 
Geert Lund (12-09-2005)
Kommentar
Fra : Geert Lund


Dato : 12-09-05 22:30

Morten Brøgger wrote:

> Jeg får fejlmeddelelsen: "Unknown column 'stemplet' in 'where clause' "
> Det er altså linien:
>
> $get_items = "select Miniature_billede, id, item_title, item_price from
> store_items where item_desc = $soegeord order by item_title";
> $get_items_res = mysql_query($get_items) or die(mysql_error());

Som MySQL pænt fortæller dig - 'stemplet' er ikke et kendt kolonnenavn
og det kommer jo af du forsøger at sammenligne på et felt og ikke en
værdi i din SQL sætning - så i stedet gøres:

$get_items = "
SELECT Miniature_billede, id, item_title, item_price
FROM store_items
WHERE item_desc = '".$soegeord."'
ORDER BY item_title
";

Jeg har splittet din SQL sætning op i flere linier for at gøre den mere
overskuelig.

--
Med venlig hilsen
Geert Lund

Morten Brøgger (13-09-2005)
Kommentar
Fra : Morten Brøgger


Dato : 13-09-05 04:14

"Geert Lund" <glund-news@post.tele.dk> skrev i en meddelelse
news:4325f333$0$159$edfadb0f@dtext02.news.tele.dk...

> Som MySQL pænt fortæller dig - 'stemplet' er ikke et kendt kolonnenavn og
> det kommer jo af du forsøger at sammenligne på et felt og ikke en værdi i
> din SQL sætning - så i stedet gøres:
>
> $get_items = "
> SELECT Miniature_billede, id, item_title, item_price
> FROM store_items
> WHERE item_desc = '".$soegeord."'
> ORDER BY item_title
> ";
>
> Jeg har splittet din SQL sætning op i flere linier for at gøre den mere
> overskuelig.
>
> --
> Med venlig hilsen
> Geert Lund

Hej igen

Tak for dit input. Det ser ud til at virke - næsten....
For jeg får nemlig ikke nogle resultater ud af min søgning, men kun min egen
meddelelse " Desværre ingen lots der matcher din søgning - endnu. Tryk på
tilbageknappen i din browser" , så der må stadig være noget galt med mit
script. (der er flere poster i min database der præcist matcher "stemplet"
som jeg har brugt som søgeord!)
Hele scriptet kan ses i mit første indlæg, dog er der tilføjet en "print
$display_block" linie.
Min søgelinie ser nu sådan ud:
$get_items = "SELECT Miniature_billede, id, item_title, item_price FROM
store_items WHERE item_desc = '.$soegeord' ORDER BY item_title";

Håber nogen kan hjælpe!

På forhånd tak!


--
Med venlig hilsen

Morten Brøgger
http://www.dkfrim.dk



Benny Nissen (13-09-2005)
Kommentar
Fra : Benny Nissen


Dato : 13-09-05 09:42

Morten Brøgger wrote:

> Min søgelinie ser nu sådan ud:
> $get_items = "SELECT Miniature_billede, id, item_title, item_price FROM
> store_items WHERE item_desc = '.$soegeord' ORDER BY item_title";

Du har fået et punktum sat foran $soegeord. Fjern det.

Ellers kan du kigge lidt på:
http://www.htmlite.com/mysql011.php

som fortæller noget om "... item_desc LIKE '%$soegeord%'";

--
Benny Nissen

Morten Brøgger (13-09-2005)
Kommentar
Fra : Morten Brøgger


Dato : 13-09-05 14:28


"Benny Nissen" <news@bennynissen.dk> skrev i en meddelelse
news:432690bf$0$84024$edfadb0f@dtext01.news.tele.dk...
> Morten Brøgger wrote:
>
>> Min søgelinie ser nu sådan ud:
>> $get_items = "SELECT Miniature_billede, id, item_title, item_price FROM
>> store_items WHERE item_desc = '.$soegeord' ORDER BY item_title";
>
> Du har fået et punktum sat foran $soegeord. Fjern det.
>
> Ellers kan du kigge lidt på:
> http://www.htmlite.com/mysql011.php
>
> som fortæller noget om "... item_desc LIKE '%$soegeord%'";
>
> --
> Benny Nissen

Hej

Tak for det.
Punktummet løste nu ikke problemet, men efter at have læst dit link,
udskiftede jeg "=" med "like" og satte et procenttegn foran og efter min
søgestreng. Det løste problemet.
Mange tak for hjælpen.

--
Med venlig hilsen

Morten Brøgger
http://www.dkfrim.dk



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

Månedens bedste
Årets bedste
Sidste års bedste