Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [PHP]arrays (https://forum.scholieren.com/showthread.php?t=1084438)

D@mien 25-01-2005 19:26

[PHP]arrays
 
Ik heb een probleempje met een pagina in PHP...
Voor school moet ik een overhoorsysteem maken die na de toets een cijfer berekent en de foute vragen weergeeft.
Op zich is dit wel te doen, alleen heb ik het probleem dat ik vastloop bij het beantwoorden van de vragen.
De vragen worden gesteld via een while-loop met sql-condition, dus kom ik in de problemen met de antwoorden. De enige manier die ik kan verzinnen om de antwoorden allemaal op te slaan is dmv een array, maar ik heb dan 2 probleempjes.
1. Ik weet niet hoe ik de key van de array moet laten oplopen met 1 na het beantwoorden van een vraag. Als ik dit niet doe dan overschrijft hij steeds de eerste value in de array...en dat schiet dus niet op..

2. Ik krijg het niet voor elkaar om de antwoorden achter elkaar in een array te zetten. Als ik vraag 1 beantwoord dan krijg ik mooi die waarde 'Array ([1] => 1)' te zien, maar als ik dan vraag 2 beantwoord dan krijg ik 'Array ([2] => 2)' te zien..(ik laat de array zien via print_r($array)..en $array bevat dan de POST-data.)
Ik submit deze waardes via 2 tabellen via radiobuttons....als ik in 1 tabel 2 buttons verschillende 'names' geef (name="arraynaam[1]" en name="arraynaam[2]") aan de buttons dan zet hij ze wel achter elkaar...maar ik krijg het niet voor elkaar om zo'n array laat maar zeggen 'aan te vullen' met waardes...
Als ik op Google zoek krijg ik wel steeds te zien hoe je een array maakt...maar daar vul je meteen alle waardes tegelijk in...en dat kan in mijn geval niet...

Kan iemand mij hiermee helpen?

ps. Ik heb voor het 2e probleem een apart script gemaakt met 2 tabellen, zodat ik kon kloten met de arrays, voordat ik ze in de site zelf wou proppen...het is uiteindelijk de bedoeling om in op de site ervoor te zorgen dat elke keer dat ik een antwoord submit (je kan kiezen uit 3 antwoorden) dat hij dan die waarde (1,2 of 3, afhankelijk van het antwoord) in de array zet, en bij de volgende submit de key met 1 ophoogt en die waarde achter de vorige te zetten..

TIGEK 25-01-2005 19:44

Je hebt per pagina een aparte vraag of op 1 pagina?

D@mien 25-01-2005 19:51

Citaat:

TIGEK schreef op 25-01-2005 @ 20:44 :
Je hebt per pagina een aparte vraag of op 1 pagina?
je ziet 1 vraag per keer...je moet dmv 'previous' en 'next' navigeren door de vragen...het is dus 1 vraag per pagina...als dit te moeilijk wordt dan kan alles ook op 1 pagina...ik heb liever dat et werkt dan dat het er mooi uitziet en het niet doet...

Manuzhai 25-01-2005 22:16

Als je alles op aparte pagina's wil hebben moet je waarschijnlijk je array in een sessie hangen. Je zou ook een bestandje kunnen maken, je array serialize()n, opslaan in het bestandje, later weer unserialize()n om een antwoord toe te voegen. Waarschijnlijk is het een stuk makkelijker om gewoon alle vragen op een pagina te zetten. :) Eventueel zou je iets kunnen prutten met JavaScript dat er maar een vraag tegelijk zichtbaar is...

D@mien 25-01-2005 22:41

als het makkelijker is om alle vragen op 1 page te zetten, dan doe ik dat wel...maar hoe zet ik al die antwoorden dan in een array?
Ik neem aan dat ik elke vraag moet submitten...

Iets wat ik vergeten te zeggen was in mn beginpost: de vragen en antwoorden worden random uit de database gehaald en ook het aantal vragen is in te stellen door de user....

Bloemkoolsaus 26-01-2005 18:10

En als je nu al je antwoorden opslaat in de database?

Je neemt een tabel voor je vragen, eentje voor je leerlingen en een voor je antwoorden.
Je zorgt dat iedere vraag en leerling een id mee krijgen.
In de tabel antwoorden zet je dan bijvoorbeeld als record,
vraag->1
leerling->1
antwoord->A

En zo dan voor iedere vraag een record. Zo kun je makkelijk opvragen welke leerling voor welke vraag welk antwoord heeft ingevuld.

D@mien 26-01-2005 22:01

Citaat:

Bloemkoolsaus schreef op 26-01-2005 @ 19:10 :
En als je nu al je antwoorden opslaat in de database?

Je neemt een tabel voor je vragen, eentje voor je leerlingen en een voor je antwoorden.
Je zorgt dat iedere vraag en leerling een id mee krijgen.
In de tabel antwoorden zet je dan bijvoorbeeld als record,
vraag->1
leerling->1
antwoord->A

En zo dan voor iedere vraag een record. Zo kun je makkelijk opvragen welke leerling voor welke vraag welk antwoord heeft ingevuld.

zo staat het nu ja...maar het lijkt me nogal overdreven om na elke vraag naar de database te moeten gaan...maargoed..als het werkt...
Al lijkt het me makkelijker met arrays...

Bloemkoolsaus 26-01-2005 22:24

Citaat:

D@mien schreef op 26-01-2005 @ 23:01 :
zo staat het nu ja...maar het lijkt me nogal overdreven om na elke vraag naar de database te moeten gaan...maargoed..als het werkt...
Al lijkt het me makkelijker met arrays...

Ik geef maar een suggestie :)
Ik zou het probleem zo oplossen, maar er zullen vast nog wel meer en wellicht betere oplossingen zijn. ;)


Alle tijden zijn GMT +1. Het is nu 08:00.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.