webForumDet fria alternativet

söka i databas

8 svar · 352 visningar · startad av Rickard

RickardMedlem sedan maj 2001287 inlägg
#1

Tjenix... satt å sökte nu efter liknande trådar, men hittar inget som matchade det jag letar efter...

Jag sitter å fillar med ett administrations system till en gästbok.. inget super-hightech då altså...

Sitte rjust nu å fnular på ett bra sätt att (via formulär då) söka efter på lite olika sätt efter inlägg i gästboken...

via namn, mail och datum.

Hur gör jag detta lättast? någon som vet och som kan hjälpa mig med detta? =)
Jag är rätt grön på PHP.. så jag kan inte mycket om det.. ännu.. =)

PeddaMedlem sedan juni 20006 032 inlägg
#2
"SELECT * FROM tabellnamn WHERE namn LIKE '%".$_POST['search']."%' OR mail LIKE '%".$_POST['search']."%' OR datum LIKE '%".$_POST['search']."%'"

Se även den här tråden som inte är så gammal http://www.webforum.nu/showthread.php?s=&threadid=82737&forumid=23

RickardMedlem sedan maj 2001287 inlägg
#3

tack för det snabba svaret...

Men jag får ett mycket skumt fel, som jag fan inte kan fatta vad det beror på, eller hur jag blir av med det...

Kan någon kolla på
http://server.midnight-sun.org:82/~noratx/ricky/guestbook/search_gb.phps

rad 72 är det fel på tydligen...

Testa scriptet på:
http://server.midnight-sun.org:82/~noratx/ricky/guestbook/search_gb.php

MatteMedlem sedan aug. 20002 975 inlägg
#4

mysql_close() ligger utanför funktionen, medans anslutningen ligger inne i funktionen.

Tag bor klammern/måsvingen på rad 55, och lägg den på raden efter mysql_close.

RickardMedlem sedan maj 2001287 inlägg
#5

Tack..

Ytterligare ett fel då...

vad jag än använder för sökvilkor, så slänger den upp ALLA gästboksinlägg...

MatteMedlem sedan aug. 20002 975 inlägg
#6

Först känner jag mig väldigt tveksam till din SQL-fråga:

$sql="SELECT * FROM trehjulinggb WHERE namn LIKE '%".$_POST['search']."%' 
      OR mail LIKE '%".$_POST['search']."%' 
      OR datum LIKE '%".$_POST['search']."%'";

$_POST['search'] innehåller värdet "sök", och du borde inte fått några träffar alls.
Den enda situation jag kan tänka mig när du skulle få alla dessa träffar är om du har en äldre PHP-version än 4.1.0, då inte variabeln $_POST fanns.

Med utgångspunkt från det skulle jag be dig testa följande SQL-fråga istället:

$sql="SELECT * FROM trehjulinggb WHERE namn LIKE '%$namn%' 
      AND mail LIKE '%$mail%' 
      AND datum LIKE '%$datum%'";

Men då har du ett aber till. Du har datum i ditt sökformulär, men i ditt skript sätter du datum till dagens datum. Tag bort den raden, och lägg till datum i globaldeklarationen.

RickardMedlem sedan maj 2001287 inlägg
#7

heh..

jag kör en lite äldre version ja.. =)

4.0.4.pl1 =)

Har inte orkat bry mig i att uppdatera.. =)

RickardMedlem sedan maj 2001287 inlägg
#8

Hur menar du förresten det där med datum?

MatteMedlem sedan aug. 20002 975 inlägg
#9

Rekommenderar varmt en uppdatering. Ingen anledning till att köra en stenåldersversion :)

Du söker på datum i ditt formulär:

Datum:<br><input type="text" name="datum">

Men du sätter datum till aktuell tid i ditt skript:

global $namn, $inlagg, $mail;
$datum = date("Y-m-d H:i:s");

Jag kan inte se någon funktion av detta datum i koden. Men däremot blockerar den din sökning på fältet datum.

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)