Goedemiddag,

Ik ben retenieuw met PHP en ik heb een vraag.
Het is niet dat ik er niet uit kom, maar meer dat ik niet weet waar ik moet zoeken.

Ik heb een PHP pagina gemaakt die gelinkt is aan een database in MySQL.
De database in MySQL bestaat uit 3 kolommen, namelijk;

- Groep
- Naam
- Aanwezig

Ik heb nu een query opgesteld die, afhankelijk in welke groep je je bevind, iedereen toont in de groep.
Hij toont dus Groep, Naam en Aanwezig die nu nog leeg is.

Ik wil het zo kunnen maken dat de 'leiding' van een groep aanwezigheid kan registreren door middel van een checkbox.
Zodra de checkbox is aangevinkt, krijgt de kolom 'Aanwezig' de waarde 'Present' in de database.
Zo een checkbox wil ik dus voor iedereen aan kunnen vinken.
Zodra iedereen op de lijst is gecontroleerd, moet het resultaat naar de database worden verzonden en opgeslagen.
Zodra ik dan wil zien wie er allemaal zijn, moet hij de lijst tonen met de zojuist aangevinkte checkboxen.

Kolom 1 en kolom 2 moeten dus 'read only' worden en kolom 3 moet 'editable' worden.
Hoe kan ik dit het beste doen? Als het nodig is, wil ik hier wel mijn code plaatsen.
Er hoeft niet een hele code voor mij geschreven te worden, maar ik wil weten hoe ik dit aanpak.

Alvast bedankt!
Om te weten of je fout bezig bent, dan wil ik toch graag mijn vraag van net beantwoord zien ;-)
In de database aparte tabellen maken ;)
Dan is het dus een no-go! Het is nergens voor nodig, en je kan in je query prima filteren.
Hmmm ik denk dan dat ik dan toch eerst echt een php cursus zal moeten volgen..
Een groot gedeelte snap ik wel maar er is ook een heeeel groot gedeelte wat ik niet snap.
Het spijt me jongens, maar dan houd het avontuur hier voorlopig even op.
Ik had het gevoel dat ik heel dichtbij zat en toen ik alles op kon slaan per kind was het prachtig.
Maar om alles met 1 knop op te kunnen slaan, wordt me op dit moment toch echt even te ingewikkeld.
Ik heb in ieder geval heel wat geleerd en wil jullie bedanken daarvoor! Mijn excuses als ik af en toe een beetje dom klonk.. ;)
Ik dnek dat je er te moeilijk over nadenkt, terwijl het in feite niet zo heel lastig is.
Als ik Thomas v/d Heuvel zijn voorbeeld combineer, dan kom ik op deze HTML-structuur uit.


<form action="..." method="post">
<p>
Pietje <input type="radio" name="present[1]" id="present_2_1" value="1"><label for="present_2_1">aanwezig</label>
<input type="radio" name="present[1]" id="present_2_0" value="0"><label for="present_2_0">afwezig</label>
</p>
<p>
Jantje <input type="radio" name="present[2]" id="present_2_1" value="1"><label for="present_2_1">aanwezig</label>
    <input type="radio" name="present[2]" id="present_2_0" value="0"><label for="present_2_0">afwezig</label>
</p>
<p>
    <button type="submit">opslaan</button>
</p>
</form>

De nummers bij present stellen de unieke ID's voor in de database.
Vervolgens kan je alles POST'en na de submit, en per gebruiker de juiste waarde instellen. Een kwestie van een UPDATE... SET ....WHERE query.
- Ariën - op 07/08/2017 15:40:37

Ik dnek dat je er te moeilijk over nadenkt, terwijl het in feite niet zo heel lastig is.
Als ik Thomas v/d Heuvel zijn voorbeeld combineer, dan kom ik op deze HTML-structuur uit.


<form action="..." method="post">
<p>
Pietje <input type="radio" name="present[1]" id="present_2_1" value="1"><label for="present_2_1">aanwezig</label>
<input type="radio" name="present[1]" id="present_2_0" value="0"><label for="present_2_0">afwezig</label>
</p>
<p>
Jantje <input type="radio" name="present[2]" id="present_2_1" value="1"><label for="present_2_1">aanwezig</label>
    <input type="radio" name="present[2]" id="present_2_0" value="0"><label for="present_2_0">afwezig</label>
</p>
<p>
    <button type="submit">opslaan</button>
</p>
</form>

De nummers bij present stellen de unieke ID's voor in de database.
Vervolgens kan je alles POST'en na de submit, en per gebruiker de juiste waarde instellen. Een kwestie van een UPDATE... SET ....WHERE query.


Maar dit betekend dus opnieuw dat ik alle 650 waardes moet definieren?
Ja, maar die staan in je database, dus die kan je in je while-loop toch noemen?
Of hebben je gebruikers nog geen ID's?
Kijk, daar loop ik vast.
De while loop snap ik echt geen reet van.
Al mijn gebruikers hebben een uniek ID, dus dat is het probleem niet.
- SanThe - op 07/08/2017 15:04:36

3 of 650? Wat maakt het uit?

<form action="..." method="post">
<?php
while($row = mysqli_fetch...(...))
{
    $i = $row['id'];
    echo '<p>
          <input type="checkbox" name="present['.$i.']" id="present_'.$i.'" value="1">
          <label for="present_'.$i.'">'.$row['naam'].'</label>
          </p>';
?>
<button type="submit">opslaan</button>
</form> 



Je hebt één while-loop nodig, en daar mee doorloop je alles in je gebruikers-tabel.
Neem uit het bovenstaande voorbeeld de <p> en </p>-tags, die per stuk een gebruiker voorstellen. (behalve die laatste submit ;) )

En die zet je in de while-loop. Uiteraard noem je daar de juiste waardes die je uit de database haalt.

Anyway, zie SanThe's voorbeeld hierboven! ^

Maar dan zou ik voor radio-buttons kiezen:
[code]
<form action="..." method="post">
<?php
while($row = mysqli_fetch...(...))
{
$i = $row['id'];
echo '<p>
'.$row['naam'].'<input type="radio" name="present['.$i.']" id="present_'.$i.'_1" value="1"><label for="present_'.$i.'_1">aanwezig</label>
<input type="radio" name="present['.$i.']" id="present_'.$i.'_0" value="0"><label for="present_'.$i.'_0">afwezig</label>
</p>';
}
?>
<p>
<button type="submit">opslaan</button>
</p>
</form>

Reageren