PDA

Visualizza versione completa : [PHP] passaggio di dati da una tabella ad un'altra


luca2
04-01-2007, 14.29.10
Dovrei passare i dati di una tabella (carrello) momentanea così
strutturata:


`id` int(5) NOT NULL auto_increment,
`codice` varchar(30) NOT NULL default '',
`descrizione` text NOT NULL,
`quantita` int(11) NOT NULL default '0',
`prezzo_un` int(11) NOT NULL default '0',
`iva` int(5) NOT NULL default '0',

a quest'altra che registra gli acquisti definitivi dei prodotti immessi nella fattura
che si chiama prodotti_acquistati:

`id_acquisto` int(5) NOT NULL auto_increment,
`codice` varchar(30) NOT NULL default '',
`descrizione` text NOT NULL,
`quantita` int(11) NOT NULL default '0',
`prezzo_un` int(11) NOT NULL default '0',
`iva` int(5) NOT NULL default '0',
`id_fattura` int(5) NOT NULL default '0',

Dovrei passare di ogni articolo: il codice, la descrizione, la quantità, il prezzo unitario e l'iva + id_fattura lo ricavo così:

$id_fatt = mysql_insert_id();

che è relativa ad una query precedente
fra i vari
mysql_affected_rows()
mysql_fetch_row() e il ciclo for per leggere e inserire
ogni record all'altra tabella (con lo stesso id_fattura per ogni record) mi sono incartato.

Mi hanno anche suggerito di dare un'occhiata qua:

mi hanno consigliato di dare un'occhiata qua:


http://dev.mysql.com/doc/refman/5.0...ert-select.html

ma non ho capito bene come adattarlo alle mie esigenze,
Infine ho provato a fare così:



function conferma($id2) {
if($id2 != 0){

global $numero, $tot_fatt;
$oggi = time();

$sql3 = mysql_query("INSERT INTO fatture (numero_fatt, id_cliente, totale, data)
VALUES ('$numero', '$id2', '$tot_fatt', '$oggi');");
$id_fatt = mysql_insert_id();

$sql4 = mysql_query("SELECT * FROM carrello");

while( $row2 = mysql_fetch_array($sql4) )
{
$codi = $row2['codice'];
$desc = $row2['descrizione'];
$qua = $row2['quantita'];
$prezzou = $row2['prezzo_un'];
$iv = $row2['iva'];


$sql5 = mysql_query("INSERT INTO prodotti_acquistati (codice, descrizione, quantita, prezzo_un, iva, id_fattura)
VALUES ('$codi', '$desc', '$qua', '$prezzou', '$iv', '$id_fatt);");
}

}
else {
echo "<b><font color=\"#FF0000\">ATTENZIONE. Inserimento non riuscito: intestazione fattura non inserita</font></b>";}
}



Questa funzione in pratica carica i dati generali della fattura e poi
ottenuto 'id_fattura dovrebbe inserire i vari articoli nella
tabella definitiva con l'id_fattura come potete vedere, ma la query $sql5 non funziona.

Potete dirmi dove sbaglio e come risolvere la cosa?
grazie

Gergio
04-01-2007, 17.10.31
cosi', d'acchito, vedo che ti manca la chiusura di un apice in fondo alla query, sul valore che andra' nel campo id_fattura. Inoltre se i valori sono numeri e non stringhe, gli apici non servono.

luca2
04-01-2007, 20.50.30
cosi', d'acchito, vedo che ti manca la chiusura di un apice in fondo alla query, sul valore che andra' nel campo id_fattura. Inoltre se i valori sono numeri e non stringhe, gli apici non servono.

Quindi a parte quel piccolo errore mi stai dicendo che la query è giusta?
Provo.

Gergio
05-01-2007, 09.47.45
2 consigli:
- guarda anche qui: http://www.w3schools.com/php/default.asp
- se metti la query in una variabile (senza eseguirla), la puoi stampare e vedere dove sono gli errori ;)

luca2
05-01-2007, 15.02.29
ciao

Era come dicevi tu mancava l'apice alla variabile. Adesso funziona, grazie.
Ottimo il sito che mi hai consigliato. C'è tutto senza tanti fronzoli...ancora grazie

ps: avevo già provato a fare echo della query di sql5 ma non vedovo niente...boh?
Forse ho sbagliato qualcosa.