Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    php e variabili concatenate ..

    salve a tutti e complimenti per il forum ...
    espongo il mio problema nella speranza che qualcuno possa aiutarmi ...
    sto facendo un soft di fatturazione per mio fratello in php e mysql
    ho fatto il form di inserimento fattura ed ho creato le potenziali righe della fattura tramite questo ciclo ..

    codice:
    <? for ($i=1;$i<8;$i++){?>
      <tr class="bodystyle">
        <td><div align="center">
              <input name="riga<?=$i?>"type="checkbox" value="<?=$i;?>" >
          <select name="descrizione<?=$i;?>" onchange="mostraarticolo(this.value, '<? print $i;?>');" >
    	  	  <option  selected="selected" value="null">Scegli un articolo ....</option>
    
    	<? $queryarticoli= "select * from articoli order by codice asc";
    	 $ris_articoli = mysql_query($queryarticoli) or die ("Query fallita");
    	 while($row_articoli=mysql_fetch_array($ris_articoli)){
    	?>
    
    
    	  <option value="<?=$row_articoli['descrizione']?>" ><? echo $row_articoli['descrizione'];}
    
    
      ?></option>
          </select>
    
        </div> </td>
        <td><div align="center"><input maxlength="6" size="6" value="0" name="quantita<?=$i;?>" onChange="ricalcola(<?=$i;?>);" ></div></td>
        <td><div align="center" id="prezzo<?=$i;?>">
          <input name="prezzo<?=$i;?>"  size="6" maxlength="6" onChange="ricalcola(<?=$i;?>);">
        &euro;</div></td>
        <td><div align="center">
          <input name="iva<?=$i;?>" readonly ="readonly"  value="20" size="4" maxlength="2" onChange="ricalcola(<?=$i;?>);">
        %</div></td>
        <td><div align="center">
          <input name="imposta<?=$i;?>" readonly="readonly" id="imposta<?=$i;?>2"  size="5" maxlength="5" onChange="ricalcola(<?=$i;?>);" >
        &euro;</div></td>
        <td><div align="center">
          <input name="importo<?=$i;?>"  size="8" maxlength="8" readonly="readonly" >
        &euro;</div></td>
        </tr>
    	<? } ?>
    il form funziona correttamente ed i campi vengono correttamente inviati al file seguente crea_fattura.php il problema è :
    come posso fare per leggere ed inserire tutte le righe dei campi (magari solo quelli effettivamente valorizzati) che si chiamano nomecampo1, nomecampo2 etc . etc. con un solo ciclo

    adesso ho una cosa del genere



    codice:
    $descrizione1 = $_POST['descrizione1'];
    $prezzo1= $_POST['prezzo1'];
    $quantita1= $_POST['quantita1'];
    $iva1 = $_POST['iva1'];
    $imposta1 = $_POST['imposta1'];
    $importo1 = $_POST['importo1'];
    $queryinserimento = "insert into fatture_vendita_righe (
    	ID_Fattura_Vendita_Riga	,ID_Fattura_Vendita, Descrizione_Riga, Quantita ,prezzo,iva,imposta,importo) 
    	VALUES ('1','$numerofattura','$descrizione1','$quantita1','$prezzo1','$iva1','$imposta1','$importo1')";
    come posso fare per inserire un ciclo for concatenando le variabili
    esempio




    codice:
    for ($i=0;$i<=7;$i++){
     $prezzo.$i= $_POST['prezzo'.$i];
    <-----etc.etc.------>
    e poi $queryinserimento = "insert into fatture_vendita_righe (
    	ID_Fattura_Vendita_Riga	,ID_Fattura_Vendita, Descrizione_Riga, Quantita ,prezzo,iva,imposta,importo) 
    	VALUES ('$i','$numerofattura','$descrizione.$i','$quantita.$i','$prezzo.$i','$iva.$i','$imposta.$i','$importo$i')";
    mi scuso per eventuali baggianate ma le ho provate di tutte

  2. #2
    non serve a nulla quello che vuoi fare...
    se fai come ho scritto sotto, ad ogni ciclo le variabili vengonoa ssegnate coi nuovi valori e non ti serve andarle a indicizzare... ad ogni ciclo viene creata una nuova query e viene eseguita... e poi via di nuovo...

    Se invece ti serve averle tutte indicizzate per riga, è meglio che usi:

    $prezzo[$i] = valore...

    ecc, così hai gli array dei valori a te necessari..

    Codice PHP:
    for ($i=0;$i<=7;$i++)
    {
     
    $prezzo $_POST['prezzo'.$i];
    <-----
    etc.etc.------>

    $queryinserimento "insert into fatture_vendita_righe (
        ID_Fattura_Vendita_Riga    ,ID_Fattura_Vendita, Descrizione_Riga, Quantita ,prezzo,iva,imposta,importo) 
        VALUES ('
    $i','$numerofattura','$descrizione','$quantita','$prezzo','$iva','$imposta','$importo')";

    mysql_query($queryinserimento);

    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

  3. #3
    intanto grazie per la risposta ...
    ok ora ci provo e faccio sapere ...
    e per evitare di inserire valori nulll ???
    nella pagina precedente il campo checkriga$i è impostato a true solo se la riga è riempita con qualcosa ...
    può servire ?

  4. #4
    se vuoi evitare di inserire righe nulle, IMMAGINO che ora come ora hai una pagina dove metti i valori come un elenco, prodotto 1, prezzo, quantità ecc.. Immagino che hai tipo 20 righe e capita che ne riempi 10 come 5 come tutte... Giusto?

    Se si, quando trovi la prima vuota, non serve che prosegui il ciclo, quindi io farei:

    mettendo questa riga prima di mysql_query(..);

    if (empty($prezzo) || empty($nome_campo) .....)
    break();

    Questo dovrebbe buttarti fuori dal ciclo e non ti inserirà righe vuote...

    Invece, una soluzione mooooolto più bella e professionale, potrebbe essere quella di mostrare una sola riga all'inizio, con un + in alto. Inserisci la prima riga, e premendo il +, tramite javascript, ti disegna un'altra riga di campi... premo + ancora e me ne compare un'altra... ovviamente generati al volo.. così non avresti limiti per le righe da inserire...
    Ma dovrai fare un bel lavoretto in javascript per farlo

    Ma fai una cosa per volta
    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

  5. #5
    si ci avevo pensato con ajax a fare una cosa del genere ...
    però per il momento va bene così
    ora provo e ti faccio sapere
    grazie per l'aiuto

  6. #6
    lascia pedere ajax

    dico proprio javascript... ajax ti servirebbe a poco per quello che fai...

    buon lavoroooooo
    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

  7. #7
    codice:
    if (($descrizione=='null')) continue;
    break interrompe il ciclo continue passa al valore successivo !
    + utile ...
    grazie per l'aiuto !

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.