inserire valori da una tabella a un altra mysql

bipolare75

Utente Attivo
15 Set 2019
37
0
6
Buongiorno,sto creando una cosa più' grande di me ma mi risulta molto difficile viste le mie conoscenze basilari di php,sto creando una pagina php per poter gestire delle prenotazioni di un laboratorio di pasta fresca.
Ho creato una tabella la quale da una pagina php inserisco i prodotti e fin qui va tutto bene,dopodiché ho creato un altra tabella che inserisco le prenotazioni e finqui tutto bene.
Ora dovrei fare un altra tabella che mi fa da riepilogo cioè:
-quante lasagne sono state ordinate?
-quanti cannelloni?

Io avevo pensato di fare una tabella uguale a quella PRODOTTI e li riportare il conteggio da tabella ORDINAZIONI.
L'ho Scritto un po complicato,spero che mi riuscite a capire.
Grazie a chi dedica del proprio tempo a me
 

Tommy03

Utente Attivo
6 Giu 2018
109
9
18
16
Bassano del Grappa (VI)
Quando inserisci i singoli valori nelle due tabelle singole crei un'altra query in cui fai un UPDATE della tabella di riepilogo.
Se metti i nomi delle varie tabelle con i relativi campi posso aiutarti meglio
 

bipolare75

Utente Attivo
15 Set 2019
37
0
6
Grazie della risposta,
1 tabella di nome prodotti campi sono id,descrizione,unita di vendita;
2 tabella di nome report campi sono descrizione, tot di vendita.
Per cercare di spiegarmi meglio: vorrei creare questa tabella di report da poter fare il tot di vendita da un altra tabella che si chiama ordinazioni.
 

marino51

Utente Attivo
28 Feb 2013
2.741
141
63
Lombardia
intanto non dovrebbe essere necessario creare la tabella per il report,
la query sottostante dovrebbe fornirti l'elenco delle prenotazioni per data
PHP:
select dataVendita, IDprodotto, descrizione, unitaDIvendita, sum(qtaVendita)  
from ordinazioni
left join nomeProdotti on IDprodotto = id
where dataVendita = '2019-09-30'
group by dataVendita, IDprodotto, descrizione, unitaDIvendita
sort by dataVendita, IDprodotto
mi sono inventato qualche nome perché i tuoi post non contengono tutte le informazioni
e quando ci sono, indicano la volontà di …. farsi del male, vedi
unita di vendita --> unitaDIvendita ovvero parola unica senza vocali accentate !

con query simile potresti anche avere l'elenco delle prenotazioni per IDprodotto / data / cliente
con il totale per IDprodotto / data
 

bipolare75

Utente Attivo
15 Set 2019
37
0
6
Buongiorno queste 2 schermate sono quelle che ho del form per inserimento e quelle del database;
se inserisco con il 1° ordine a nome del Sig.ROSSI per il giorno 24/12/2019
un prodotto nella descrizione1 come ad esempio "lasagna" e nella quantità1 "2";
nelle descrizione2 "lasagna" e nella quantità2 "3",

con il 2° ordine a nome del Sig. BIANCHI per il giorno 24/12/2019
un prodotto nella descrizione1 "cannelloni" quantita1 "20";
nella descrizione2 "lasagna" quantita2 "3".

Come faccio a poter fare un calcolo in automatico che il giorno 24/12/2019 devo preparare
lasagne=8
Cannelloni =20
e cosi per tutti gli altri prodotti che io inserisco.

Mi e' stato consigliato di fare questa select:

Codice:
$calc=mysql_query("SELECT descrizione1, COUNT(*) AS numero FROM Ordini GROUP BY descrizione1"); 
while($tot = mysql_fetch_array($calc))
{ 
     echo  $tot['descrizione1']."-".$tot['numero']."<br />";
che tutto sommato va bene però mi stampa a video la scritta lasagne o cannelloni pero non mi fa la somma delle colonne quantità ma solo la somma di quante volte è scritto il nome.
Spero di essermi spiegato al meglio.
Come sempre un ringraziamento a chi mi aiuta.
Buona Domenica


database.jpg
inserimento.jpg
database.jpg inserimento.jpg
 

marino51

Utente Attivo
28 Feb 2013
2.741
141
63
Lombardia
vedi se ti funziona in mysql (ho provato con ms sql server)
Codice:
select * from ordini

select data_ritiro, descrizione, sum(quantita) as quantita from (
select data_ritiro, descrizione1 as descrizione, quantita1 as quantita
from ordini where descrizione1 is not null and quantita1 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione2 as descrizione, quantita2 as quantita
from ordini where descrizione2 is not null and quantita2 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione3 as descrizione, quantita3 as quantita
from ordini where descrizione3 is not null and quantita3 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione4 as descrizione, quantita4 as quantita
from ordini where descrizione4 is not null and quantita4 > 0 and data_ritiro = '2019-12-24'
) t
group by data_ritiro, descrizione
order by data_ritiro, descrizione
RISULTATO

upload_2019-10-7_16-5-0.png
 

bipolare75

Utente Attivo
15 Set 2019
37
0
6
ciao ho provato ma mi da quest'errore
Warning: mysql_numrows() expects parameter 1 to be resource, boolean given in D:\inetpub\webs\......... on line 57
alla line 57 corrisponde questo:
$num = mysql_numrows($risultati);

questa e la mia pagina
PHP:
<html>



<body>



<?php



$username = "";



$password = "";



$database = "";



mysql_connect("", $username, $password);



@mysql_select_db($database) or die("Impossibile selezionare il database");



$query = "select * from ordini

select data_ritiro, descrizione, sum(quantita) as quantita from (
select data_ritiro, descrizione1 as descrizione, quantita1 as quantita
from ordini where descrizione1 is not null and quantita1 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione2 as descrizione, quantita2 as quantita
from ordini where descrizione2 is not null and quantita2 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione3 as descrizione, quantita3 as quantita
from ordini where descrizione3 is not null and quantita3 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione4 as descrizione, quantita4 as quantita
from ordini where descrizione4 is not null and quantita4 > 0 and data_ritiro = '2019-12-24'
) t
group by data_ritiro, descrizione
order by data_ritiro, descrizione ";



$risultati = mysql_query($query);



$num = mysql_numrows($risultati);



mysql_close();









$i = 0;



while ($i < $num) {



$id = mysql_result($risultati, $i, "id");

$nome = mysql_result($risultati, $i, "nome");

$cognome = mysql_result($risultati, $i, "cognome");

$recapito = mysql_result($risultati, $i, "recapito");

$data_ritiro = mysql_result($risultati, $i, "data_ritiro");

$descrizione1 = mysql_result($risultati, $i, "descrizione1");

$quantita1 = mysql_result($risultati, $i, "quantita1");

$descrizione2 = mysql_result($risultati, $i, "descrizione2");

$quantita2 = mysql_result($risultati, $i, "quantita2");

$descrizione3 = mysql_result($risultati, $i, "descrizione3");

$quantita3 = mysql_result($risultati, $i, "quantita3");

$descrizione4 = mysql_result($risultati, $i, "descrizione4");

$quantita4 = mysql_result($risultati, $i, "quantita4");

$note = mysql_result($risultati, $i, "note");



?>



<tr>



<td><font face="Arial, Helvetica, sans-serif"><?php echo $id;?></font></td>

<td><font face="Arial, Helvetica, sans-serif"><?php echo $nome;?></font></td>

<td><font face="Arial, Helvetica, sans-serif"><?php echo $cognome;?></font></td>

<td><font face="Arial, Helvetica, sans-serif"><?php echo $recapito;?></font></td>

<td><font face="Arial, Helvetica, sans-serif"><?php echo $data_ritiro;?></font></td>

<td><font face="Arial, Helvetica, sans-serif"><?php echo $descrizione1;?></font></td>

<td><font face="Arial, Helvetica, sans-serif"><?php echo $quantita1;?></font></td>

<td><font face="Arial, Helvetica, sans-serif"><?php echo $descrizione2;?></font></td>

<td><font face="Arial, Helvetica, sans-serif"><?php echo $quantita2;?></font></td>

<td><font face="Arial, Helvetica, sans-serif"><?php echo $descrizione3;?></font></td>

<td><font face="Arial, Helvetica, sans-serif"><?php echo $quantita3;?></font></td>

<td><font face="Arial, Helvetica, sans-serif"><?php echo $descrizione4;?></font></td>

<td><font face="Arial, Helvetica, sans-serif"><?php echo $quantita4;?></font></td>

<td><font face="Arial, Helvetica, sans-serif"><?php echo $note;?></font></td>



</tr>



<?php



$i++;





}









?>



</table>





</html>
 
Ultima modifica di un moderatore:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.083
299
83
@bipolare75
Quando posti codice PHP devi usare il tag:
non il tag:


Inoltre il codice deve essere più compatto senza saltare righe altrimenti diventa di difficile lettura

Grazie
 

marino51

Utente Attivo
28 Feb 2013
2.741
141
63
Lombardia
nel mio post, se vedi bene la figura, c'é la lista della tabella ordini
Codice:
select * from ordini
seguito dal risultato ottenuto con la select (composta) successiva,
Codice:
select data_ritiro, descrizione, sum(quantita) as quantita from ( ....
quindi elimina la prima select cjhe non serve e sistema le istruzioni mysql
PHP:
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);

$query = "select data_ritiro, descrizione, sum(quantita) as quantita from (
select data_ritiro, descrizione1 as descrizione, quantita1 as quantita
from ordini where descrizione1 is not null and quantita1 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione2 as descrizione, quantita2 as quantita
from ordini where descrizione2 is not null and quantita2 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione3 as descrizione, quantita3 as quantita
from ordini where descrizione3 is not null and quantita3 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione4 as descrizione, quantita4 as quantita
from ordini where descrizione4 is not null and quantita4 > 0 and data_ritiro = '2019-12-24'
) t
group by data_ritiro, descrizione
order by data_ritiro, descrizione";

$risultati = mysql_query($query, $link);
var_dump($risultati); echo "<br /><br />";
$num = mysql_num_rows($risultati);
echo $num." righe trovate<br /><br />";
poi elimina
PHP:
mysql_close();
perché chiudendo la connessione al db, non puoi più trovare le informazioni che vorresti visualizzare
 

bipolare75

Utente Attivo
15 Set 2019
37
0
6
Ciao innanzi tutto grazie pero scusami ma non riesco
PHP:
<?php

$link = mysql_connect("xxxxx", "xxxxxx", "xxxxxx");
mysql_select_db("xxxxxx", $link);

$query = "select data_ritiro, descrizione, sum(quantita) as quantita from (

select data_ritiro, descrizione1 as descrizione, quantita1 as quantita
from Ordini where descrizione1 is not null and quantita1 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione2 as descrizione, quantita2 as quantita
from Ordini where descrizione2 is not null and quantita2 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione3 as descrizione, quantita3 as quantita
from Ordini where descrizione3 is not null and quantita3 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione4 as descrizione, quantita4 as quantita
from ordini where descrizione4 is not null and quantita4 > 0 and data_ritiro = '2019-12-24'
)
t group by data_ritiro, descrizione
order by data_ritiro, descrizione";

$risultati = mysql_query($query, $link);
var_dump($risultati);
echo "<br /><br />";
$num = mysql_num_rows($risultati);
echo $num."<br /> righe trovate<br />";

?>
mi da quest'errore:
bool(false)


Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in D:\inetpub\webs\.....................visualizza.php on line 27

righe trovate

la riga 27 corrisponde a questa:
PHP:
$num = mysql_num_rows($risultati);
Scusami ti ringrazio per la pazienza
 

bipolare75

Utente Attivo
15 Set 2019
37
0
6
Ho Corretto una O che era scritta in minuscolo e non me ne ero accorto, e mi esce questo:

resource(4) of type (mysql result)

2
righe trovate
 

marino51

Utente Attivo
28 Feb 2013
2.741
141
63
Lombardia
le 2 righe trovate dovrebbero essere il risultato vedi lo screenshot che ho postato,

accoda il resto del tuo script e visualizza il risultato
 

bipolare75

Utente Attivo
15 Set 2019
37
0
6
PHP:
<?php
$link = mysql_connect(".....", ".......", ".......");
mysql_select_db("........", $link);
$query = "select data_ritiro, descrizione, sum(quantita) as quantita from(
select data_ritiro, descrizione1 as descrizione, quantita1 as quantita
from Ordini where descrizione1 is not null and quantita1 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione2 as descrizione, quantita2 as quantita
from Ordini where descrizione2 is not null and quantita2 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione3 as descrizione, quantita3 as quantita
from Ordini where descrizione3 is not null and quantita3 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione4 as descrizione, quantita4 as quantita
from Ordini where descrizione4 is not null and quantita4 > 0 and data_ritiro = '2019-12-24'
)
t group by data_ritiro, descrizione
order by data_ritiro, descrizione";
$risultati = mysql_query($query, $link);
var_dump($risultati);
echo "<br /><br />";
$num = mysql_num_rows($risultati);
echo $num."<br /><br />";
$i = 0;
?>
<table border="3" cellspacing="2" cellpadding="2">
<tr>
<th><font face="Arial, Helvetica, sans-serif">N.Ordine</font></th>
<th><font face="Arial, Helvetica, sans-serif">Nome</font></th>
<th><font face="Arial, Helvetica, sans-serif">Cognome</font></th>
<th><font face="Arial, Helvetica, sans-serif">Recapito</font></th>
<th><font face="Arial, Helvetica, sans-serif">Data Ritiro</font></th>
<th><font face="Arial, Helvetica, sans-serif">Ordine 1</font></th>
<th><font face="Arial, Helvetica, sans-serif">Quantita'</font></th>
<th><font face="Arial, Helvetica, sans-serif">Ordine 2</font></th>
<th><font face="Arial, Helvetica, sans-serif">Quantita'</font></th>
<th><font face="Arial, Helvetica, sans-serif">Ordine 3</font></th>
<th><font face="Arial, Helvetica, sans-serif">Quantita'</font></th>
<th><font face="Arial, Helvetica, sans-serif">Ordine 4</font></th>
<th><font face="Arial, Helvetica, sans-serif">Quantita'</font></th>
<th><font face="Arial, Helvetica, sans-serif">Note</font></th>
</tr>
<?php
$i = 0;
while ($i < $num) {
$id = mysql_result($risultati, $i, "id");
$nome = mysql_result($risultati, $i, "nome");
$cognome = mysql_result($risultati, $i, "cognome");
$recapito = mysql_result($risultati, $i, "recapito");
$data_ritiro = mysql_result($risultati, $i, "data_ritiro");
$descrizione1 = mysql_result($risultati, $i, "descrizione1");
$quantita1 = mysql_result($risultati, $i, "quantita1");
$descrizione2 = mysql_result($risultati, $i, "descrizione2");
$quantita2 = mysql_result($risultati, $i, "quantita2");
$descrizione3 = mysql_result($risultati, $i, "descrizione3");
$quantita3 = mysql_result($risultati, $i, "quantita3");
$descrizione4 = mysql_result($risultati, $i, "descrizione4");
$quantita4 = mysql_result($risultati, $i, "quantita4");
$note = mysql_result($risultati, $i, "note");
?>
<tr>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $id;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $nome;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $cognome;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $recapito;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $data_ritiro;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $descrizione1;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $quantita1;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $descrizione2;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $quantita2;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $descrizione3;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $quantita3;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $descrizione4;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $quantita4;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $note;?></font></td>
</tr>
<?php
$i++;
}
?>
</table>
</body>
<a href="form.php?pwd=123456789" class="buttom">Torna a Insermento Ordini</a>
</html>
non so dove mettere la testa
questo e la pagina:


resource(4) of type (mysql result)

4


Warning: mysql_result(): id not found in MySQL result index 4 in D:\inetpub\webs\...................php on line 46

Warning: mysql_result(): nome not found in MySQL result index 4 in D:\inetpub\webs\...................php on lineon line 47

Warning: mysql_result(): cognome not found in MySQL result index 4 in D:\inetpub\webs\...................php on lineon line 48

Warning: mysql_result(): recapito not found in MySQL result index 4 in D:\inetpub\webs\...................php on line on line 49

Warning: mysql_result(): descrizione1 not found in MySQL result index 4 in D:\inetpub\webs\...................php on line on line 51

Warning: mysql_result(): quantita1 not found in MySQL result index 4 in D:\inetpub\webs\...................php on line on line 52

Warning: mysql_result(): descrizione2 not found in MySQL result index 4 in D:\inetpub\webs\...................php on lineon line 53

Warning: mysql_result(): quantita2 not found in MySQL result index 4 in D:\inetpub\webs\...................php on lineon line 54

Warning: mysql_result(): descrizione3 not found in MySQL result index 4 in D:\inetpub\webs\...................php on lineon line 55

Warning: mysql_result(): quantita3 not found in MySQL result index 4 in D:\inetpub\webs\...................php on line on line 56

Warning: mysql_result(): descrizione4 not found in MySQL result index 4 in D:\inetpub\webs\...................php on line on line 57

Warning: mysql_result(): quantita4 not found in MySQL result index 4 in D:\inetpub\webs\...................php on line on line 58

Warning: mysql_result(): note not found in MySQL result index 4 in D:\inetpub\webs\...................php on lineon line 59


N.Ordine Nome Cognome Recapito Data Ritiro Ordine 1 Quantita' Ordine 2 Quantita' Ordine 3 Quantita' Ordine 4 Quantita' Note
2019-12-24
2019-12-24
2019-12-24
2019-12-24
Torna a Insermento Ordini
 
Ultima modifica:

bipolare75

Utente Attivo
15 Set 2019
37
0
6
Buongiorno,ho risolto
ho dovuto modificare il mio codice:
PHP:
<?php
$link = mysql_connect("xxxx", "xxxx", "xxxx");
mysql_select_db("xxxx", $link);
$query = "select data_ritiro, descrizione, sum(quantita) as quantita from(
select data_ritiro, descrizione1 as descrizione, quantita1 as quantita
from Ordini where descrizione1 is not null and quantita1 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione2 as descrizione, quantita2 as quantita
from Ordini where descrizione2 is not null and quantita2 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione3 as descrizione, quantita3 as quantita
from Ordini where descrizione3 is not null and quantita3 > 0 and data_ritiro = '2019-12-24'
UNION ALL
select data_ritiro, descrizione4 as descrizione, quantita4 as quantita
from Ordini where descrizione4 is not null and quantita4 > 0 and data_ritiro = '2019-12-24'
)
t group by data_ritiro, descrizione
order by data_ritiro, descrizione";
$risultati = mysql_query($query, $link);
var_dump($risultati);
echo "<br /><br />";
$num = mysql_num_rows($risultati);
echo $num."<br /><br />";
$i =0;
?>
<table border="3" cellspacing="2" cellpadding="2">
<tr>

<th><font face="Arial, Helvetica, sans-serif">Data Ritiro</font></th>
<th><font face="Arial, Helvetica, sans-serif">Descrizione</font></th>
<th><font face="Arial, Helvetica, sans-serif">Quantita'</font></th>

</tr>


<?php
$i = 0;
while ($i < $num) {

$data_ritiro = mysql_result($risultati, $i, "data_ritiro");
$descrizione = mysql_result($risultati, $i, "descrizione");
$quantita = mysql_result($risultati, $i, "quantita");


?>
<tr>

<td><font face="Arial, Helvetica, sans-serif"><?php echo $data_ritiro;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $descrizione;?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><?php echo $quantita;?></font></td>

</tr>
<?php
$i++;
}
?>
</table>
</body>

</html>
ora sei io volessi poter scegliere la data invece che solo il 24-12-2019 come posso fare?
Grazie per il tempo e l'impegno dedicato
 

marino51

Utente Attivo
28 Feb 2013
2.741
141
63
Lombardia
nella pagina dove avvii il report chiedi la data, che passi allo script soprastante,
volendo dare un nome php alla data, $dataSelezione, sostituisci il valore con la variabile appena definita
Codice:
from Ordini where descrizione1 is not null and quantita1 > 0 and data_ritiro = '".$dataSelezione."'
te lo scrivo "in lettere" così non ti sbagli,
apice virgolette punto $dataSelezione punto virgolette apice

visto che nel db hai definito la data come text, ti conviene gestirla come aaaa-mm-gg
con un formato diverso, potresti incorrere in guai soprattutto se selezioni un periodo da - a