Simpel søgefunktion med kriterier

Tags:    php mysql

<< < 12 > >>
Hej
Jeg er igang med at lave en simpel søgefunktion, hvor brugeren kan skrive et søgeord og så kan de vælge en kategori og en placering.
Til søgeordet anvender jeg et LIKE-wildcard, men det er kun en almindelig søgning, jeg ønsker jo at brugeren kan vælge nogle kriterier, som bliver inddraget i min forespørgsel til databasen, så jeg kun giver brugeren de resultater de vil se.
Er det så simpelt som at sige:
Fold kodeboks ind/udPHP kode 

min query er bare skrevet i løs hånd og kunne heller ikke forestille mig at det virker praksis, men i teorien burde det jo virke, fordi jeg har to krav der skal være opfyldt og så matcher den de fund med et wildcard og spytter resultatet ud vha. dette et stykke længere nede på siden:
Fold kodeboks ind/udPHP kode 

Men griber jeg sagen rigtigt an eller går jeg helt galt i skoven?



13 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Hej
Jeg er igang med at lave en simpel søgefunktion, hvor brugeren kan skrive et søgeord og så kan de vælge en kategori og en placering.
Til søgeordet anvender jeg et LIKE-wildcard, men det er kun en almindelig søgning, jeg ønsker jo at brugeren kan vælge nogle kriterier, som bliver inddraget i min forespørgsel til databasen, så jeg kun giver brugeren de resultater de vil se.
Er det så simpelt som at sige:
Fold kodeboks ind/udPHP kode 

min query er bare skrevet i løs hånd og kunne heller ikke forestille mig at det virker praksis, men i teorien burde det jo virke, fordi jeg har to krav der skal være opfyldt og så matcher den de fund med et wildcard og spytter resultatet ud vha. dette et stykke længere nede på siden:
Fold kodeboks ind/udPHP kode 

Men griber jeg sagen rigtigt an eller går jeg helt galt i skoven?


Jeg ville måske lave 4 query's, og så lave et if-statement der tjekker om du f.eks. har checked en checkboks...
Hvis så at brugeren har tjekket denne boks, skal den hente informationen ud fra databasen, ud fra hvilken boks der blev checked.
Jeg ved at det kan gøres nemmere end at bruge 4 query's, men jeg synes dette virker mest overskueligt.



Kig i det indlæg som starter spørgsmålet. Se der i andet sæt php-kode. Der henter jeg informationerne ud. De bliver hentet et stykke nede på siden, således at jeg får dem vist på en pæn måde.


Du skal skifte mysql_fetch_array() ud med mysql_num_rows(), og fjerne at du deklarerer en variabel:

Fold kodeboks ind/udPHP kode 




Har du prøvet at køre din SQL i en manager som phpmyadmin?

Lige umiddelbart dette her:

Fold kodeboks ind/udPHP kode 


Burde vel være:
Fold kodeboks ind/udPHP kode 


Kan se det optræder mere end 1 sted.



Har du prøvet at køre din SQL i en manager som phpmyadmin?

Lige umiddelbart dette her:

Fold kodeboks ind/udPHP kode 


Burde vel være:
Fold kodeboks ind/udPHP kode 


Kan se det optræder mere end 1 sted.


Nej, har ikke prøvet at køre igennem phpmyadmin.
Det query du skriver, indeholder kun $region. Men jeg kan også komme ud for at brugeren søger på på region og type. Skal jeg så bare tilføje en ekstra "AND WHERE"?


Jeg tog udgangspunkt i din egen query, men ja hvis du vil have typen med som parameter tilføjer ud bare AND type = '$type'



Den bedste vej til læring er ved at prøve og fejle. Forsøg dig frem, opstår der problemer, kan du altid spørge hvad der går galt.



Har nu forsøgt med min egen query og den giver ingen resultater.
Prøvede så at lave et sæt af if/else-statements, der tjekker om der er markeret en bestemt radio-button for hvert parameter og så forsøgte jeg en søgning med de forskellige muligheder, hvor jeg vidste at det burde give mindst 1 resultat. Men det gav intet resultat.
Koden ser nu således ud:
Fold kodeboks ind/udPHP kode 




Kig i det indlæg som starter spørgsmålet. Se der i andet sæt php-kode. Der henter jeg informationerne ud. De bliver hentet et stykke nede på siden, således at jeg får dem vist på en pæn måde.



Så er det prøvet, men ingen ændring. Forstår bare ikke at det skulle gøre nogen forskel, fordi jeg på siden også har lavet en søgefunktion uden kriterier, og den er lavet på samme måde som det jeg selv postede, så det burde jo ikke gøre en forskel om jeg tjekker ud fra num_rows() eller fetch_array().



Så er det prøvet, men ingen ændring. Forstår bare ikke at det skulle gøre nogen forskel, fordi jeg på siden også har lavet en søgefunktion uden kriterier, og den er lavet på samme måde som det jeg selv postede, så det burde jo ikke gøre en forskel om jeg tjekker ud fra num_rows() eller fetch_array().


Det er måske et problem med din query:

Fold kodeboks ind/udPHP kode 


EDIT:
Jeg ville gøre sådan her i stedet:

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 24.08.2012 07:59 af Bruger #15853
Det var desværre ikke til den helt store hjælp. det er jo min mysql_query der er problemet, så det er den der skal omstruktureres for at virke korrekt.



<< < 12 > >>
t