Avatar billede dmy Nybegynder
26. august 2008 - 14:06 Der er 25 kommentarer og
1 løsning

Søgning i en tabel mysql

Jeg har en tabel med en masse produkter
jeg skal have lavet en simpel søge maskine, som trækker alt ud og det søgte produkt, men er helt på bar bund...

Hat kigget lidt rundt her på eksperten, men forstår ingen af de nuværende tråde.

min tabel ser således ud, hvis det skulle hjælpe:

produkter` (
  `produkter_id` int(11) NOT NULL auto_increment,
  `navn` varchar(60) NOT NULL,
  `beskrivelse` text NOT NULL,
  `fk_producenter_id` int(11) NOT NULL,
  `fk_menu_id` int(11) NOT NULL,
  `billede` varchar(80) NOT NULL,
  `pris` decimal(18,2) NOT NULL,
  PRIMARY KEY  (`produkter_id`)

ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=54 ;
Avatar billede mcgoat Nybegynder
26. august 2008 - 14:14 #1
Er vel bare at lave et søgefelt med en knap, og så på resultatsiden:

<?
$SQL = mysql_query("SELECT * FROM produkter WHERE 'navn' like %'$_POST['SEARCHSTRING']'%);

while($row = mysql_fetch_array($SQL))
{
  echo $row['navn'];
}
?>

osv
Avatar billede dmy Nybegynder
26. august 2008 - 14:15 #2
hmm det forstår jeg intet af hehe
Avatar billede mcgoat Nybegynder
26. august 2008 - 14:16 #3
tror ikke jeg kan gøre det mere simpelt. hehe. Måske du skulle læse noget om basics PHP :-) bare det grundlæggende
Avatar billede dmy Nybegynder
26. august 2008 - 14:18 #4
hmm jamen det gør jeg faktisk også
Avatar billede mcgoat Nybegynder
26. august 2008 - 14:19 #5
index.html:

<html>
<head>
</head>
<body>
<form name="myForm" method="POST" action="search.php">
<input type="text" name="SEARCHSTRING"><br>
<input type="submit">
</form>
</body>
</html>


search.php:

<?
' her skal du lige forbinde til din DB

$SQL = mysql_query("SELECT * FROM produkter WHERE 'navn' like %'$_POST['SEARCHSTRING']'%);

while($row = mysql_fetch_array($SQL))
{
  echo $row['navn'];
}
?>



burde vel virke
Avatar billede mcgoat Nybegynder
26. august 2008 - 14:20 #6
er lidt rusten i html og php efterhånden dog *g*
Avatar billede dmy Nybegynder
26. august 2008 - 14:23 #7
det kan den ikke lide, der kommer sådan en parse error op. Hmm jeg må prøve mig frem, tak for det
Avatar billede mcgoat Nybegynder
26. august 2008 - 14:26 #8
$SQLSTRING = "SELECT * FROM produkter WHERE navn like %'" . $_POST['SEARCHSTRING'] . "'%";
$SQL = mysql_query($SQLSTRING);

måske bedre?
Avatar billede dmy Nybegynder
26. august 2008 - 14:31 #9
Nu kommer denne her

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\Dianas\hair\Hifi\search.php on line 57
Avatar billede jakobdo Ekspert
26. august 2008 - 14:36 #10
Tilføj: $SQL = mysql_query($SQLSTRING) or die(mysql_error());
Avatar billede dmy Nybegynder
26. august 2008 - 14:38 #11
nu skrev den denne her hehe.

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 '%''%' at line 1
Avatar billede dmy Nybegynder
26. august 2008 - 14:42 #12
den skriver rent faktisk hele tabellen ud uden der er søgt på noget
Avatar billede jakobdo Ekspert
26. august 2008 - 14:44 #13
Det skal selvfølgelig være:

$SQLSTRING = "SELECT * FROM produkter WHERE navn like '%" . $_POST['SEARCHSTRING'] . "%'";
Avatar billede mcgoat Nybegynder
26. august 2008 - 14:50 #14
som sagt.. er lidt rusten. hehe.
Avatar billede dmy Nybegynder
26. august 2008 - 14:53 #15
jeg har fundet ud af det ;-)
Avatar billede dmy Nybegynder
26. august 2008 - 14:55 #16
tak for det, dit hjalp mig lige til at forstå hvad koden gør
Avatar billede dmy Nybegynder
26. august 2008 - 14:55 #17
lukkes
Avatar billede dmy Nybegynder
26. august 2008 - 14:55 #18
lukkes
Avatar billede mcgoat Nybegynder
26. august 2008 - 14:56 #19
øhm ok... jamen velbekommen
Avatar billede mcgoat Nybegynder
26. august 2008 - 14:59 #20
Kan se på dine andre spørgsmål du er glad for at nuppe point selv, måske fordi du ikke kender systemet så godt? Hvis man får hjælp fra nogen er det normalt man skriver: Tak, læg et svar. Så lægger de der har hjulpet et svar, og så får de point
Avatar billede dmy Nybegynder
26. august 2008 - 17:27 #21
nåh der var en der sagde jeg skulle gøre sådan hvordan skal jeg så gøre??? Det er da en mærkelig side den her, hvor står det forklaret?
Avatar billede dmy Nybegynder
26. august 2008 - 17:30 #22
Der var en der skrev til mig at jeg ikke lukkede mine tråde rigtigt og at jeg skulle gøre det sådan for at afgive point, men det er så forkert kan jeg forstå???
Avatar billede jakobdo Ekspert
26. august 2008 - 17:42 #23
Ja, du skal bede mcgoat smide et svar.
Så lægger mcgoat et svar og du vælger hans navn og trykker accepter.
Så "får" mcgoat 60 point.
Hvis du nu synes jeg havde hjulpet, så kunne du bede os begge lægge svar.
Vælger du os begge, deler den point.
Trykke du avanceret, kan du vælge af give mcgoat 50 point og mig 10 f.eks.
Så for at opretholde god ro og orden, bør du oprette et nyt spørgsmål, som hedder point til mcgoat og smide 60 point der, samt en reference hertil.
Så er alle glade og ingen føler sig snydt.

Husk på, eksperten er gratis og brugerne herinde, får ikke andet end point og rygklap.
Avatar billede dmy Nybegynder
26. august 2008 - 21:26 #24
Tak for det, det husker jeg til næste gang.

jeg prøver skam ikke at snyde nogen, det står bare ingen steder skrevet, og folk som har fortalt mig hvordan man gør, har åbenbart heller ikke kunne reglerne.
Avatar billede jakobdo Ekspert
26. august 2008 - 21:33 #25
:o)
Avatar billede mcgoat Nybegynder
27. august 2008 - 11:21 #26
Gør ikke så meget, tænkte nok det var fordi du var "ny" herinde :-)
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