PHP join

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kevin J

Kevin J

17/03/2015 07:15:50
Quote Anchor link
Hallo,

Ik heb zitten vechten als een gek met inner join/left outer join en die dingen.
Ik had er echt 0 ervaring mee dus nu heb ik een code gemaakt maar hij werkt voor geen meter.
Mijn code is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
SELECT * FROM enquete_questions
AS eq LEFT OUTER JOIN enquete_answers AS ea
on eq.id = eq.questionid
WHERE eq.status=0
WHERE NOT EXISTS(SELECT * FROM enquete_answers WHERE door='$naam')

Mijn database van 'enquete_questions' ziet er zo uit: (Niet volledig maar het gaat zo door met question2mp1 en zo iets dus niks belangrijks)
http://gyazo.com/ac21c7f80974d9d17ec64f8274a25e09
Mijn database van 'enquete_answers' ziet er zo uit:
http://gyazo.com/8c4d9c601d69691da2cfcddabd589ba6

Wat ik wil is:
Een bepaalde query die controllerd op de volgende dingen:
- De enquete status (bij enquete_questions) staat op 0
- De enquete is nog niet in gevuld (Bij enquete_answers(Zoals je ziet word het op naam opgeslagen van de gebruiker))

Ik heb geen idee hoe ik dit zou moeten maken en hoop echt dat 1 van jullie mij hier mee kan helpen, want mijn code werkt totaal niet.
 
PHP hulp

PHP hulp

04/08/2020 10:27:49
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/03/2015 09:56:03
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
SELECT
    eq.id, eq.door //etc.
FROM
    enquete_questions eq
JOIN
    enquete_answers AS ea
ON
    eq.id = eq.questionid
WHERE
    eq.status=0 AND ea.questionanswer1 IS NULL


Zoiets?

Of bestaat er nog helemaal geen record voor de gebruiker in ea?
 
Kevin J

Kevin J

17/03/2015 09:56:49
Quote Anchor link
Er komt pas een record in EA als de enquete is ingevuld
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/03/2015 13:32:14
Quote Anchor link
Dit is het antwoord dat je zoekt maar je moet even de kolom en tabelnamen naar je eigen situatie veranderen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT * FROM vragen v
LEFT JOIN antwoorden a ON a.vraag_id = v.id
where a.vraag_id IS NULL


Toevoeging op 17/03/2015 13:39:21:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
SELECT
    eq.id, eq.door //etc.
FROM
    enquete_questions eq
JOIN
    enquete_answers ea
ON
    eq.id = ea.questionid
WHERE
    eq.status=0 AND ea.questionid IS NULL
 
Kevin J

Kevin J

17/03/2015 16:28:49
Quote Anchor link
Hij klopt aardig goed als ik het lees, maar niet alles word gecheckt wat gecheckt moest worden
hij moet namelijk ook controleren of de naam erin voorkomt met een ID erbij van de enquete.
Dus niet algemeenheid maar gewoon per persoon moet gecontroleerd worden
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

17/03/2015 16:45:00
Quote Anchor link
In een ander topic heb je het over verschillende enquêtes.

Nu heb je een tabel opbouw die niet flexibel is om verschillende enquêtes te beheren.

Als je gebruikt maakt van genummerde kolommen is dat altijd een teken dat het model van je database niet goed is. In dat topic is al een aanzet gegeven hoe je tabel opbouw er uit zou kunnen zien, waarom doe je daar niets mee?
 
Kevin J

Kevin J

18/03/2015 00:17:54
Quote Anchor link
De reden dat ik daar niks mee doe is omdat ik de MySQL opbouw die hij gebruikt totaal niet snap, dit wel alleen deze enige ding niet
 
Ivo P

Ivo P

18/03/2015 00:50:50
Quote Anchor link
Mogelijk kost het snappen van een goed datamodel je nu een middag of een dag extra. Maar waarschijnlijk verdien je dat wer terug als je niet lastige query's met genummerde kolommen moet gaan samenstellen en met php moeilijke results moet doorlopen...
 
Jacco Engel

Jacco Engel

18/03/2015 13:37:10
Quote Anchor link
Ter refferentie :
http://www.phphulp.nl/php/forum/topic/enqute-systeem/97287/

Dit is het model waar aan word gereffereerd in dit topic :).


En als je het niet snapt mag je het altijd vragen :)
 



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.