login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Ingevulde velden optellen (Opgelost)

Offline Meulenhof - 12/11/2009 11:36 (laatste wijziging 12/11/2009 12:35)
Avatar van MeulenhofLid Even kort uitleggen wat er moet gebeuren

Stel er zijn maximaal 4 geheugen banken (dat getal wordt dan handmatig ingegeven)
2 van de 4 zijn ingebruik dus dan wil ik graag 2 / 4 als resullt zien
en de 2 waardes die in bank 1 en bank 2 staan.

een geheugen bank krijgt diverse waarde meer 256, 512 etc
een geheugen bank dat leeg is krijgt de waarde 0

Vul ik dus bijvoorbeeld dit in
bank 1 = 512
bank 2 = 256
bank 3 = 256
dan heeft bank 4 dus 0.
Dan moet ik als result krijgen

3 / 4
bank 1: 512
bank 2: 256
bank 3: 256
Totaal: 1024

De vraag is dus hoe tel die waardes op 256, 512 etc... en hoe tel ik de ingevulde velden op?

Zelf heb ik al wat gemaakt maar het werkt niet.

  1. function total_ram ($total_mem)
  2. {
  3. if(!$lijst['ram_slot_1'] == 0 )
  4. {$ram1 = 1;}
  5. if(!$lijst['ram_slot_2'] == 0 )
  6. {$ram2 = 1;}
  7. if(!$lijst['ram_slot_3'] == 0 )
  8. {$ram3 = 1;}
  9. if(!$lijst['ram_slot_4'] == 0 )
  10. {$ram4 = 1;}
  11.  
  12. $total_mem = $ram1 + $ram2 + $ram3 + $ram4 ;
  13.  
  14. }

6 antwoorden

Gesponsorde links
Offline jaronneke - 12/11/2009 12:01 (laatste wijziging 12/11/2009 12:02)
Avatar van jaronneke MySQL interesse
  1. function ram ($slot1 = false, $slot2 = false, $slot3 = false, $slot4 = false)
  2. {
  3. $totaal = 0;
  4. if (!empty($slot1))
  5. {
  6. $totaal .+ $slot1;
  7. }
  8.  
  9.  
  10. #onderaan
  11. return $totaal;
  12. }


En dat voor elke $slot ;)

Dit kan je aanroepen door :

ram(256,128,1042,512);

Niet getest maar moet werken 
Offline Meulenhof - 12/11/2009 12:48 (laatste wijziging 12/11/2009 12:49)
Avatar van Meulenhof Lid Bij mij gebeurd er niet veel, misschien pas ik het verkeert toe of werkt het script toch anders.

Ik heb even een screenshot gemaakt om het duidelijker te maken

http://i38.tinypic.com/2nqsf3k.jpg

Het rode puntje moet een 2 zijn in die situatie.
Het blauwe puntje moet 512 weergeven deze info haalt hij van 2 velden waar die roze puntjes staan.

slots_m is maximaal (dus 4 als je vanuit de screenshot telt, maar kan ook ooit 3 of 2 zijn)

ram_slot_1 etc komt standaard waarde 0 heeft hij geheugen dan komt er 128, 256, 512, 1024. 2048 in het veld.

`ram_slots_m` tinyint(1) NOT NULL,
`ram_slot_1` int(4) NOT NULL,
`ram_slot_2` int(4) NOT NULL,
`ram_slot_3` int(4) NOT NULL,
`ram_slot_4` int(4) NOT NULL,
Offline ArieMedia - 12/11/2009 13:36
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
  1. <?php
  2.  
  3. if(isset($_POST['submit'])) {
  4. $iTotaal = 0;
  5. foreach($_POST['slot'] as $sVal) {
  6. if(is_numeric($sVal)) {
  7. $iTotaal += (int) $sVal;
  8. }
  9. }
  10.  
  11.  
  12. echo 'Totaal = '.$iTotaal;
  13. } else {
  14. echo '<form method="post" action="test.php">
  15. <input type="text" name="slot[]">
  16. <input type="text" name="slot[]">
  17. <input type="text" name="slot[]">
  18. <input type="text" name="slot[]">
  19. <input type="submit" name="submit" value="zend">
  20. </form>';
  21. }
  22. ?>
Offline jaronneke - 12/11/2009 14:05 (laatste wijziging 12/11/2009 14:11)
Avatar van jaronneke MySQL interesse Nu aangepast, klein foutje 

Dit is getest en werkt. Natuurlijk moet je het nog wel iets aanpassen zodat hij het voor elke slot doet , identiek voor dat kleur gedoe ;)

  1. function ram ($slot1 = false, $slot2 = false, $slot3 = false, $slot4 = false)
  2. {
  3. $totaal = 0;
  4. if (!empty($slot1))
  5. {
  6. $totaal += $slot1;
  7. }
  8.  
  9.  
  10. #onderaan
  11. return $totaal;
  12. }



  1. echo ram(256,128,1024,512);


@ AriMedia

De vars staan in een database , dus lijkt een functie me makkelijker ;)?

En controleer op server request method ipv if(isset($_POST['submit']))

:D
Offline ArieMedia - 12/11/2009 14:23
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
jaronneke schreef:
Nu aangepast, klein foutje 

Dit is getest en werkt. Natuurlijk moet je het nog wel iets aanpassen zodat hij het voor elke slot doet , identiek voor dat kleur gedoe ;)

[..code..]


[..code..]

@ AriMedia

De vars staan in een database , dus lijkt een functie me makkelijker ;)?

En controleer op server request method ipv if(isset($_POST['submit']))

:D
Waarom zou ik dat aanpassen naar server request?
$_POST doet het ook.. (luie IE gebruikers moeten maar gewoon op het goede knopje drukken ).

Een functie kan gemakkelijker zijn, maar ik zie er nu niet het nu van in aangezien het waarschijnlijk maar 1x gebruikt word, en niet op meerdere dingen word toegepast. het maakt dus niet echt uit in dit geval. Je zou de functie ook kunnen aanpassen dat het niet uitmaakt hoeveel parameters je hebt.


  1. <?php
  2. function CheckRAM($aInput) {
  3.  
  4. $iTot = 0;
  5. $iSlots = count($aInput);
  6. foreach($aInput as $iSlot => $iHoeveelheid) {
  7. echo '<p>Slot '.$iSlot.' : '.$iHoeveelheid.' mb</p>';
  8. $iTot += $iHoeveelheid;
  9. }
  10.  
  11. echo '<p>De in totaal '.$iSlots.' slots nemen gezamelijk '.$iTot.' mb in beslag!<br>
  12. Gemiddeld '.($iTot / $iSlots).' mb/ slot</p>';
  13. }
  14.  
  15. $aRam = array(256, 512, 256, 1028, 128);
  16. CheckRam($aRam);
  17. ?>
Offline Meulenhof - 12/11/2009 23:35
Avatar van Meulenhof Lid Bedankt voor de hulp maar het is niet wat ik zocht. Met deze heb ik het werkend gekregen

  1. <?php
  2.  
  3. $slot1 = 512;
  4. $slot2 = 256;
  5. $slot3 = 0;
  6. $slot4 = 0;
  7.  
  8. // optellen
  9. $optellen = $slot1 + $slot2 + $slot3 + $slot4;
  10. echo $optellen.'<br /><br />';
  11.  
  12. $aantal = array_sum(array(($slot1 > 0), ($slot2 > 0), ($slot3 > 0), ($slot4 > 0) ));
  13. echo $aantal;
  14. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.488s