Avatar billede nicocarlos Nybegynder
24. november 2006 - 15:46 Der er 13 kommentarer og
1 løsning

Hente flere ting fra et felt i mysql med php

Hejsa,

Jeg kan ikke finde ud af, hvordan man evt kan smide mere end 1 ting ind i et mysql felt f.eks. varchar:

F.eks. ind i et felt:
Skoda, Mazda

Og så skal man kunne trække det ud med php, sådan så det bliver smidt ind i et array f.eks.

håber der er en der kan hjælpe.
Avatar billede nicocarlos Nybegynder
24. november 2006 - 15:57 #1
Det skulle gerne være sådan, så jeg kunne lave en søgning på det felt og f.eks. sige om Mazda findes i det, ved ikke helt hvordan jeg skal forklare det
Avatar billede showsource Seniormester
24. november 2006 - 15:58 #2
Hvis nu du har flere bilmodeller, med hver deres checkbox, kan du navngi' checkbox'en med [] tilsidst. Så får du et array og lege med.

<input type="checkbox" name="bilmodel[]" value="Skoda"> Skoda<br />
<input type="checkbox" name="bilmodel[]" value="Mazda"> Skoda

Ved submit kan du så bruge,

$biler = implode(",", $_POST["bilmodel"]);

så har du en streng at gemme i DB.
Ved udtræk kan du explode() for at få dem enkeltvis igen
Avatar billede sw_red_6 Nybegynder
24. november 2006 - 15:59 #3
måske sådan her:
SELECT FROM tabelnavn WHERE feltnavn LIKE %Mazda%
Avatar billede showsource Seniormester
24. november 2006 - 15:59 #4
Den sidste skulle jo være Mazda! :O)
Og ja, du kan jo så sagtens søge på bilen i feltet.
Avatar billede coderdk Praktikant
24. november 2006 - 16:02 #5
Den korrekte løsning er at lave en mange-til-mange relation

en_ting <-> ting_til_udstyr <-> udstyr

Bindeleddet er to felter i ting_til_udstyr der hver refererer til en række i en_ting og udstyr tabellerne... :)
Avatar billede nicocarlos Nybegynder
24. november 2006 - 16:17 #6
hmm, ja men det er måske ikke helt det, måske jeg kan forklare det med et eksempel:

Lad os sige der er en bruger der har 4 biler, de skal så ligge i 1 varchar felt, som indeholder: Mazda, Skoda, BMW, FIAT.

I en anden tabel har jeg så information om de 4 biler hver især og der er f.eks. en pris, så skal den hente denne pris ud fra Mazda, Skoda, BMW og FIAT og f.eks. lægge dem sammen.

Jeg skrev det med array, fordi jeg tænkte man blev nødt til at smide dem derind før man kan arbejde med dem.

Men måske kan man lave en eller anden form for lykke:

1. Vælg biler feltet - find ud af hvilke biler der er (evt. hvor mange hvis man skal køre en lykke), de er sepereret med komma.
2. Hent prisen på Mazda, smid den i en variabel
3. Hent prisen på x, smid den oveni.

Ved sku ikke helt hvordan jeg skal forklare det :(

Håber det hjalp lidt.

Det vil sige at, hvis jeg bruger:
SELECT FROM tabelnavn WHERE feltnavn LIKE %Mazda%

så går den ind og finder Mazda, lige meget hvor den står i det varchar felt?
Avatar billede coderdk Praktikant
24. november 2006 - 16:19 #7
Det kan du klare med to tabeller:

bruger <- bil

hvor hver record i bil kan høre til én bruger - hvis man skal normalisere osv, så skal man nok bruge en tabel mere til mærker osv ;)
Avatar billede nicocarlos Nybegynder
24. november 2006 - 16:23 #8
men hvis man kan bruge:
SELECT FROM tabelnavn WHERE feltnavn LIKE %Mazda%

så er mit problem løst :D
Avatar billede nicocarlos Nybegynder
24. november 2006 - 16:27 #9
men det kan man vist heller ikke fordi, mit feltnavn hedder ikke Mazda
Avatar billede coderdk Praktikant
24. november 2006 - 16:28 #10
Feltnavnet er "feltnavn" du kan godt gøre som du skriver men sådan:

SELECT FROM tabelnavn WHERE feltnavn LIKE '%Mazda%'

Det betyder bare at den leder i "feltnavn"-feltet efter indhold der matcher Mazda
Avatar billede nicocarlos Nybegynder
24. november 2006 - 16:31 #11
okay prøver lige vender tilbage :D
Avatar billede nicocarlos Nybegynder
24. november 2006 - 17:14 #12
Hvis Mazda ikke står forrest virker det ikke for mig
Avatar billede nicocarlos Nybegynder
24. november 2006 - 17:19 #13
jo det virker sku
smid et svar.

SELECT FROM tabelnavn WHERE feltnavn LIKE '%Mazda%' = guld :D
Avatar billede nicocarlos Nybegynder
11. juni 2007 - 22:18 #14
luk
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