Advanced Database Search

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ibrahim A

Ibrahim A

01/10/2014 20:19:36
Quote Anchor link
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:**
Afbeelding

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:


Quote:
// 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?
Gewijzigd op 01/10/2014 20:20:14 door Ibrahim A
 
PHP hulp

PHP hulp

22/12/2024 15:06:00
 
Frank Nietbelangrijk

Frank Nietbelangrijk

01/10/2014 21:24:02
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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.

Toevoeging op 01/10/2014 21:57:14:

resultaat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
id | name      | categorie
--------------------------
1  | Racefiets | sport
2  | Skies     | sport
Gewijzigd op 01/10/2014 21:49:42 door Frank Nietbelangrijk
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.