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!
>> Vreemd dat PHP zoiets niet ondersteund.
Correctie, je script ondersteunt het niet. Het kan wel, maar er is wat werk voor nodig.
Dat is balen. Dan moet ik mijn script maar gaan aanpassen zodat dit wel wordt ondersteund.
Wellicht moet ik dan ook mijn database herzien zodat alles veel beter gefilterd kan worden.
Opsich zit je al op het goede spoor. Je moet alleen je formulier op orde brengen, zoals ik al vertelde.
3 of 650? Wat maakt het uit?

<form action="..." method="post">
<?php
$i = 0;
while($row = mysqli_fetch...(...))
{
    $i++;
    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> 
Zou het werken als;

- Ik een nieuwe database maak met voor iedere groep een tabel, dan krijgt dus ieder kind in een groep zijn eigen ID
- Zo zijn de ID's nooit meer dan 100 dus hoef ik er geen 650 in te voeren

Dan filter ik dus alle kinderen d.m.v. een query, die query selecteert de goede tabel.
Vervolgens koppel ik het formulier aan ID 1 t/m 100 en een knop waarmee ik alle wijzigingen in ID 1 t/m 100 in 1 keer opsla.
Die knop is inzetbaar voor iedere tabel, dus hoef ik niet voor iedere tabel een eigen knop te maken.
Zou dit kunnen werken?
Waarom zou je voor iedere groep een tabel maken? Je kunt al filteren per groep.
Ik krijg het idee dat wat er gezegd wordt compleet langs je heen gaat of anderszijds niet begrepen wordt.
Thomas Bakker op 07/08/2017 15:06:11

Zou het werken als;

- Ik een nieuwe database maak met voor iedere groep een tabel, dan krijgt dus ieder kind in een groep zijn eigen ID

Nee, want elke entiteit heeft een eigen tabel. 'Gebruikers' is een entiteit, en die heeft één tabel nodig. Daarna moet er gekeken worden naar databasenormalisatie, als je bijv. meerdere dezelfde data aan een gebruiker wilt kunnen koppelen.

- Zo zijn de ID's nooit meer dan 100 dus hoef ik er geen 650 in te voeren

Je had toch 650 gebruikers? Je wilt er dan per pagina 100 tonen?
Ik zal het nog een keer proberen toe te lichten.
Mijn idee voor een eigen tabel maken per groep; binnen iedere groep komt dan ID 1-100 voor (maximaal).
Dan kan ik het formulier maken voor ID 1 t/m 100 i.p.v. ID 1 t/m 650.

@Ben, ja, ik kan al filteren per groep, maar het ID van de bijbehorende kinderen ligt ergens tussen de 1 en de 650.
Daarom leek het mij dus een goed idee om per groep een tabel te maken zodat ieder kind een ID krijgt die nooit hoger kan zijn dan 100.

Mijn idee voor een eigen tabel maken per groep; binnen iedere groep komt dan ID 1-100 voor (maximaal).

Als je een tabel in de databaseterminologie bedoeld, dan ben je al fout bezig.
Of bedoel je een visuele tabel in de HTML?
Ik ben bang dat ik dan fout bezig ben..
Mijn gedachtegang, ik heb het nog niet geprobeerd, is dat iedere record in een tabel wordt geïdentificeerd d.m.v. een uniek ID.
Als ik dan per groep een tabel maak, zullen deze ID's per tabel ongeveer hetzelfde zijn (altijd 1-100).
Als ik dan een knop maak die ik link aan een bepaalde tabel, zou hij toch alle data van de tabel moeten overschrijven?

Reageren