Avatar billede danic Nybegynder
06. marts 2005 - 18:40 Der er 6 kommentarer og
1 løsning

Hjælp til array fra $_POST from

Jeg har en dymanisk form som hentes ud fra mysql data:

<INPUT name=sector1 value="1">
<INPUT name=sector2 value="2">
<INPUT name=sector3 value="3">
<INPUT name=sector4 value="4">
<INPUT name=location1 value="1">
<INPUT name=location2 value="2">
<INPUT name=location4 value="4">
<INPUT name=location5 value="5">
<INPUT name=location6 value="6">
                           
Nu vil jeg gerne hente de $_POST[location[]] og $_POST[sectorid[]] som bliver valgt i formen.


select * from jobs WHERE locationid='$_POST[locationid[]]' AND sectorid='$_POST[sectorid[]]'

Men hvordan få jeg det til at virke???
Avatar billede bromer Nybegynder
06. marts 2005 - 20:39 #1
Med forbehold for at jeg måske ikke helt forstår hvad du vil så tror jeg du kan bruge IN() funktionen:

http://dev.mysql.com/doc/mysql/en/comparison-operators.html

Din SQL sætning bliver så til:

select * from jobs WHERE locationid IN(implode(",",$_POST[locationid])) AND sectorid IN(implode(",",$_POST[sectorid]))

Noget i den stil.. absolut ikke afprøvet..
Avatar billede danic Nybegynder
07. marts 2005 - 08:43 #2
Ikke forstået, det jeg ønsker er at lave min søgning dynamisk,

Her er den statiske version:

SELECT * from jobs WHERE
sectorid == $_POST[sector1] OR
sectorid == $_POST[sector2] OR
sectorid == $_POST[sector3] OR
sectorid == $_POST[sector4] OR
locationid == $_POST[location1] OR
locationid == $_POST[location2] OR
locationid == $_POST[location3] OR
locationid == $_POST[location4] OR
locationid == $_POST[location5]
Avatar billede danic Nybegynder
07. marts 2005 - 10:14 #3
Har måske selv fundet en løsning:

http://www.plus2net.com/php_tutorial/array_checkbox.php
Avatar billede bromer Nybegynder
07. marts 2005 - 12:16 #4
Har du set på det jeg skrev til dig? Jeg ville mene at din statiske metode gør det samme som det jeg skrev. Prøv at se på hvordan IN() virker i MySQL.
Avatar billede danic Nybegynder
07. marts 2005 - 12:47 #5
Jeg endte op med:

    for ($i=0; $i<$nr_sector || $i<$nr_location;  $i++)
    {   
        $string= $_POST['sector'][$i];
        $string2= $_POST['location'][$i];
        $query2 = mysql_query("SELECT * FROM jobs WHERE sectorid LIKE '%$string%' AND locationid LIKE '%$string2%'") or die(mysql_error());

Men du få points for dit forslag, selv om jeg har valgt en anden løsning, kender ikke rigtig til hvordan IN og implode virker.
Avatar billede danic Nybegynder
07. marts 2005 - 12:47 #6
glemte lige:

$nr_sector     = count($_POST['sector']);
$nr_location = count($_POST['location']);
Avatar billede bromer Nybegynder
07. marts 2005 - 12:48 #7
tak :)
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

IT-JOB

KMD A/S

Test Consultant

Forsvarsministeriets Materiel- og Indkøbsstyrelse

IT-supporter til lokal IT støtte i Tirstrup

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger IT-metodespecialist og projektkoordinator i Ballerup

Capgemini Danmark A/S

Head of Digital Trust & Security