Mere simpel SQL-query

Tags:    php mysql

Hej
Jeg er igang med at lave en boligside hvor brugeren ved tryk på en bestemt kategori skal have mulighed for at få vist alle boliger i den kategori, men jeg har flere typer af boliger i kategorierne og derfor skal jeg have hentet dem ud ved at lave en query, men ved blot at lave den således er jo dumt:
Fold kodeboks ind/udSQL kode 

osv.
Men der må da findes en bedre måde uden at jeg skal ændre i måden tabellen er bygget op på?



8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Fold kodeboks ind/udKode 


her ville jeg nok joine et array og bruge det reseveret sql ord IN
Fold kodeboks ind/udKode 


http://stackoverflow.com/questions/907806/php-mysql-using-an-array-in-where-clause




Du har både kategori og boligtype. Hvis man vælger en kategori er det vel bare at lave en
Fold kodeboks ind/udSQL kode 
? Så får du jo alle typer i den valgte kategori.



Tak for jeres svar. Kategorierne er ikke oprettet i databasen, da det ville være for bøvlet for brugeren først at skulle vælge kategori og så boligtype, så derfor vælger de typen når de opretter deres bolig systemet. Når en ande bruger så leder efter f.eks. en lejlighed, så trykker de på menupunktet "Find lejlighed" og så vises der en side hvor den har hentet alle typer ud der kan defineres som en lejlighed. På den måde opstår der en kategori.
@Ronny: Sådan som jeg forstår den kode du har skrevet, så laver jeg en variabel hvor jeg skriver alle de typer der skal være i kategorien og således kan jeg hente dem ud.
I databasen er der jo som sagt kun valgt en type til hver bolig.



Jeg ville seriøst overveje en designændring til databasen så. Det er dårligt design, hvis du i koden skal tage stilling til om en type er en del af en bestemt kategori, da du så skal ændre programkode hver gang der kommer en nu type.

Har jeg forstået det forkert, så vis lige din database og felterne der i.



den code jeg skrev var et tro kopie af den du postede, jeg lavede den bare kortere og nemmere at bruge.
jeg kunne ligesom Brian også godt tænke mig at se dit db design evt med test data.

>da det ville være for bøvlet for brugeren først at skulle vælge kategori og så boligtype,
der er vi klart uenige, det jeg kunne tænke mig at gøre clienside at vælge boligtype(r) og bolig område(r), og via AJAX hente de data der opfylder disse betingelser, så kunne brugeren så klikke på de link af diverse boligere, og få en detaljeret beskrivelse evt i et nyt vindue
så det du overfører fra clienten er et array af bolig områder og boligtyper

ligeledes når du oploader vælger du hvilke din boligtype og dit område, samt bolig beskrivelse, intet AJAX lige ud af ladevejen

jeg ville overveje denne tabel structur:
Fold kodeboks ind/udKode 




Det kunne godt være at man skulle lave designet i tabellen om.
Men her er et screenshot fra phpmyadmin, der viser hvordan den er strukturet lige nu, og der er eksempeldata i den.
Screenshot fra db



fandt dig lige på eksperten.dk
er det denne code du arbejder ud fra http://www.eksperten.dk/spm/965602 ??
kan du ikke ligge dit design ud, så vi kan se hvad du forestiller dig, på E snakker du om noget søg er det stadig aktuelt, og hvad skal der søges på ??

en meget hurtig brain strom http://udvikleren.olsensweb.dk/khhp/ver_0.zip

jeg vil dog anbefale at anvende AJAX istedet for at hente hele siden hver gang.
jeg har endvidre valgt at anvende MYSQI OOP Style, jeg ville til nød kunne gå med til at anvende Procedural style, men ikke det gamle mysql API, da det er på vej til at blive udfaset http://dk.php.net/manual/en/mysqlinfo.api.choosing.php

nb: hvorfor bruger du http://gratisupload.dk og ikke din egen hjemmeside ??



Indlæg senest redigeret d. 18.08.2012 15:47 af Bruger #16075
Søgefunktionen som du linker til på Eksperten er jeg stadig igang med, men I spørgsmålet her er det ikke en søgefunktion, men blot at hente en liste over de boliger der ligger i en bestemt kategori.
Jeg har aldrig stiftet bekendtskab med AJAX før, men ved at det er noget med at kombinere serverside og clientside scripts, således at jeg kan bede om informationer og så hentes de i baggrunden og vises når de skal bruges. Jeg ved godt at det er temmelig dumt at anvende det "gamle" MySQL-API, men eftersom det er et meget stort projekt jeg har gang i og jeg først lige er begyndt at lære MySQLi, ville det være for omfangsrigt at bygge dette projekt om til at bruge et andet API. Så det er det "gamle" jeg arbejder i. Jeg har også lidt skole og arbejde ved siden af, så derfor tager det lidt tid at lære MySQLi og samtidig eksperimentere med det, for at lære at bruge det korrekt.
Det er ikke fordi jeg ikke har lyst til at bruge/lære et nyt API, men har bare ikke den fornødne tid til at komme hurtigt igennem det og derefter lave alle mine projekt-filer om til et mere sikkert API.
Så også selvom det er en dum idé, vil jeg gerne blive i det gamle API i dette projekt.
Med at ligge mit design ud, tænker du så på hvordan jeg vil designe udseendet af de hentede data eller hvordan?
Lige nu vil jeg gerne have det til at se således ud:
Har taget værdien af det der står for den første i tabellen, som hentes.
Fold kodeboks ind/udHTML kode 

Jeg har som sådan styr på hvordan PHP-koden skal se ud, men det er lidt omkring SQL-koden der er problemet.
Fold kodeboks ind/udPHP kode 

Laver jeg min sql-query således henter den alle forekomster i databasen hvor der enten forekommer enten den ene eller anden værdi fra variablen $boligtyper. Hvis det er således, så har vi fundet løsningen.



t