devo usare un join? E come?

Allora, allora

finalmente riesco ad inviare una varibile contenente l'id_fattura alla pagina

che dovrà essere stampata (grazie ancora Lonely!!). Con l'id_fattura conto di riuscire a richiamare

dalle tabelle del db tutti i dati della fattura da stampare.

Le tabelle interessate dall'operazione sono queste:

tabella fatture:

`id_fattura` int(5) NOT NULL auto_increment,

`numero_fatt` int(5) NOT NULL default '0',

`id_cliente` int(5) NOT NULL default '0',

`totale` float NOT NULL default '0',

`data` int(11) default NULL,

PRIMARY KEY (`id_fattura`)

tabella clientidb:

`id_user` int(5) NOT NULL auto_increment,

`cognome` varchar(30) NOT NULL default '',

`nome` varchar(30) NOT NULL default '',

`indirizzo` text NOT NULL,

`citta` text NOT NULL,

PRIMARY KEY (`id_user`),

tabella 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',

PRIMARY KEY (`id_acquisto`)

ok, adesso avendo l'id_fatt dovrei richiamare:

i dati della tabella fatture relativa a quell'id ovviamente;

i dati del cliente (visto che nel record della tabella fatture c'è un id_cliente associato alla fattura) e infine i prodotti acquistati 8utilizzando sempre l'id_fatt disponibile a quanto pare.

So che dovrebbe essere usata una query (o forse 2) con l'istruzione JOIN

ma non ho mai avuto modo di usarla.

Mi aiutate nell'impresa?

Grazie

inviato 9 anni fa
frankphp
X 0 X

esempio semplice di utilizzo delle JOIN:

tabella squada_calcio:

id_squadra, nome_squadra

tabella giocatori:

id_giocatore, id_squadra, nome_giocatore

Per sapere tutti i giocatori che giocano nell'inter:

SELECT nome_giocatore

FROM squada_calcio

JOIN  giocatori ON squada_calcio.id_squadra = giocatori.id_squadra

WHERE nome_squadra = "inter"

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

esempio semplice di utilizzo delle JOIN:

tabella squada_calcio:

id_squadra, nome_squadra

tabella giocatori:

id_giocatore, id_squadra, nome_giocatore

Per sapere tutti i giocatori che giocano nell'inter:

SELECT nome_giocatore

FROM squada_calcio

JOIN  giocatori ON squada_calcio.id_squadra = giocatori.id_squadra

WHERE nome_squadra = "inter"

 :bye:

 ???..vabbè, proviamo un po'.

Grazie

risposto 9 anni fa
frankphp
X 0 X

Se ti è chiaro l'esempio che ti ho fatto allora vedrai che non avrai problemi ad applicarlo al tuo caso, altrimenti dimmi dove trovi problemi.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Se ti è chiaro l'esempio che ti ho fatto allora vedrai che non avrai problemi ad applicarlo al tuo caso, altrimenti dimmi dove trovi problemi.

 :bye:

Risolto! Era più semplice del previsto.

Ecco l'intero codice della pagina stampa.php che riceve l'id_fatt inviato dalla pagina

fatt1.php (che conosciamo bene..vero?)

 ;) ;D

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<!-- Creation Date: <?=Date("d/m/Y")?> -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Dev-PHP 1.9.4">
<title>Document Title</title>
</head>
<body onload="javascript: window.print();">
<?php
$db = mysql_connect('localhost', 'root', '') or die(mysql_error());
@mysql_select_db('fattura', $db) or die(mysql_error());

$nuovavariabile=$_REQUEST['variabile'];

$query = mysql_query("SELECT * FROM clientidb JOIN fatture ON clientidb.id_user=fatture.id_cliente
WHERE fatture.id_fattura = $nuovavariabile",$db);
while( $row = mysql_fetch_array($query) )
{
 echo"<b>DATI DEL CLIENTE:</b> <br>
   $row[cognome] $row[nome]<br>
   $row[indirizzo]<br>
   $row[citta]<br>
   P.I.&nbsp&nbsp $row[iva]</b><br>";
 }
 
$query2 = mysql_query("SELECT * FROM fatture WHERE id_fattura = $nuovavariabile",$db);
while( $row2 = mysql_fetch_array($query2) )
{
$anno = date("d/m/y", $row2["data"]);
 echo"<p></p><b>DATI DELLA FATTURA:</b> <br>
   $row2[numero_fatt]<br>
   $row2[annotazioni]<br>
   $row2[aspetto]<br>
   $anno
   ";
 }
 
echo"<p></p><b>DATI ARTICOLI:</b> <br>";
$query3 = mysql_query("SELECT * FROM prodotti_acquistati WHERE id_fattura = $nuovavariabile",$db);
while( $row3 = mysql_fetch_array($query3) )
{
 echo"
   $row3[codice]<br>
   $row3[descrizione]<br>
   $row3[quantita]<br>
   $row3[prezzo_un]<br>
   $row3[iva]<br><br>
   ";
 }
?>
</body>
</html>

Beh c'è l'output da mettere a posto (devo ridisegnare la fattura, avevo pensato

di usare flash;giusto per complicarmi la vita) ma l'essenziale funziona.

Che ne dite?

Ci sono troppe query?

Grazie e ciao

risposto 9 anni fa
frankphp
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda