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

    Problema update multiplo

    Salve, ringrazio in primis per le risposte e l'aiuto che mi darete.

    Ho fatto uno script di update multiplo e non riesco a capire perchè non si prende la variabile per fare l'aggiornamento. Vi divido lo script per essere chiaro:

    Codice PHP:


    <?php
    if($_REQUEST['modifica']=='ok'){ 
     echo 
    $contatore_selezione=$_POST['contatore_selezione']."io sono il contattore<br>";
     echo 
    $idnegozio=$_POST['idnegozio']. "io sono il negozio<br>";

    echo 
    $idriparazione $_POST['idriparazione'.$i]."io sono id riparazioni<br>";
    for(
    $i=0$i<=$contatore_selezione$i++){  
      
    $datainvio date('Y/m/d');
    $idriparazione=$_REQUEST['idriparazione'.$i]; // ID RIPARATORE

    $db->Query("UPDATE riparazioni SET  `idnegozio` =  '$idnegozio' WHERE  idriparazione ='{$_REQUEST['idriparazione'.$i]}';");
    }

     
    $db->TransactionBegin();     
                  if (
    $db->Query($sql)) {      
               
    $db->TransactionEnd();

                      
    // messaggio di inserimento riuscito          
            
    echo "Last ID inserted was: " $db->GetLastInsertID() . "<br /><br />\n";        
              } else {       
                   
    $db->TransactionRollback();
                
        
    // messaggio di inserimento non riuscito             
                 
    echo "<p>Query Failed</p>\n";                         
             }      
        
    //     header("location:content.php?page=21&messaggio={$_REQUEST['messaggio']}");               
         
        
    }       ?>
    Questa è la porzione di codice che dovrebbe elaborare tutto, prende tutte le variabili tranne idriparazione, (valori nel check sono presenti ho controllato)

    Questo è messo subito dopo è javascript che mi fa da contatore e in più c'è un avviso se si sicuri di compiere l'azione

    Codice PHP:
    <script type="text/javascript"
       function 
    incremento_contatore(check){  
                var 
    contatore=document.formspostamento2.contatore_selezione.value;    
                        if ($(
    '#'+check).is(":not(:checked)")){  
               
    contatore--;                
         
    document.formspostamento2.contatore_selezione.value=contatore
           } else {        
         
    contatore++;            
             
    document.formspostamento2.contatore_selezione.value=contatore;        }
        }       
         function 
    controllo(){        
            
        var 
    risposta confirm('Sei sicuro di voler SPOSTARE gli elementi selezionati?');
             
       if(
    risposta == true){    
            
    document.forms["formspostamento2"].submit();
                }   
      }
        
    </script> 
    Qui cì'è la form

    codice HTML:
    <form action="content.php?page=21" role="form" id="formspostamento2" name="formspostamento2" method="post" class="validate" novalidate="novalidate" >     
            <div class="panel-body">     
        <div class="row">
             
       <div class="form-group col-md-3 has-success">
              
        <label class="control-label">Negozio dove spostare il prodotto</label>    
             
         <select class="form-control" name="idnegozio">                  
                
          <option>Seleziona il negozio</option>                                         
     <?php  
          
       $db->Query("SELECT negozio, idnegozio FROM negozi WHERE ordine='1'  ORDER BY negozio");            
    while($row3 = $db->Row()){  
                  echo "<option value='{$row3->idnegozio}'";   
              echo ">{$row3->negozio}</option>";
    
            
         }             
                     ?>         
           </select>    
                </div>                 
                       
       <div class="form-group col-md-4 has-success">    
                  <label class="control-label">&nbsp;</label><br> 
                    <input type="hidden" value="inserimento" name="messaggio">   
                  <input type="button" name="button" onclick="javascript:controllo();"  value="Sposta il prodotto" class="btn btn-info">        
             <input type="hidden" name="contatore_selezione" id="contatore_selezione" value="0">             </div>         
                 </div>  
                      </div>
    
     
         <div class="clear"></div>
    <br>  
      
      <table class="table table-bordered table-striped datatable" id="table-2">
            <thead>   
           
          <tr>        
                <th>              
      <div class="checkbox checkbox-replace">     
               <input type="checkbox" id="chk-1">  
              </div>  
          </th>
        <th>N. scheda</th>
        <th>Data ingresso</th>
        <th>Cliente</th>
        <th>Prodotto</th>
        <th>Tipo di assistenza</th>    
        <th>Negozio</th> 
       </tr>
      
      </thead>   
             <tbody>            
        <?php        
       if($_SESSION['livello']=='1'){  $db->Query("SELECT riparazioni. * , statiriparazioni. * , tipiassistenze. * , anagrafiche. * , articoli. * , marche. * , riparatori. * , negozi . * FROM marcheRIGHT OUTER JOIN articoli ON marche.idmarca = articoli.idmarcaRIGHT OUTER JOIN riparazioniINNER JOIN anagrafiche ON riparazioni.idanagrafica = anagrafiche.idanagraficaINNER JOIN statiriparazioni ON riparazioni.idstato = statiriparazioni.idstatoINNER JOIN tipiassistenze ON riparazioni.idtipoassistenza = tipiassistenze.idtipoassistenzaINNER JOIN negozi ON riparazioni.idnegozio = negozi.idnegozio ON articoli.idarticolo = riparazioni.idarticoloLEFT OUTER JOIN riparatori ON riparazioni.idriparatore = riparatori.idriparatoreWHERE riparazioni.idstato !=  '7'AND riparazioni.eliminato ='0'ORDER BY riparazioni.idriparazione DESC");}else{    $db->Query("SELECT riparazioni. * , statiriparazioni. * , tipiassistenze. * , anagrafiche. * , articoli. * , marche. * , riparatori. * , negozi. * FROM marcheRIGHT OUTER JOIN articoli ON marche.idmarca = articoli.idmarcaRIGHT OUTER JOIN riparazioniINNER JOIN anagrafiche ON riparazioni.idanagrafica = anagrafiche.idanagraficaINNER JOIN statiriparazioni ON riparazioni.idstato = statiriparazioni.idstatoINNER JOIN tipiassistenze ON riparazioni.idtipoassistenza = tipiassistenze.idtipoassistenzaINNER JOIN negozi ON riparazioni.idnegozio = negozi.idnegozio ON articoli.idarticolo = riparazioni.idarticoloLEFT OUTER JOIN riparatori ON riparazioni.idriparatore = riparatori.idriparatoreWHERE riparazioni.idstato !=  '7'AND riparazioni.idnegozio ='".$_SESSION['negozio']."'ORDER BY riparazioni.idriparazione DESC");   
      } 
     // Count table rows  $i = 0;// --- estraggo il record corrispondente alla email della tabella utente -------------------------------------           
      while($row = $db->Row()){            
            ?>                    
                   <tr>                 
          <td>                                 
     <div class="checkbox checkbox-replace">        
                     <?php                                
            $appoggio="chk-1".$row->idriparazione;       
                               ?>                                          
                  <input type="checkbox" onclick="javascript:incremento_contatore('<?php echo $appoggio;?>');" name="idriparazione<?php echo $i;?>" value="<?=$row->idriparazione;?>" id="<?php echo $appoggio; ?>">                    
        </div>                
                   </td>              
              <td>
    <?=$row->nscheda?>
    </td>           
                <td>
    <?=$row->dataingresso?></td>       
                        <td><?=$row->cognome?> <?=$row->nome?></td>   
                           <td><?=$row->marca?> <?=$row->articolo?></td>   
                            <td><?=$row->tipoassistenza?></td>     
                       <td><?=$row->negozio?></td>    
                   </tr> 
                
        <?php           $i++;      }   
              ?>
     
       </tbody>
    
        </table>    
    <br><br>    
          <input type="hidden" value="ok" name="modifica">
    
    </form>
    non arriva allo script idriparazione, non ho la più pallida idea di perchè
    Ultima modifica di Werwolfe; 27-10-2014 a 15:06

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Sono un po' complesse le tue query.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    prima cosa, verifica che il sorgente del form mostrato nel browser contenga tutto ciò che ti aspetti, soprattutto per quanto riguarda il checkbox idriparazione

    seconda cosa, se il form è compilato correttamente, nella pagina che elabora i dati metti in testa il var_dump di $_REQUEST e verifica cosa contiene

    così iniziamo a circoscrivere il problema

  4. #4
    Il problema è proprio idriparazione che non arriva, eppure è presente se nella form, anche se metto campo text c'è , c'è incremento tutto , ma idriparazione non viene inviate, sto impazzendo

  5. #5
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Sono un po' complesse le tue query.

    Come potrei snellire?

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Quote Originariamente inviata da Werwolfe Visualizza il messaggio
    Come potrei snellire?
    Non saprei. Non so cosa vuoi fare.
    Comunque più la query è complicata più ci sono chance che sia una parte del problema.
    Ad esempio c'è una RIGHT OUTER JOIN senza clausola ON seguita da una INNER JOIN.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    scusa, si può vedere il print_r o il var_dump di $_REQUEST? magari spuntane un paio

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 © 2024 vBulletin Solutions, Inc. All rights reserved.