Data opvragen en bewerken in PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 4 5 6 7 volgende »

Ben van Velzen

Ben van Velzen

07/08/2017 14:55:33
Quote Anchor link
>> Vreemd dat PHP zoiets niet ondersteund.
Correctie, je script ondersteunt het niet. Het kan wel, maar er is wat werk voor nodig.
 
PHP hulp

PHP hulp

05/05/2024 16:20:58
 
Thomas Bakker

Thomas Bakker

07/08/2017 14:57:47
Quote Anchor link
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.
 
- Ariën  -
Beheerder

- Ariën -

07/08/2017 15:01:05
Quote Anchor link
Opsich zit je al op het goede spoor. Je moet alleen je formulier op orde brengen, zoals ik al vertelde.
 
- SanThe -

- SanThe -

07/08/2017 15:04:36
Quote Anchor link
3 of 650? Wat maakt het uit?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<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>
Gewijzigd op 07/08/2017 15:06:45 door - SanThe -
 
Thomas Bakker

Thomas Bakker

07/08/2017 15:06:11
Quote Anchor link
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?
 
Ben van Velzen

Ben van Velzen

07/08/2017 15:09:44
Quote Anchor link
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.
 
- Ariën  -
Beheerder

- Ariën -

07/08/2017 15:11:29
Quote Anchor link
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.
Quote:

- 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 -
 
Thomas Bakker

Thomas Bakker

07/08/2017 15:14:46
Quote Anchor link
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.
 
- Ariën  -
Beheerder

- Ariën -

07/08/2017 15:19:22
Quote Anchor link
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?
 
Thomas Bakker

Thomas Bakker

07/08/2017 15:22:20
Quote Anchor link
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?
 
- Ariën  -
Beheerder

- Ariën -

07/08/2017 15:26:22
Quote Anchor link
Om te weten of je fout bezig bent, dan wil ik toch graag mijn vraag van net beantwoord zien ;-)
 
Thomas Bakker

Thomas Bakker

07/08/2017 15:29:56
Quote Anchor link
In de database aparte tabellen maken ;)
 
- Ariën  -
Beheerder

- Ariën -

07/08/2017 15:30:22
Quote Anchor link
Dan is het dus een no-go! Het is nergens voor nodig, en je kan in je query prima filteren.
Gewijzigd op 07/08/2017 15:31:00 door - Ariën -
 
Thomas Bakker

Thomas Bakker

07/08/2017 15:34:56
Quote Anchor link
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.. ;)
 
- Ariën  -
Beheerder

- Ariën -

07/08/2017 15:40:37
Quote Anchor link
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.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>

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 -
 
Thomas Bakker

Thomas Bakker

07/08/2017 15:48:39
Quote Anchor link
- 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.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>

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?
 
- Ariën  -
Beheerder

- Ariën -

07/08/2017 15:50:40
Quote Anchor link
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?
Gewijzigd op 07/08/2017 15:50:51 door - Ariën -
 
Thomas Bakker

Thomas Bakker

07/08/2017 15:51:48
Quote Anchor link
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 -

- SanThe -

07/08/2017 15:54:38
Quote Anchor link
- SanThe - op 07/08/2017 15:04:36:
3 of 650? Wat maakt het uit?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<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>
 
- Ariën  -
Beheerder

- Ariën -

07/08/2017 15:55:01
Quote Anchor link
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 (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
<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>
Gewijzigd op 07/08/2017 16:04:41 door - Ariën -
 

Pagina: « vorige 1 2 3 4 5 6 7 volgende »



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.