Data opvragen en bewerken in PHP
Pagina: « vorige 1 2 3 4 5 6 7 volgende »
Correctie, je script ondersteunt het niet. Het kan wel, maar er is wat werk voor nodig.
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.
- 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?
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
- 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.
Quote:
- Zo zijn de ID's nooit meer dan 100 dus hoef ik er geen 650 in te voeren
- 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?
Gewijzigd op 07/08/2017 15:13:38 door - Ariën -
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.
Quote:
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?
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?
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 ;)
Gewijzigd op 07/08/2017 15:31:00 door - Ariën -
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.. ;)
Als ik Thomas v/d Heuvel zijn voorbeeld combineer, dan kom ik op deze HTML-structuur uit.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<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>
<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.
Gewijzigd op 07/08/2017 15:43:24 door - Ariën -
- 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.
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.
Als ik Thomas v/d Heuvel zijn voorbeeld combineer, dan kom ik op deze HTML-structuur uit.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<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>
<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?
Of hebben je gebruikers nog geen ID's?
Gewijzigd op 07/08/2017 15:50:51 door - Ariën -
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?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
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 (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<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>
<?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>
Gewijzigd op 07/08/2017 16:04:41 door - Ariën -