Visualizzazione dei risultati da 1 a 10 su 39

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Codice PHP:
        $products = [];        foreach (array_keys($match[2]) as $idx) {                $taglia substr($match[2][$idx],1); // 1 e' il numero di caratteri da rimuovere            $products[] = [            ':prodotto'  => $taglia,            ':quantita' => $match[3][$idx],            ':terminale'   => $match[4][$idx]        ];    }
        
    $pdo = new PDO("mysql:host=$host;dbname=$db_name"$username$password);    $query $pdo->prepare('    INSERT INTO tabella     (prodotto, quantita, terminale)     VALUES     (:prodotto, :quantita, :terminale)    ON DUPLICATE KEY UPDATE     quantita= :quantita, terminale= :terminale');            foreach ($products as $product) {        $query->execute($product);    } 
    Così dovrebbe funzionare.

    Prima prepari l'array dei prodotti da passare a execute() in cui si sono i : per fare il bind.
    Poi ti colleghi al db e prepari la query.
    Infine fai una query per ogni prodotto passando i valori dentro ogni array.

    Non ho mai provato ma non credo che execute() ti trovi su cosa bindare i parametri che gli passi se non metti i :

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Mi ha formattato il codice da schifo e non mi fa editare il messaggio, proviamo così:

    Qui c'è il codice https://pastebin.com/t6cBEhTx

    p.s. questo forum funziona sempre peggio.

  3. #3
    Quote Originariamente inviata da M4V1 Visualizza il messaggio
    Mi ha formattato il codice da schifo e non mi fa editare il messaggio, proviamo così:

    Qui c'è il codice https://pastebin.com/t6cBEhTx

    p.s. questo forum funziona sempre peggio.
    Devi usare sempre [ CODE ] non [ PHP ]
    Comunque niente da fare... reinserisce tutti i valori!

    Badaze ma io non ho valori statici da confrontare...comunque ora provo....
    Ho provato e mi aggiunge un record in piu alla fine di tutti...
    prodotto qnt termina
    XXXXXX 15 YYYYYY

    ragazzi stavo pensando ma sicuri che il problema nn risieda in
    codice:
        foreach ($products as $product) {
            $query->execute($product);
        }
    Ultima modifica di supersqualo; 13-09-2017 a 20:32

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quote Originariamente inviata da supersqualo Visualizza il messaggio
    Devi usare sempre [ CODE ] non [ PHP ]
    Comunque niente da fare... reinserisce tutti i valori!

    Badaze ma io non ho valori statici da confrontare...comunque ora provo....
    Ho provato e mi aggiunge un record in piu alla fine di tutti...
    prodotto qnt termina
    XXXXXX 15 YYYYYY

    Ho messo dei valori statici solo per farti capire come funziona bindParam.

    Prova questo.

    Codice PHP:
        $pdo = new PDO("mysql:host=$host;dbname=$db_name"$username$password);    
     
    $query $pdo->prepare('    INSERT INTO tabella     (prodotto, quantita, terminale)     VALUES     (:prodotto, :quantita, :terminale)    ON DUPLICATE KEY UPDATE     quantita= :quantita, terminale= :terminale');  

         
     foreach (
    $products as $product) {        
          
    $query->bindParam(':prodotto'$product['prodotto]);      
      $query->bindParam('
    :quantita', $product['quantita'], PDO::PARAM_STR);    
      $query->bindParam('
    :terminale', $product['terminale'], PDO::PARAM_STR);    
      $query->execute();    
     } 
    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

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.