Avatar billede elskermad.dk Nybegynder
29. december 2002 - 17:32 Der er 7 kommentarer og
1 løsning

Søgning i mySQL-database med PHP

Hvordan søger man i en mySQL-database med PHP??
Jeg har nogle tabeller med 3 kolonner, hvor der er søgeord i! de er adskilt med ,  (komma mellemrum)
Kan man så gå ind og søge i alle 3 kolonner og finde alle de rækker som har søgeordet i sig, og kan man også gøre sådan at det er nok den ene af de 3 har søgeordet, selvom man søger i alle? og kan man nogen gange kun gå efter den ene kolonne?
Avatar billede Slettet bruger
29. december 2002 - 17:36 #1
Vis os dit databasedesign. Det virker langtfra optimalt, at du skal søge i en komma sep. liste. Det er jo ikke meningen i en relationel database.

Men paste dine tabel strukturer.
Avatar billede elskermad.dk Nybegynder
29. december 2002 - 17:37 #2
ja, men hvad er koden til at søge?
Avatar billede elskermad.dk Nybegynder
29. december 2002 - 17:40 #3
CREATE TABLE image (
  id int(12) NOT NULL auto_increment,
  imageid int(12) NOT NULL default '0',
  personer text NOT NULL,
  beskrivelse longtext NOT NULL,
  aarstal int(4) NOT NULL default '0',
  PRIMARY KEY  (id)
) TYPE=MyISAM;

rækker jeg sætter ind vil så inde holde:
"klaus, ole, bent"
"Julefrokost,Druk"
"2002"

Så vil jeg så kunne søge efter beskrivelse fx, og med søgeordet julefrokost, så skal den finde den række der...
hvis jeg så næste år har en næsten magen til, ville det jo være rart at kunne skelne mellem 2002 og 2003 i søgningen
Avatar billede Slettet bruger
29. december 2002 - 17:41 #4
Et lille eksempel...

select * from din_tabel where noget_i_tabellen like '%$søgefeltet%' or noget_andet_i_tabellen like '%$søgefeltet%'
Avatar billede Slettet bruger
29. december 2002 - 17:41 #5
Eksempler:
SELECT foo FROM bar WHERE col LIKE '%soegeord%'
SELECT foo FROM bar WHERE col LIKE '%soegeord%' OR col2 LIKE '%soegeord%'

Se endvidere http://www.mysql.com/doc/en/String_comparison_functions.html
Avatar billede elskermad.dk Nybegynder
29. december 2002 - 17:54 #6
ehmn, når i ved en del om databaser, kan I så sige mig, hvordan jeg undgår at den fjerner 0 (nuller) når man sætter ind i mySQL-tabellen!
fx hedder mit imageid 0000000023 men når den kommer ind hedder den bar 23, og det kan jeg ikke bruge til noget!
Avatar billede elskermad.dk Nybegynder
29. december 2002 - 17:57 #7
har fundet ud af det, man skal bar ikk lave en int kolonne
Avatar billede Slettet bruger
29. december 2002 - 17:58 #8
elskermad.dk : Ved fx. at anvende en VARCHAR type for feltet.
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
Computerworld tilbyder specialiserede kurser i database-management

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