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

    Problema con una query di inserimento

    Ciao a tutti,

    ho tre tabelle:
    listini (id_listino, listino)
    prodotti (id_prodotto, prodotto)
    listini_dettaglio(id, id_listino, id_prodotto, prezzo_prodotto)

    Vorrei creare nuovi listini, popolando prima la tabella listini e poi listini_dettaglio con tutti gli id_prodotto, raggiungendo un risultato simile a questo

    Tabella listini
    id_listino, listino (1, listino 1)

    Tabella listini_dettaglio
    id, id_listino, id_prodotto, prezzo_prodotto (1, 1, 326, 00,00)
    id, id_listino, id_prodotto, prezzo_prodotto (2, 1, 327, 00,00)
    id, id_listino, id_prodotto, prezzo_prodotto (3, 1, 328, 00,00)
    id, id_listino, id_prodotto, prezzo_prodotto (4, 1, 329, 00,00)

    Ho pensato di fare in questo modo ma mi manca un pezzo di query e non so neanche se è possibile fare una cosa del genere:

    Codice PHP:
    // Prendo in POST il nome del listino
    $listino=$_POST['listino'];
    // Salvo il listino nella tabella listini
    $query 'INSERT INTO listini (listino) VALUES
    ("' 
    mysql_escape_string($listino) . '")';
    $Risultato mysql_query($query$db) or die (mysql_error($db));
    // Prendo l'id_listino della riga appena creata nella tabella listini
    $id_listino mysql_insert_id();
    //inserisco nella tabella listini_dettaglio tante righe quanti sono i prodotti con id_listino = $id_listino e prezzo = 00,00
    $query 'INSERT INTO listini_dettaglio (id_listino, id_prodotto, prezzo_prodotto) VALUES
    ("' 
    mysql_escape_string($id_listino) . '",
    "SELECT id_prodotto FROM prodotti", 
    "00.00")'


    Come faccio a popolare la tabella listini_dettaglio con tutti gli id_prodotto?
    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    mica l'ho capito cosa vuoi fare

    ho capito che tramite un form inserisci un nuovo listino nella tabella, ne recuperi l'id e poi?
    i prodotti dove stanno? devi duplicare le righe? oppure aggiornare l'id_listino nella tabella listini_dettaglio?

  3. #3
    I prodotti stanno nella tabella prodotti (id_prodotto, prodotto)
    Vorrei che quando creo un nuovo listino mi inserisce tante righe quanti sono i prodotti nella tabella listini_dettaglio.

    Se ho dieci prodotti, ogni volta che creo un nuovo listino devo inserire 10 righe nella tabella listini_dettaglio con id_listino sempre uguale per tutte le dieci righe e inserire tutti gli id_prodotto.

    E come se popolo una tabella con i dati di un'altra.

    Spero di essere stato chiaro.

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    prova un po', non l'ho testato
    Codice PHP:
    // Prendo in POST il nome del listino
    $listino=$_POST['listino'];
    // Salvo il listino nella tabella listini
    $query 'INSERT INTO listini (listino) VALUES
    ("' 
    mysql_escape_string($listino) . '")';
    $Risultato mysql_query($query$db) or die (mysql_error($db));
    // Prendo l'id_listino della riga appena creata nella tabella listini
    $id_listino mysql_insert_id();
    //inserisco nella tabella listini_dettaglio tante righe quanti sono i prodotti con id_listino = $id_listino e prezzo = 00,00
    $query_sel "SELECT id_prodotto FROM prodotti";
    $ex_query_sel mysql_query($query_sel) or die(mysql_error());


    $values = array();
    while(
    $prodotti mysql_fetch_array($ex_query_sel)) {
        
    $values[] = "($id_listino{$prodotti['id_prodotto']}, 00.00)";
    }


    $query "INSERT INTO listini_dettaglio (id_listino, id_prodotto prezzo_prodotto) VALUES " implode(", "$values); 
    Ultima modifica di clasku; 30-07-2014 a 17:50

  5. #5
    Grazie mille per l'aiuto.
    Avevo già risolto diversamente, facendo un LEFT JOIN tra le tabelle listini_dettaglio e prodotti.
    Proverò a vedere se funziona perchè la tua soluzione mi sembra molto interessante.

    Grazie ancora.

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.