Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Update multiplo

  1. #1

    Update multiplo

    Ragazzi ho fatto un update multiplo ma non riesco a capire cosa non funziona:

    vi posto il codice e ringrazio in anticipo chiunque mi può aiutare


    I dati sono gli stessi, solo che deve aggiornare più schede con gli stessi dati


    // conto idriparazione che quello che cambia nel senso più schede con idriparazione diversi
    $size = count($_POST['idriparazione']);


    // start a loop in order to update each record
    $i = 0;
    while ($i < $size) {
    // le varie variabili, anche se i dati sono sempre gli stessi
    $idriparatore = $_POST['idriparatore'][$i];
    $datainvio2 = $datainvio[$i];


    $idriparazione = $_POST['idriparazione'][$i];




    echo $sql = "UPDATE riparazioni SET `idriparatore` = '$idriparatore', `idstato` = '2', datainvio = '$datainvio2', numconsegna= '$numconsegna' WHERE idriparazione ='$idriparazione[$i]'";


    ++$i;


    Ma non aggiorna nessun record di quelli inviati mediante gli input

    in cosa sbaglio?

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Manca la parte database. Hai provato a stampare a video o il contenuto delle variabili o il risultato delle istruzioni sql ?
    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
    si, ti mostro le varie opzione che ho fatto e i vari errori, grazie per l'aiuto:

    1) <?phpif($_REQUEST['modifica']=='ok'){
    // INSERIMENTO , CANCELLAZIONE E MODIFICA
    //
    // //connessione al database
    // $db = new MySQL();


    // ID RIPARATORE
    $idriparatore=$_REQUEST['idriparatore'];

    // CALCOLO IL NUMERO DI CONSEGNE CONTANDOLE

    // Execute our query
    if (! $db->Query("SELECT numconsegna FROM riparazioni WHERE idriparatore= '{$_POST['idriparatore']}'")) $db->Kill();


    // Let's show how many records were returned
    $numconsegna = $db->RowCount()+1;

    $datainvio = date('Y/m/d');












    // find out how many records there are to update
    $size = count($_POST['idriparazione']);


    // start a loop in order to update each record
    $i = 0;
    while ($i < $size) {
    // define each variable
    $idriparatore = $_POST['idriparatore'][$i];

    $idriparazione = $_POST['idriparazione'][$i];
    // $db = new MySQL();
    //
    // $sql="INSERT INTO nome_tabella (cu_id,csid,price) VALUES ('$x',1,1)";
    echo $sql="UPDATE riparazioni SET `idriparatore` = '$idriparatore', `idstato` = '2', datainvio = '$datainvio', numconsegna= '$numconsegna' WHERE idriparazione ='$idriparazione';";
    //
    //$sql ="UPDATE riparazioni SET `idriparatore` = '$idriparatore', `idstato` = '2', datainvio = '$datainvio', numconsegna= '$numconsegna' WHERE idriparazione ='$idriparazione';";
    mysql_query($sql) or die ("Error in query: $sql");


    //$db->Query($sql);
    ++$i;
    die();
    }






    $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=16&messaggio={$_ REQUEST['messaggio']}");






    }
    ?>

    Errore a video
    2) UPDATE riparazioni SET `idriparatore` = '32', `idstato` = '2', datainvio = '2014/07/17', numconsegna= '3' WHERE idriparazione ='1'; Warning: mysql_query(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /web/htdocs/www.freestyleweb.it/home/progetti/ascione/adminware_1.0/page/CatConsegnaRiparatore.php on line 47 Warning: mysql_query(): A link to the server could not be established in /web/htdocs/www.freestyleweb.it/home/progetti/ascione/adminware_1.0/page/CatConsegnaRiparatore.php on line 47 Error in query: UPDATE riparazioni SET `idriparatore` = '32', `idstato` = '2', datainvio = '2014/07/17', numconsegna= '3' WHERE idriparazione ='1';


    Poi ho fatto pure così :

    // find out how many records there are to update
    $size = count($_POST['idriparazione']);


    // start a loop in order to update each record
    $i = 0;
    while ($i < $size) {
    // define each variable
    $idriparatore = $_POST['idriparatore'][$i];

    $idriparazione = $_POST['idriparazione'][$i];
    // $db = new MySQL();
    //
    // $sql="INSERT INTO nome_tabella (cu_id,csid,price) VALUES ('$x',1,1)";
    echo $db->Query("UPDATE riparazioni SET `idriparatore` = '$idriparatore', `idstato` = '2', datainvio = '$datainvio', numconsegna= '$numconsegna' WHERE idriparazione ='$idriparazione';");
    //
    //$sql ="UPDATE riparazioni SET `idriparatore` = '$idriparatore', `idstato` = '2', datainvio = '$datainvio', numconsegna= '$numconsegna' WHERE idriparazione ='$idriparazione';";
    //mysql_query($sql) or die ("Error in query: $sql");


    //$db->Query($sql);
    ++$i;
    die();
    Cambia la query, ho delle classi con la quale uso il tutto

    Qui non mi da errore ma semplicemente 1

    Come posso risolvere?

  4. #4
    IN questo modo qui :

    Codice PHP:



    // find out how many records there are to update 
    $size count($_POST['idriparazione']); 


    // start a loop in order to update each record 
    $i 0
    while (
    $i $size) { 
    // define each variable 
    $idriparatore $_POST['idriparatore'][$i]; 
     
    $idriparazione $_POST['idriparazione'][$i];  


    echo 
    $sql ="UPDATE riparazioni SET  `idriparatore` =  '$idriparatore',  `idstato` =  '2', datainvio = '$datainvio', numconsegna= '$numconsegna'  WHERE  idriparazione ='$idriparazione';";


    ++
    $i;
    die();
    }
      
      
     
     


     
    $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";
                
                 
             } 
    Non mi da nessun errore, ma mette un solo record, come se nn funzionasse il loop, ho allegato le varie classi che uso per mysql
    Ultima modifica di Werwolfe; 17-07-2014 a 13:07

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    die() ferma lo script.
    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

  6. #6
    Sto per impazzire, non capisco perché non fa il ciclo, provo a postare lo script in modo pulito:


    Vi posto l'intero script :

    Codice PHP:
    <?php

     $db 
    = new MySQL();
     
     
    ?>
    <?php
    if($_REQUEST['modifica']=='ok'){
    // INSERIMENTO , CANCELLAZIONE E MODIFICA




       // ID RIPARATORE
      
    $idriparatore=$_REQUEST['idriparatore']; 


        
        
    // CALCOLO IL NUMERO DI CONSEGNE CONTANDOLE 


        
        // Execute our query


    if (! $db->Query("SELECT numconsegna FROM riparazioni WHERE idriparatore= '{$_POST['idriparatore']}'")) $db->Kill();


    // Let's show how many records were returned


    $numconsegna $db->RowCount()+1;




    $contatore_selezione=$_POST['contatore_selezione'];




    for(
    $i=1$i<=$contatore_selezione$i++){


        
    $idriparatore $_POST['idriparatore'.$i]; 


    $datainvio date('Y/m/d');


        
    $idriparazione=$_POST['idriparazione'.$i];






    $prova=("UPDATE riparazioni SET  `idriparatore` =  '$idriparatore',  `idstato` =  '2', datainvio = '$datainvio', numconsegna= '$numconsegna'  WHERE  idriparazione ='$idriparazione';");




    echo 
    $prova;




    }






     
    $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=16&messaggio={$_REQUEST['messaggio']}");      
             
       
              
             
             
             
    }

           
    ?>




    <script type="text/javascript">


    function SelectPost()


    {
        document.modulo.method = "post";


        document.modulo.action = "content.php?page=15";


        document.modulo.submit();


    }
    </script>












    <script type="text/javascript">
       
     function incremento_contatore(check){
       
          var contatore=document.form1.contatore_selezione.value;
       
         if ($("#chk-1"+check).is(":not(:checked)")){ 
        
            contatore--;
            
         
            document.form1.contatore_selezione.value=contatore;
         
       } else {
           
          contatore++;
            
         
            document.form1.contatore_selezione.value=contatore;
       
         }
            
         

        }
      
      
        </script>



    <form action="content.php?page=15" role="form" id="form1" name="form1" method="post" class="validate" novalidate="novalidate" >

        <input type="text" name="contatore_selezione" id="contatore_selezione" value="0">
          <div class="panel-body">


         
            
      <div class="row">
        
     
         <div class="form-group col-md-3 has-success">


        
             
         <label class="control-label">Riparatore</label>
     
                  
        
              
        <select class="form-control" name="idriparatore[]">
                                
                     
     <?php  


                  
      
       
      $db
    ->Query("SELECT * FROM riparatori  ORDER  BY riparatore");


        
     
           
      while(
    $row4 $db->Row()){
       
           
          echo 
    "<option value='{$row4->idriparatore}'>{$row4->riparatore}</option>";


           
          }   

                          
      
       
    ?>
        
       
           
           </select>


     
       
           </div>


         
              
            
        
     
        <div class="form-group col-md-4 has-success">
         
       
       <label class="control-label">&nbsp;</label><br>
          
          
       
       <input type="submit"  value="Consegna i prodotti al riparatore selezionato" class="btn btn-info">
       
        



    </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>
     
       </tr>


     
       </thead>
        
        
      
      <tbody>
        
           
         <?php 
              


      $db
    ->Query("SELECT riparazioni. * , statiriparazioni. * , tipiassistenze. * , anagrafiche. * , articoli. * , marche. * , riparatori. * , negozi . * 
    FROM marche
    RIGHT OUTER JOIN articoli ON marche.idmarca = articoli.idmarca
    RIGHT OUTER JOIN riparazioni
    INNER JOIN anagrafiche ON riparazioni.idanagrafica = anagrafiche.idanagrafica
    INNER JOIN statiriparazioni ON riparazioni.idstato = statiriparazioni.idstato
    INNER JOIN tipiassistenze ON riparazioni.idtipoassistenza = tipiassistenze.idtipoassistenza
    INNER JOIN negozi ON riparazioni.idnegozio = negozi.idnegozio ON articoli.idarticolo = riparazioni.idarticolo
    LEFT OUTER JOIN riparatori ON riparazioni.idriparatore = riparatori.idriparatore
    WHERE riparazioni.idnegozio = 
    {$_REQUEST['idnegozio']}
    AND riparazioni.idriparatore =''
    AND riparazioni.idstato =1
    AND riparazioni.eliminato = 0
    ORDER BY riparazioni.nscheda 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="chk-1<?php echo $row->idriparazione?>">


            
                    </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>
        
           
        
     
       </tr>
            
        
     
        <?php
               

    $i
    ++;
            

    }
                 

    ?>


            
            
            
        
     
       
     </tbody>


       
     </table> 
       


    <br><br>
      
      <input type="hidden" value="<?=$_REQUEST['idnegozio']?>" name="idnegozio[<?=$i?>]">


      
      <input type="hidden" value="inserimento" name="messaggio">

        <input type="hidden" value="ok" name="modifica">



    </form>
    vI Mostro lo stamp a video

    Codice PHP:

    UPDATE riparazioni SET 
    `idriparatore` = '', `idstato` = '2'datainvio '2014/07/20'numconsegna'3' WHERE idriparazione ='3';UPDATE riparazioni SET `idriparatore` = '', `idstato` = '2'datainvio '2014/07/20'numconsegna'3' WHERE idriparazione ='';[COLOR=#949494][FONT=Noto Sans]Query Failed[/FONT][/COLOR] 
    il primo idriparazione lo prende, ma il secondo no, e mi dice query failed, perchè?
    Ultima modifica di Werwolfe; 20-07-2014 a 04:46

  7. #7
    Nessun sa dirmi dove sbaglio?

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.