PDA

Bekijk Volledige Versie : [php] geneste arrays



GeertS
10/01/04, 12:30
hoi,

Ik ga een inschrijvindsformulier maken voor een activiteit waar
groepen (met een minimum aantal deelnemers) kunnen inschrijven.

Nu dacht ik dat het beste zou zijn dat men de deelnemers een voor een
toevoegd (aantal is variabel met een minimum).

Daarom wa mijn idee om alle gegevens eerst in een array te steken (met
sessions).
Kan ik dan bv $_SESSION['deelnemer'][1]['adres'] = $_POST['adres'];
gebruiken of is dergelijke wijze af te raden?

Uiteindelijk zou alles in een database terechtkomen.

IS dit een goeie werkwijze of zijn er betere?

mvg, Geert

Maarten Wierda
11/01/04, 18:45
GeertS wrote:

> hoi,

Hoi.

> Ik ga een inschrijvindsformulier maken voor een activiteit waar
> groepen (met een minimum aantal deelnemers) kunnen inschrijven.
>
> Nu dacht ik dat het beste zou zijn dat men de deelnemers een voor een
> toevoegd (aantal is variabel met een minimum).

Dat is inderdaad een optie.

> Daarom wa mijn idee om alle gegevens eerst in een array te steken (met
> sessions).

En waarom eigenlijk? Je kunt toch ook aan de hand van het aantal (wat
variabel is zoals je al stelde) een aantal INSERT-queries uitvoeren?

> Kan ik dan bv $_SESSION['deelnemer'][1]['adres'] = $_POST['adres'];
> gebruiken of is dergelijke wijze af te raden?

Dus je wilt de data eerst in een sessie opslaan en vervolgens de inhoud
van deze sessie in een database opslaan?

> Uiteindelijk zou alles in een database terechtkomen.

En wanneer is uiteindelijk? Waarom voeg je de data niet direct toe.

--
Cheers, Maarten Wierda

"Meeting Again For The First Time"
PTW/YCBYG

GeertS
11/01/04, 22:00
On Sun, 11 Jan 2004 18:40:34 +0100, Maarten Wierda
<maartenAT@norecessDOT.com> wrote:

>GeertS wrote:
>
>> hoi,
>
>Hoi.
>
>> Ik ga een inschrijvindsformulier maken voor een activiteit waar
>> groepen (met een minimum aantal deelnemers) kunnen inschrijven.
>>
>> Nu dacht ik dat het beste zou zijn dat men de deelnemers een voor een
>> toevoegd (aantal is variabel met een minimum).
>
>Dat is inderdaad een optie.
>
>> Daarom wa mijn idee om alle gegevens eerst in een array te steken (met
>> sessions).
>
>En waarom eigenlijk? Je kunt toch ook aan de hand van het aantal (wat
>variabel is zoals je al stelde) een aantal INSERT-queries uitvoeren?
Omdat ik eerst het minimum aantal deelnemers wil controleren vooraleer
ik alles in de DB zet.

>
>> Kan ik dan bv $_SESSION['deelnemer'][1]['adres'] = $_POST['adres'];
>> gebruiken of is dergelijke wijze af te raden?
>
>Dus je wilt de data eerst in een sessie opslaan en vervolgens de inhoud
>van deze sessie in een database opslaan?
>
>> Uiteindelijk zou alles in een database terechtkomen.
>
>En wanneer is uiteindelijk? Waarom voeg je de data niet direct toe.

Helemaal als laatste, als de ploegverantwoordelijke (degene die de
deelnemers van zijn ploeg inschrijft) op een knop 'nu inschrijven' of
iets dergelijks klik. Dan zou ik eerst controleren of het
minimumaantal deelnemers gehaald wordt. Na de insert-queries krijgt
deze dan nog een bevestigingsmail met oa de exacte prijs (afhankelijk
van aantal deelnemers) en betalingsgegevens etc.

Ik ben al aan dit script bezig, zou eigelijk eind komende week af moet
raken. Als je wil kan ik het wel mailen, ik ben natuurlijk verre van
expert in PHP zodus, verbeteren kan altijd...

--
mvg, geert

Maarten Wierda
11/01/04, 22:45
GeertS wrote:

>>>Daarom wa mijn idee om alle gegevens eerst in een array te steken (met
>>>sessions).
>>
>>En waarom eigenlijk? Je kunt toch ook aan de hand van het aantal (wat
>>variabel is zoals je al stelde) een aantal INSERT-queries uitvoeren?
>
> Omdat ik eerst het minimum aantal deelnemers wil controleren vooraleer
> ik alles in de DB zet.

Is het minimum aantal dan geen 1?

<snip>

>>>Uiteindelijk zou alles in een database terechtkomen.
>>
>>En wanneer is uiteindelijk? Waarom voeg je de data niet direct toe.
>
> Helemaal als laatste, als de ploegverantwoordelijke (degene die de
> deelnemers van zijn ploeg inschrijft) op een knop 'nu inschrijven' of
> iets dergelijks klik. Dan zou ik eerst controleren of het
> minimumaantal deelnemers gehaald wordt.

Het is me nog steeds niet duidelijk wat het minimum aantal is. Het doet
me een beetje denken aan phpMyAdmin. Wanneer je een tabel aanmaakt, geef
je het aantal kolommen dat deze database zou moeten krijgen op in een
invoerveld. Vervolgens kun je het type, de naam etc. van deze kolommen
instellen. Klopt dat?

> Ik ben al aan dit script bezig, zou eigelijk eind komende week af moet
> raken. Als je wil kan ik het wel mailen, ik ben natuurlijk verre van
> expert in PHP zodus, verbeteren kan altijd...

Post het maar in de nieuwsgroep. Dan kunnen anderen ook meekijken en
evt. verbeteringen aanbrengen.

--
Cheers, Maarten Wierda

"Meeting Again For The First Time"
PTW/YCBYG

GeertS
11/01/04, 23:30
On Sun, 11 Jan 2004 22:35:39 +0100, Maarten Wierda
<maartenAT@norecessDOT.com> wrote:

>GeertS wrote:
>
>>>>Daarom wa mijn idee om alle gegevens eerst in een array te steken (met
>>>>sessions).
>>>
>>>En waarom eigenlijk? Je kunt toch ook aan de hand van het aantal (wat
>>>variabel is zoals je al stelde) een aantal INSERT-queries uitvoeren?
>>
>> Omdat ik eerst het minimum aantal deelnemers wil controleren vooraleer
>> ik alles in de DB zet.
>
>Is het minimum aantal dan geen 1?

nee 5

>
><snip>
>
>>>>Uiteindelijk zou alles in een database terechtkomen.
>>>
>>>En wanneer is uiteindelijk? Waarom voeg je de data niet direct toe.
>>
>> Helemaal als laatste, als de ploegverantwoordelijke (degene die de
>> deelnemers van zijn ploeg inschrijft) op een knop 'nu inschrijven' of
>> iets dergelijks klik. Dan zou ik eerst controleren of het
>> minimumaantal deelnemers gehaald wordt.
>
>Het is me nog steeds niet duidelijk wat het minimum aantal is. Het doet
>me een beetje denken aan phpMyAdmin. Wanneer je een tabel aanmaakt, geef
>je het aantal kolommen dat deze database zou moeten krijgen op in een
>invoerveld. Vervolgens kun je het type, de naam etc. van deze kolommen
>instellen. Klopt dat?

mm, op voorhand het aantal laten invullen zou ik idd ook kunnen doen
>
>> Ik ben al aan dit script bezig, zou eigelijk eind komende week af moet
>> raken. Als je wil kan ik het wel mailen, ik ben natuurlijk verre van
>> expert in PHP zodus, verbeteren kan altijd...
>
>Post het maar in de nieuwsgroep. Dan kunnen anderen ook meekijken en
>evt. verbeteringen aanbrengen.
Hieronder volgt dan de code die ik al heb, om deelnemers toe te voegen
zou +/- op het zelfde principe gebeuren als de groep.
http://www.92ste.be/news/inschrijving.txt

Als het invoeren van de groep in orde is zou er een link bijkomen om
deelnemers toe te voegen. uiteraard is dit verre van af.

alvast bedankt voor de hulp

Maarten Wierda
12/01/04, 10:00
GeertS wrote:

[inschrijven van groepen]

>>Post het maar in de nieuwsgroep. Dan kunnen anderen ook meekijken en
>>evt. verbeteringen aanbrengen.
>
> Hieronder volgt dan de code die ik al heb, om deelnemers toe te voegen
> zou +/- op het zelfde principe gebeuren als de groep.
> http://www.92ste.be/news/inschrijving.txt

Ik zou het +- als volgt doen:

1: geef het aantal op (bijv. 12)
2. toon 12 velden, evt, kunnen velden worden toegevoegd, bijv. m.b.v. dhtml
3. controleer of er minimaal 5 deelnemers zijn toegevoegd
4. voeg de groep en de deelnemers toe aan de database

+-

class Inschrijving
{

function Inschrijving()
{
}

function controleerInschrijving()
{
}

function voegtoeGroep()
{
// voeg een groep toe aan de tabel groep
// retourneer met mysql_insert_id het id
}

function voegtoeDeelnemer($groepid, $naam, $tel, etc.)
{
// voeg een deelnemer toe, a.h.v. $groepid, kun je later de groep
//achterhalen
}
}

Of zie ik nu een aantal essentiele zaken over het hoofd?

Waarom heb je trouwens een class geschreven? Dit is dan wel de juiste
manier van programmeren imho, maar niet de meest gemakkelijke, zeker
niet als je onervaren bent.

--
Cheers, Maarten Wierda

"This heart gets stronger,
this skin gets thicker,
this voice gets louder!"

GeertS
12/01/04, 20:00
On Mon, 12 Jan 2004 09:45:25 +0100, Maarten Wierda
<moart3nAT@chello.nl> wrote:

>GeertS wrote:
>
>[inschrijven van groepen]
>
>>>Post het maar in de nieuwsgroep. Dan kunnen anderen ook meekijken en
>>>evt. verbeteringen aanbrengen.
>>
>> Hieronder volgt dan de code die ik al heb, om deelnemers toe te voegen
>> zou +/- op het zelfde principe gebeuren als de groep.
>> http://www.92ste.be/news/inschrijving.txt
>
>Ik zou het +- als volgt doen:
>
>1: geef het aantal op (bijv. 12)
>2. toon 12 velden, evt, kunnen velden worden toegevoegd, bijv. m.b.v. dhtml

per deelnemer dienen er 4 zaken ingevuld te worden, dus minstens 4
velden (of meer als ik postcode en gemeente in apparte velden steek),
vandaar dat ik elke deelnemer appart wou laten invoeren.

>3. controleer of er minimaal 5 deelnemers zijn toegevoegd
>4. voeg de groep en de deelnemers toe aan de database
>
>+-
>
>class Inschrijving
>{
>
> function Inschrijving()
> {
> }
>
> function controleerInschrijving()
> {
> }
>
> function voegtoeGroep()
> {
> // voeg een groep toe aan de tabel groep
> // retourneer met mysql_insert_id het id
> }
>
> function voegtoeDeelnemer($groepid, $naam, $tel, etc.)
> {
> // voeg een deelnemer toe, a.h.v. $groepid, kun je later de groep
> //achterhalen
> }
>}
>
>Of zie ik nu een aantal essentiele zaken over het hoofd?

Wat als er tussentijds al enkele gegevens (nog niet genoeg deelnemers)
in de database staan en de 'invuller' sluit zijn browser af of deze
crasht of ...

>
>Waarom heb je trouwens een class geschreven? Dit is dan wel de juiste
>manier van programmeren imho, maar niet de meest gemakkelijke, zeker
>niet als je onervaren bent.

Ik heb al wel wat met PHP gedaan (ook relatief kleine classes) maar
nog niet echt geavanceerde zaken (denk ik toch) (bv de site waar die
code opstaat heb ik op het forum, foto- en zoek script na volledig
zelf gemaakt).
Ik doe het ook liefst inneens 'hoe het hoort', maar ja, bestaan daar
richtlijnen voor, je leest zoveel verschillende dingen.

class leek me ook handig omdat ik functies (vooral add_deelnemer())
meermaals wil gebruiken, op apparte pagina's, en zo conflicten met
zelfde benamingen van variabelen etc wil vermijden.

Wanneer is het eigenlijk aan te raden om classes te gebruiken?
(ongeacht de kennis, want we willen natuurlijk bijleren :-) (jammer
dat het nu rap moet gaan).

GS

Maarten Wierda
13/01/04, 09:45
GeertS wrote:


[inschrijven van groepen]

>>>Hieronder volgt dan de code die ik al heb, om deelnemers toe te voegen
>>>zou +/- op het zelfde principe gebeuren als de groep.
>>>http://www.92ste.be/news/inschrijving.txt
>>
>>Ik zou het +- als volgt doen:
>>
>>1: geef het aantal op (bijv. 12)
>>2. toon 12 velden, evt, kunnen velden worden toegevoegd, bijv. m.b.v. dhtml
>
> per deelnemer dienen er 4 zaken ingevuld te worden, dus minstens 4
> velden (of meer als ik postcode en gemeente in apparte velden steek),
> vandaar dat ik elke deelnemer appart wou laten invoeren.

Met velden bedoel ik het aantal deelnemers. Elke deelnemer apart
invoeren is inderdaad het meest logische.

>>3. controleer of er minimaal 5 deelnemers zijn toegevoegd
>>4. voeg de groep en de deelnemers toe aan de database

<snip>

>>Of zie ik nu een aantal essentiele zaken over het hoofd?
>
> Wat als er tussentijds al enkele gegevens (nog niet genoeg deelnemers)
> in de database staan en de 'invuller' sluit zijn browser af of deze
> crasht of ...

Dat probleem hou je toch altijd, ongeacht je code?

>>Waarom heb je trouwens een class geschreven? Dit is dan wel de juiste
>>manier van programmeren imho, maar niet de meest gemakkelijke, zeker
>>niet als je onervaren bent.
>
> Ik heb al wel wat met PHP gedaan (ook relatief kleine classes) maar
> nog niet echt geavanceerde zaken (denk ik toch) (bv de site waar die
> code opstaat heb ik op het forum, foto- en zoek script na volledig
> zelf gemaakt).
> Ik doe het ook liefst inneens 'hoe het hoort', maar ja, bestaan daar
> richtlijnen voor, je leest zoveel verschillende dingen.

Volgens mij wel ja. Maar waar dat online te vinden is? Misschien levert
<http://www.google.nl/search?q=oop+programming> wat op. Het is ook
handig om bestaande classes te bestuderen.

<snip>

> Wanneer is het eigenlijk aan te raden om classes te gebruiken?
> (ongeacht de kennis, want we willen natuurlijk bijleren :-) (jammer
> dat het nu rap moet gaan).

Iemand? :)

--
Cheers, Maarten Wierda

"This heart gets stronger,
this skin gets thicker,
this voice gets louder!"

GeertS
13/01/04, 18:30
On Tue, 13 Jan 2004 09:36:48 +0100, Maarten Wierda
<moart3nAT@chello.nl> wrote:

>>>Of zie ik nu een aantal essentiele zaken over het hoofd?
>>
>> Wat als er tussentijds al enkele gegevens (nog niet genoeg deelnemers)
>> in de database staan en de 'invuller' sluit zijn browser af of deze
>> crasht of ...
>
>Dat probleem hou je toch altijd, ongeacht je code?
Als dit bij het gebruik van sessions gebeurt zijn de gegevens wel weg,
maar anders zit er een hoop 'rommel' in de tabellen.

GS

Daniel Tryba
13/01/04, 19:30
Maarten Wierda <moart3nAT@chello.nl> wrote:
>> Wat als er tussentijds al enkele gegevens (nog niet genoeg deelnemers)
>> in de database staan en de 'invuller' sluit zijn browser af of deze
>> crasht of ...
>
> Dat probleem hou je toch altijd, ongeacht je code?

Als je ipv een sessioncookie een cookie met een lifetime van +30m in de
toekomst pakt is het crashen en "per ongeluk afsluiten" al ondervangen
(mits de gebruiker binnen 30m terug komt).

--

Daniel Tryba

Maarten Wierda
13/01/04, 20:15
Daniel Tryba wrote:

>>>Wat als er tussentijds al enkele gegevens (nog niet genoeg deelnemers)
>>>in de database staan en de 'invuller' sluit zijn browser af of deze
>>>crasht of ...
>>
>>Dat probleem hou je toch altijd, ongeacht je code?
>
> Als je ipv een sessioncookie een cookie met een lifetime van +30m in de
> toekomst pakt is het crashen en "per ongeluk afsluiten" al ondervangen
> (mits de gebruiker binnen 30m terug komt).

Bedankt voor de tip. Zo had ik er nog nooit over nagedacht :)

--
Cheers, Maarten Wierda

"Meeting Again For The First Time"
PTW/YCBYG

GeertS
14/01/04, 20:15
On Tue, 13 Jan 2004 18:25:46 +0000 (UTC), Daniel Tryba
<news_nl.internet.www.server-side@canopus.nl> wrote:

>Maarten Wierda <moart3nAT@chello.nl> wrote:
>>> Wat als er tussentijds al enkele gegevens (nog niet genoeg deelnemers)
>>> in de database staan en de 'invuller' sluit zijn browser af of deze
>>> crasht of ...
>>
>> Dat probleem hou je toch altijd, ongeacht je code?
>
>Als je ipv een sessioncookie een cookie met een lifetime van +30m in de
>toekomst pakt is het crashen en "per ongeluk afsluiten" al ondervangen
>(mits de gebruiker binnen 30m terug komt).

met cookies heb ik nog nniet gewerkt, maar is (heb ik de indruk) +/-
zelfde principe als sessions zeker?

Maar wat als de gebruiker geen cookies accepteert (houden sommige
programma als norton internet security tegewoordig al niet veel
tegen?). Of kan ik dan best een combinatie van sessions en cookies
gebruiken?
In eerste instantie was het de bedoeling om de database niet te
vervuilen, maar inderdaad een goed idee om ook te gebruike min of meer
'in te dekken'. Prioriteit is momenteel wel da aan de serverkant alles
goed functioneert omdat het liefst eind deze week in gebruik moet
zijn, en uiteindelijk maar tijdelijk zal gebruikt worden, maar zeker
het onthouden waard ;-)

GS

Daniel Tryba
14/01/04, 20:30
GeertS <IkWilGeenSpam.geert.serneels@gmx.net_invalid> wrote:
>>Als je ipv een sessioncookie een cookie met een lifetime van +30m in de
>>toekomst pakt is het crashen en "per ongeluk afsluiten" al ondervangen
>>(mits de gebruiker binnen 30m terug komt).
>
> met cookies heb ik nog nniet gewerkt, maar is (heb ik de indruk) +/-
> zelfde principe als sessions zeker?
>
> Maar wat als de gebruiker geen cookies accepteert (houden sommige
> programma als norton internet security tegewoordig al niet veel
> tegen?). Of kan ik dan best een combinatie van sessions en cookies
> gebruiken?

Sessions worden meestal geimplementeerd met cookies. En ik ga geen
rekening houden met vage software clientside, als ik cookies gebruik
heeft dat een goede reden en als de client die niet wil vreten heeft ie
vette pech :)

--

Daniel Tryba

GeertS
14/01/04, 21:15
On Wed, 14 Jan 2004 19:27:58 +0000 (UTC), Daniel Tryba
<news_nl.internet.www.server-side@canopus.nl> wrote:

>GeertS <IkWilGeenSpam.geert.serneels@gmx.net_invalid> wrote:
>>>Als je ipv een sessioncookie een cookie met een lifetime van +30m in de
>>>toekomst pakt is het crashen en "per ongeluk afsluiten" al ondervangen
>>>(mits de gebruiker binnen 30m terug komt).
>>
>> met cookies heb ik nog nniet gewerkt, maar is (heb ik de indruk) +/-
>> zelfde principe als sessions zeker?
>>
>> Maar wat als de gebruiker geen cookies accepteert (houden sommige
>> programma als norton internet security tegewoordig al niet veel
>> tegen?). Of kan ik dan best een combinatie van sessions en cookies
>> gebruiken?
>
>Sessions worden meestal geimplementeerd met cookies. En ik ga geen
>rekening houden met vage software clientside, als ik cookies gebruik
>heeft dat een goede reden en als de client die niet wil vreten heeft ie
>vette pech :)

moeten cookies met de functie setcookie() gebruik worden of kan dit
ook met $_COOKIE["..."] = "xxx" zoals bij Sessions?
Ik gebruik in dat script ook geneste arrays (zoals het onderwerp zegt
:-)), is dat een probleem bij cookies, met sessions blijkbaar nog geen
probleem (ben al deels met script bezig, zie eerder post)

GS

Daniel Tryba
14/01/04, 22:15
GeertS <IkWilGeenSpam.geert.serneels@gmx.net_invalid> wrote:
> moeten cookies met de functie setcookie() gebruik worden of kan dit
> ook met $_COOKIE["..."] = "xxx" zoals bij Sessions?

Neen, zie de setcookie pagina op php.net

> Ik gebruik in dat script ook geneste arrays (zoals het onderwerp zegt
> :-)), is dat een probleem bij cookies, met sessions blijkbaar nog geen
> probleem (ben al deels met script bezig, zie eerder post)

Ik doelde op session.cookie_lifetime. Als die ipv van de default 0 op
1800 staat krijg je het effect wat ik beschreef.

--

Daniel Tryba

GeertS
15/01/04, 21:00
On Wed, 14 Jan 2004 21:14:34 +0000 (UTC), Daniel Tryba
<news_nl.internet.www.server-side@canopus.nl> wrote:

>GeertS <IkWilGeenSpam.geert.serneels@gmx.net_invalid> wrote:
>> moeten cookies met de functie setcookie() gebruik worden of kan dit
>> ook met $_COOKIE["..."] = "xxx" zoals bij Sessions?
>
>Neen, zie de setcookie pagina op php.net
>
>> Ik gebruik in dat script ook geneste arrays (zoals het onderwerp zegt
>> :-)), is dat een probleem bij cookies, met sessions blijkbaar nog geen
>> probleem (ben al deels met script bezig, zie eerder post)
>
>Ik doelde op session.cookie_lifetime. Als die ipv van de default 0 op
>1800 staat krijg je het effect wat ik beschreef.

Je bedoeld dus om de serverinstellingen aan te passen ipv met
setcookie() etc te werken? Kan ik dit zelf zonder root access op de
server?

gs