Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Generare variabili con ciclo do
Forum - PHP - Generare variabili con ciclo do - Pagina 2

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
alfredom15 (Normal User)
Newbie


Messaggi: 12
Iscritto: 01/03/2014

Segnala al moderatore
Postato alle 18:41
Martedì, 04/03/2014
Chiedo scusa per l' orrore che ho prodotto Ahahah , purtroppo come già detto sono autodidatta sul php , ancora non finisco a leggere il tuo post però mi sono accorto subito della "stupidaggine" creata e ho fatto così:

Codice sorgente - presumibilmente Php

  1. //***************************************PRIMA ACQUISIZIONE ***************************************
  2.   if ($_GET['primo'] > 0)
  3.   {
  4.   echo "<hr>";
  5.     for($i=1; $i <= $_GET['primo']; $i++){
  6.         echo "Inserisci il $i valore della fissa<br>";
  7.       echo '<input name="valorea['.$i.']" type="text" value="1.00"><br>';
  8.     }
  9.         }
  10.                         elseif($_GET['primo'] ==0)
  11.         {}
  12.         else
  13.         {
  14.         echo "Inserisci un valore corretto.<br>";
  15.         }
  16.        
  17.        
  18.        
  19.        
  20.          //**********************************SECONDA  ACQUISIZIONE ***************************************
  21.        
  22.           if ($_GET['secondo'] > 0)
  23.   {
  24.  
  25.  echo"<hr>";
  26.           for($i=1; $i <= $_GET['secondo']; $i++){
  27.         echo "Inserisci i valori della $i doppia <br> ";
  28.      echo '<input name="valoreb['.$i.']" type="text" value="2.00"><br>';
  29.          echo '<input name="valorec['.$i.']" type="text" value="3.00"><br>';
  30.         }
  31.         }
  32.         elseif($_GET['secondo'] ==0)
  33.         {
  34.         }
  35.         else {
  36.         echo "Inserisci un valore corretto.<br>";
  37.         }




Codice sorgente - presumibilmente Php

  1. //***************************************PRIMA STAMPA ***************************************
  2.    if ($_SESSION['primo'] > 0){
  3. $i = 0;
  4. $ris1=1;
  5. while(isset($_POST["valorea"][++$i]))
  6.  {
  7.     echo "La $i quota fissa e' " . htmlspecialchars($_POST["valorea"][$i]);
  8.         echo "<br>";
  9.         $ris1=$ris1*($_POST["valorea"][$i]);
  10. }
  11. echo "<br>Per un totale di " ;
  12. echo round($ris1,2);
  13. echo "<br><br> ";
  14. $_SESSION['ris1'] = $ris1;}
  15. else{echo "<br>";
  16. echo "Nessuna quota singola<br>";}
  17.  
  18.  
  19.  
  20.  
  21.  //***************************************SECONDA STAMPA ***************************************
  22.  
  23.  
  24.     if ($_SESSION['secondo'] > 0){
  25. $i = 0;
  26. $ris2=0;
  27. while(isset($_POST["valoreb"][++$i]))
  28.  {
  29.  echo "Le quote della $i doppia sono " . htmlspecialchars($_POST["valoreb"][$i]);
  30.   echo " e ";
  31.     echo  htmlspecialchars($_POST["valorec"][$i]);
  32.         echo "<br>";
  33. }
  34. echo "<br>";
  35. $_SESSION['ris2'] = $ris2;}
  36. else
  37. {echo "<br>";  
  38.  echo "Nessuna quota doppia<br>";}


Ultima modifica effettuata da alfredom15 il 04/03/2014 alle 18:46
PM Quote
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 20:30
Martedì, 04/03/2014
Ok meglio ^^
Un codice scritto bene (visualmente) è sempre meglio di un codice raffazzonato, impara a indentare
http://en.wikipedia.org/wiki/Indent_style
Personalmente preferisco 1TBS, resta comunque tra i primi tre perchè di fatto gli altri ormai non li usa più nessuno senza prendere degli insulti.

PM Quote
Avatar
alfredom15 (Normal User)
Newbie


Messaggi: 12
Iscritto: 01/03/2014

Segnala al moderatore
Postato alle 21:30
Martedì, 04/03/2014
SI sono d' accordo , però diciamo che all' inizio esce spontaneo utilizzare un codice più spartano.
Comunque ho quasi finito il mio script , mi rimane un ultimo step in cui mi sono bloccato , e per l' ennesima volta mi rivolgo a voi (credo che in questo momento mi vogliate inultare :rofl: ) , sono arrivato al punto che una volta preso tutti questi valori all' interno di queste textbox (singole , doppie , triple e quadruple) devo fare diversi calcoli , incrociando i valori nelle text doppie , triple e di quelle quadruple.
Nel caso i valori siano singoli (una textbox sola) , i valori si moltiplicano sempre .
Per intenderci come il sistema di una schedina di scommesse.

Ho già trovato il codice per identificare  il numero di combinazioni possibili con questo codice
:

Codice sorgente - presumibilmente Php

  1. //*******************SE IL VALORE E' UNO , NON CAMBIA IL NUMERO DI COMBINAZIONI*****
  2.  //***************************************PRIMO CONTO (2 text) ***************************************
  3. $cont = 1;
  4. $mol1=1;
  5. if ( $_SESSION['secondo'] > 0)
  6. {
  7. for ($a=1; $a <= $_SESSION['secondo']; $a++){
  8. $mol1=$mol1*2;
  9. }
  10.  
  11.  //***************************************SECONDO CONTO(3 text) ***************************************
  12. $mol2=$mol1;
  13. if ( $_SESSION['terzo'] > 0)
  14. {
  15. for ($b=1; $b <= $_SESSION['terzo']; $b++){
  16. $mol2=$mol2+$mol2*2;
  17. }
  18. }
  19.  
  20.  //***************************************TERZO CONTO(4 text) ***************************************
  21. $mol3=$mol2;
  22. if ( $_SESSION['quarto'] > 0)
  23. {
  24. for ($c=1; $c <= $_SESSION['quarto']; $c++){
  25. $mol3=$mol3*4;
  26. }




ORA PERO , NELLA PAGINA SUCCESSIVA DOVREI CALCOLARE UNA COSA DEL GENERE :
Codice sorgente - presumibilmente Plain Text

  1. ESEMPIO:
  2.  
  3. TEXTBOX SINGOLE
  4.  
  5. 1) text-a : 1  <-- (valore)
  6. 2) text-a : 2
  7.  
  8. TEXTBOX DOPPIE
  9.  
  10. 3) text-a : 3
  11. 3) text-b : 4
  12.  
  13. TEXTBOX TRIPLE
  14.  
  15. 4) text-a : 5
  16. 4) text-b : 6
  17. 4) text-c : 7
  18.  
  19. TEXTBOX QUADRUPLE
  20.  
  21. 5) text-a : 8
  22. 5) text-b : 9
  23. 5) text-c : 10
  24. 5) text-d : 11
  25.  
  26. risultati :
  27.  
  28. risultato 1 : 1-a*2-a*3-a*4-a*5-a; (1*2*3*5*8)
  29.  
  30. risultato 2 : 1a*2a*3-b*4-a*5-a (1*2*4*5*8)
  31.  
  32. risultato 3: 1a*2a*3-a*4-b*5-a (1*2*3*6*8)



E così via , lasciando i valori dentro le textbox singole , sempre invariati , moltiplicando con tutti gli altri numeri , in tutte le combinazioni , senza ripetersi. Spero di essermi spiegato bene..
Capisco che le mie sono richieste difficili da elaborare ,se qualcuno sia così gentile da aiutarmi ne sarei grato ,  però in ogni caso vi ringrazio in anticipo. :hail::hail:

Ultima modifica effettuata da alfredom15 il 04/03/2014 alle 21:33
PM Quote
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 21:38
Martedì, 04/03/2014
Non ho capito nulla.

PM Quote
Avatar
alfredom15 (Normal User)
Newbie


Messaggi: 12
Iscritto: 01/03/2014

Segnala al moderatore
Postato alle 22:06
Martedì, 04/03/2014
Testo quotato

Postato originariamente da Qwertj:

Non ho capito nulla.



Scusami se mi sono spiegato male.
Allora ricapitolando un attimo :

-1.php : Faccio inserire 4 valori in 4 relative textbox :
il primo valore  serve a generare tante textbox quante il valore inserito. (le chiamo "singole" per intenderci)
il secondo valore serve a  generare tante COPPIE di textbox quanto il valore inserito.  (le chiamo "doppie" per intenderci)
il terzo valore serve a  generare tanti TRIS di textbox quante il valore inserito.(le chiamo "triple" per intenderci)
ll quarto valore serve a  generare  tante volte quattro textbox quante il valore inserito. (le chiamo "quadruple" per intenderci)

-2.php : Vengono generate le textbox e l' utente può inserire i valori in queste textbox.

-3.php : Leggo tutti questi valori inseriti dall' utente , li stampo a video , e chiedo conferma dei valori inseriti.

Io ho bisogno di questo :

-4.php : Viene fatto la moltiplicazione tra i valori presenti nelle textbox singole , poi il valore totale viene moltiplicato con i valori presenti nelle doppie , nelle triple e nelle quadruple , però non tutti insieme , ma in maniera che ci calcolano tutte le combinazioni possibili.

Codice sorgente - presumibilmente Plain Text

  1. Cerco di semplificare l' esempio più possibile:
  2.  
  3. -1.php : L' utente nella prima text  inserisce 1 , nella seconda 1 , nella terza e nella quarta 0 .
  4.  
  5. -2.php : Vengono generate 1 textbox (singola) + 2 textbox (una doppia).  L' utente nella singola scrive 2 e nelle doppie scrive 3 e 4.
  6.  
  7. -3.php : Stampo a video : Hai inserito 2 nella singola , Hai inserito 3 e 4 nella doppia.
  8.  
  9. -4.php : Sono disponibili due combinazioni , stampo a video :  
  10.  
  11. prima combinazione : 2*3 = 6
  12. seconda combinazione : 2*4 = 8



Scusami se non mi riesco a spiegare , spero di essere stato il più chiaro possibile , anche se non è semplice.
Grazie

Ultima modifica effettuata da alfredom15 il 04/03/2014 alle 22:08
PM Quote
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 14:56
Mercoledì, 05/03/2014
Ok adesso credo di aver capito

Chiamando N1 il numero di <input> singoli, N2 il numero di <input> doppie, ecc, dovresti iterare N1*N2*N3*N4 volte, annidando i cicli, e ogni volta stampare il prodotto a[i1]*b[i2]*c[i3]*d[i4]

Per intenderci
Codice sorgente - presumibilmente Plain Text

  1. $n1 = count(a) + 1;
  2. $n2 = count(b) + 1;
  3. $n3 = count(c) + 1;
  4. $n4 = count(d) + 1;
  5. for($i1 = 0; $i1 < $n1; ++$i1) {
  6.     for($i2 = 0; $i2 < $n2; ++$i2) {
  7.         for($i3 = 0; $i3 < $n3; ++$i3) {
  8.             for($i4 = 0; $i4 < $n4; ++$i4) {
  9.                 echo a[$i1] * b[$i2] * c[$i3] * d[$i4], '<br />';
  10.             }
  11.         }
  12.     }
  13. }


Con il +1 fa sempre almeno una combinazione, ma non so come intendi gestire questi casi

PM Quote
Avatar
alfredom15 (Normal User)
Newbie


Messaggi: 12
Iscritto: 01/03/2014

Segnala al moderatore
Postato alle 15:45
Mercoledì, 05/03/2014
Innanzitutto ti volevo ringraziare per la disponibilitá, Il punto é che ipotizzando di avere Una situazione del genere :
Codice sorgente - presumibilmente PHP

  1. 1) Singola
  2.  
  3. 2) Doppia
  4. 3) Doppia
  5.  
  6. 4)Tripla
  7. 5)Tripla
  8. 6)Tripla
  9.  
  10. 7)Tripla
  11. 8)Tripla
  12. 9) Tripla
  13.  
  14. Cio che serve a me é questo :
  15.  
  16. 1*2*4*7
  17. 1*2*4*8
  18. 1*2*4*9
  19. 1*2*5*7
  20. 1*2*5*8
  21. 1*2*5*9
  22. 1*2*6*7
  23. 1*2*6*8
  24. 1*2*6*9
  25. 1*3*4*7
  26. 1*3*4*8
  27. 1*3*4*9
  28. 1*3*5*7
  29. 1*3*5*8
  30. 1*3*5*9
  31. 1*3*6*7
  32. 1*3*6*8
  33. 1*3*6*9
  34.  
  35. FINE


Devo fare in modo che i valori che scorrono , sono quelli dell' ultimo insieme di textbox , e una volta terminati , scorre di uno il valore dell' insieme precedente , per ripartire a scorrere l' ultimo, fino a generare tutte le combinazioni. Ovviamente non conosco il numero di insiemi di textbox (Nella prima pagina l' utente lo inserisce) quindi inserendo quattro puntatori , gli insieme dello stesso tipo (doppia , tripla e singola ) scorrerebbero insieme , invece io devo selezionare SOLO l' ultimo insieme.
Dall' esempio sopra , credo si capisca meglio.

Scusami se,non mi sono spiegato e ti ringrazio  ancora per l aiuto.  :k:

Ultima modifica effettuata da alfredom15 il 05/03/2014 alle 16:33
PM Quote
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 19:50
Mercoledì, 05/03/2014
Scorrere? Puntatori? :noway:
Cos'è che non va bene di trovare tutte le combinazioni?

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo