Toon posts:

[php]Mysql query met IN() een OR statement toevoegen

Pagina: 1
Acties:
  • 33 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb twee selektievakken, multiple. In de eerste selecteer ik één of meerdere provincies alwaar ik bij de tweede selectievak één of meerdere vakgebieden selecteer.

De onderstaande code geeft de array $provincies en $vakgebieden weer welke ik wil gebruiken in mijn query. Het is de bedoeling dat de query vacatures weergeeft welke behoren bij de gekozen provincies en vakgebieden.

Mijn probleem is, dat als ik bijvoorbeeld alle provincies en alle vakgebieden selecteer ik geen resultaten krijg terwijl er wel vacatures als resultaat aanwezig behoren te zijn. Alle gekozen waarden moeten nu overeenkomen anders krijg ik geen resultaten geretourneerd.

Ik denk dat ik in mijn query OR moet gebruiken bij de variabelen $provincies_seperated en $vakgebieden_seperated om dit te vorkomen.

Ik heb echter geen idee hoe ik dat aanpak. Ik heb geprobeerd de OR optie bij implode toe te voegen maar zie geen andere mogelijkheid om dit netjes in mijn query te verwerken.

Alvast bedankt voor het meedenken.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
$aantal_vars = count($provincies); //tellen 
        
   for($i = 0; $i < $aantal_vars; $i++){ 
   $provincies_seperated = implode(",", $provincies);
   } 
    
   $aantal_vars = count($vakgebieden); //tellen 
        
   for($i = 0; $i < $aantal_vars; $i++){ 
   $vakgebieden_seperated = implode(",", $vakgebieden); 
} 

$Mysql2 = mysql_query("SELECT * FROM tblvacatures t, tbl_vacatures_provincies p, tbl_vacatures_vakgebieden v WHERE p.provincieID = '".$provincies_seperated."' AND p.vacatureID = t.ID AND v.vakgebiedID = '".$vakgebieden_seperated."' AND v.vacatureID = t.ID AND t.landID = '1'");

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 21-02 23:50
echo de string van je query eens, en post deze.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$aantal_vars = count($provincies); //tellen 
        
   for($i = 0; $i < $aantal_vars; $i++){ 
   $provincies_seperated = implode(",", $provincies);
   } 
    
   $aantal_vars = count($vakgebieden); //tellen 
        
   for($i = 0; $i < $aantal_vars; $i++){ 
   $vakgebieden_seperated = implode(",", $vakgebieden); 
} 

$Mysql2 = mysql_query("SELECT * FROM tblvacatures t
, tbl_vacatures_provincies p
, tbl_vacatures_vakgebieden v 
WHERE p.provincieID IN ('".$provincies_seperated."' )
AND p.vacatureID = t.ID 
AND v.vakgebiedID IN ('".$vakgebieden_seperated."') 
AND v.vacatureID = t.ID 
AND t.landID = '1'");

Bedoel je dit niet?

[ Voor 28% gewijzigd door justmental op 14-12-2004 16:45 ]

Who is John Galt?


  • MissingDog
  • Registratie: Augustus 2002
  • Niet online
Wat we willen zien is de output van het print statement als in onderstaand ding
PHP:
1
2
3
4
5
6
7
8
9
10
print $query = ("SELECT * FROM tblvacatures t
, tbl_vacatures_provincies p
, tbl_vacatures_vakgebieden v 
WHERE p.provincieID IN ('".$provincies_seperated."' )
AND p.vacatureID = t.ID 
AND v.vakgebiedID IN ('".$vakgebieden_seperated."') 
AND v.vacatureID = t.ID 
AND t.landID = '1'");

$Mysql2 = mysql_query($query);


En geef ook even 't resultaat wat MySQL retourneert als je deze zelfde query in de MySQL console / phpMyAdmin uitvoert.

[ Voor 17% gewijzigd door MissingDog op 14-12-2004 16:49 ]


Verwijderd

Topicstarter
Ok,

Bedankt voor de reacties tot dus ver.

Hieronder de output van mijn print statement.

PHP:
1
SELECT * FROM tblvacatures t , tbl_vacatures_provincies p , tbl_vacatures_vakgebieden v WHERE p.provincieID IN ('1,2,3,4,5,6,7,8,9,10,11,12' ) AND p.vacatureID = t.ID AND v.vakgebiedID IN ('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27') AND v.vacatureID = t.ID AND t.landID = '1'

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

Die aanhalingstekens horen niet in je IN-statement.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:44

Creepy

Tactical Espionage Splatterer

Hmmja. Dit had je zelf ook prima kunnen uitzoeken. Lees P&W FAQ - Leer **** debuggen!! eens door.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.