Hey mensen, ik ben een beginnende scripter en kom er niet meer uit.

**Wat mijn script moet doen:** I got a database with items and another database with mixes between mutiple items. Visitors select the items they like and the script would look into the database to see if there are any mixes between those items avaliable.

**Wat ik geprobeerd heb & het probleem:**


Ik heb zelf niet veel codes, want ik wist nieteens hoe ik de "second database" moet instellen.

Dit is de code die ik tot nu toe heb:


// 1. make array from the input
$input_array = array(2, 6, 133, 75, 12, 9, 3, 52, 93, 23, 1);

// 2. get all rows where item is in the array
$input_array = join(', ', $ids);
$query = "SELECT * FROM mix_database WHERE item_id IN ($input_array)";

// 3. compare the amount of mix_id's in the query above with the amount of mix_id's in mix_database


Stap drie kan dus niet zo gedaan worden doordat er meerdere items gebruikt kunnen worden bij verschillende mixen.

Hoop dat ik het duidelijk genoeg heb opgeschreven.
Kan iemand me helpen met zoeken door de database?
Waarschijnlijk bedoel je 'Second table' en niet 'Second database'?

De laatste tabel (die jij dan 'Second database' noemt) die noemen wij een koppeltabel. (althans als ik je goed begrijp).


Een koppeltabel verbindt een many-to-many relatie tussen twee tabellen.

een simpele vergelijking:
artikelen kunnen in meerdere categorieën vallen en categorieën kunnen ook meerdere artikelen bezitten:


artikel
id | name
1  | racefiets
2  | skies

categorie
id | name
1  | sport
2  | winter
3  | fietsen

artikel_categorie (koppeltabel)
artikel_id | categorie_id
1          | 1
1          | 3
2          | 1
2          | 2


Koppeltabellen hoeven geen primay index (id) te hebben.

vervolgens kun je met JOIN's de gewenste resultaten ophalen:


SELECT
	artikel.id, artikel.name, categorie.name as categorie
FROM
	artikel
LEFT JOIN
	artikel_categorie 
ON
	artikel.id = artikel_categorie.artikel_id 
LEFT JOIN
	categorie
ON
	categorie.id = artikel_categorie.categorie_id
WHERE
	categorie.name = 'sport'


- Behalve de Left join zijn er ook andere join vormen.
- de WHERE clause is natuurlijk optioneel.

[size=xsmall]Toevoeging op 01/10/2014 21:57:14:[/size]

resultaat:

id | name      | categorie
--------------------------
1  | Racefiets | sport
2  | Skies     | sport

Reageren