login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Hulp nodig met rekenen icm sessies (Opgelost)

Offline roelh - 02/01/2014 18:04 (laatste wijziging 02/01/2014 18:23)
Avatar van roelhPHP gevorderde Hallo allemaal,

Ik heb een, voor mij, moeilijke vraag, waar ik niet uit kom.
Ik heb een sessie $_SESSION['input']. Daar komen dan 'subsessies' over hoe ze ook mogen heten uit, 6 stuks $_SESSION['input']['waarde'] (6 verschillende hiervan)
Nu kunnen deze alle 6 gevuld zijn, maar ook maar 1 of 2 of 3 of 4 of 5 of 6 stuks. En nu komt me probleem.
Wanneer er 1 gevuld is, moet het bedrag €8,50 op beeld komen. Wanneer er 2 gevuld zijn moet er €17,- op beeld komen en bij 3 of meer, moet er €20,- op beeld komen. Ik kom er niet en weet ook eerlijk gezegd niet hoe te beginnen.
Wie kan mij hiermee helpen?

Echt super bedankt alvast! 

Groet,
Roel

Edit:
  1. $rekenen = array(
  2. $_SESSION['input']['deelnamemetzonder'],
  3. $_SESSION['input']['dressuuur_onder_zadel'],
  4. $_SESSION['input']['dressuur_aangespannen'],
  5. $_SESSION['input']['deelname_zadeltijdsrit']);
  6.  
  7. foreach($rekenen as $waardes)
  8. {
  9.  
  10. // Een nul telt niet mee
  11. // Geeft 4
  12. $teller = 0;
  13. if(isset($_SESSION['input']) and is_array($_SESSION['input']))
  14. {
  15. foreach($_SESSION['input'] as $waarde)
  16. {
  17. if(!empty($waarde)) $teller++;
  18. }
  19. }
  20. }
  21. echo $teller;


Met behulp van ben ik dan wel zover gekomen. Het werkt niet, wordt altijd 0.

4 antwoorden

Gesponsorde links
Offline Thomas - 02/01/2014 18:26 (laatste wijziging 02/01/2014 18:35)
Avatar van Thomas Moderator $_SESSION is in zekere zin gewoon een array.

Het klinkt alsof $_SESSION['input'] op zijn beurt ook weer een array is.

Met behulp van de count()-functie kun je tellen uit hoeveel elementen een array bestaat, zo ook $_SESSION['input'].

Dus zoiets:
  1. <?php
  2.  
  3. if (isset($_SESSION['input'])) {
  4. echo 'input bevat '.count($_SESSION['input']).' element(en).';
  5. } else {
  6. echo 'De sessie heeft geen input-key :(';
  7. }
  8. ?>


Om je verder te kunnen helpen is het wellicht handig als je een "dump" laat zien van de sessie-structuur die jij gebouwd hebt?

EDIT: Druk de waarde van $waarde eens af?
Offline roelh - 02/01/2014 18:35
Avatar van roelh PHP gevorderde Klopt. Maar $_SESSION'['input'] bevat meerdere 'subsessies', ik denk een stuk of 17.
Ik wil juist maar 6 of 7 subsessies gebruiken om mee te rekenen. Daarom wil ik deze dus in een aparte array gooien om mee te kunnen tellen.

$_SESSION['input'] = array(); is me array.

daaruit komen
$_SESSION['input']['deelnamemet'] en nog 16/17 andere subsessies.
Offline Thomas - 02/01/2014 18:43
Avatar van Thomas Moderator In dat geval, kun je dan niet beter het volgende doen?

  1. <?php
  2. // zet debugging aan
  3. ini_set('display_errors', 'stdout');
  4.  
  5. // start je sessie ergens...
  6.  
  7. // bevat de lijst van input keys die je wilt controleren:
  8. $rekenen = array(
  9. 'deelnamemetzonder',
  10. 'dressuuur_onder_zadel',
  11. 'dressuur_aangespannen',
  12. 'deelname_zadeltijdsrit',
  13. // en wat nog meer
  14. );
  15.  
  16. // loop je sessie af
  17. $teller = 0;
  18. if (isset($_SESSION['input'])) {
  19. // controleer de lijst van keys of deze een waarde hebben?
  20. foreach ($rekenen as $rekenpost) {
  21. // isset? !empty?
  22. if (!empty($_SESSION['input'][$rekenpost])) {
  23. $teller++;
  24. }
  25. }
  26. }
  27. echo $teller;
  28. ?>


Zoiets?
Offline roelh - 02/01/2014 19:07
Avatar van roelh PHP gevorderde Mag ik u danken! Ik kan eindelijk verder en het ziet er zooo verdomd simpel uit...
Een hele fijne avond en 2014! 
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.194s