calcoli su valori di tabelle diverse

  • Creatore Discussione Creatore Discussione akab
  • Data di inizio Data di inizio

akab

Nuovo Utente
23 Lug 2015
9
0
0
Ciao a tutti, sono agli inzi con php e sto cercando di fare un piccolo programma che mi aiuti nella mia attività, ma non riesco a venire fuori da una cosa che all'inizio mi sembrava abbastanza semplice ma che evidentemente per me non lo è ... :crying:

Ho due tabelle:

ARTICOLI:
articolo
qt_articolo
reso
(contenente soltanto 3 articoli: “A” id1 “B” id2 “C”id3)
CLIENTI:
dati anagrafici
fornitura A
fornitura B
fornitura C

Quando, in una certa data ho un appuntamento con un cliente, immetto nei form corrispondenti le quantità delle forniture relative agli articoli di cui ha bisogno (es: art A = 5, art B =15, art C= 7) .
A questo punto, tramite una query di tipo INSERT questi valori vengono memorizzati nella tabella ‘clienti’ alla data dell’appuntamento.

La domanda è: Come posso fare in modo che, oltre all’inserimento nella tabella ‘clienti’ i dati relativi alle forniture degli articoli A,B,C vadano a sottrarsi nei relativi campi della tabella ‘articoli’ scalando così le qt_articolo ?

Ho fatto un'infinità di tentativi, ma niente

qualcuno puo' aiutarmi ? grazie 1000...
 
ciao
così a naso, immagino che tu abbia un form con cui tu inserisca le forniture del cliente e che quindi tu abbia la quantità e l'id dell'articolo da inserire nella fornitura
giusto?
quindi in qualche punto tu abbia (ti schematizzo)
PHP:
<?php
$id_clente=$_POST['clente'];
$id_articolo_A=$_POST['articolo_a'];
$quantita_A=$_POST['quantita_a'];
//analogo per B e C
//quindi fai l'insert in clienti
//e uppi la tabella aricoli
$query ="UPDATE articoli SET qt_articolo=qt_articolo-$quantita_A WHERE articolo=$id_articolo_A";
//ecc...
?>
certo inoltre dovresti fare gli opportuni controlli, es che tu abbia l'articolo A (quantità > 0) e che quanto dai al cliente sia minore uguale alla quantità che hai in tabella articoli
comunque per capirsi meglio posta un po' di codice che stai facendo
 
ciao
così a naso, immagino che tu abbia un form con cui tu inserisca le forniture del cliente e che quindi tu abbia la quantità e l'id dell'articolo da inserire nella fornitura
giusto?
quindi in qualche punto tu abbia (ti schematizzo)
PHP:
<?php
$id_clente=$_POST['clente'];
$id_articolo_A=$_POST['articolo_a'];
$quantita_A=$_POST['quantita_a'];
//analogo per B e C
//quindi fai l'insert in clienti
//e uppi la tabella aricoli
$query ="UPDATE articoli SET qt_articolo=qt_articolo-$quantita_A WHERE articolo=$id_articolo_A";
//ecc...
?>
certo inoltre dovresti fare gli opportuni controlli, es che tu abbia l'articolo A (quantità > 0) e che quanto dai al cliente sia minore uguale alla quantità che hai in tabella articoli
comunque per capirsi meglio posta un po' di codice che stai facendo

Ciao, ti posto un po di codice
ma riguardandolo adesso ho notato anche che dopo gli ultimi tentativi di ieri notte devo aver combinato qualche casino e adesso non mi passa più neanche i valori di "articoli"

non so più che fare ....
cmq grazie tante per la disponibilità :-)

<?php


if (isset($_POST['submit']) && $_POST['submit']=="invia")
{
// RECUPERA DATI DAL FORM
$giorno = ($_POST['giorno']);
$mese = ($_POST['mese']);
$anno = ($_POST['mese']);;
// CREO DATA NEL FORMATO ANNO/MESE/GIORNO
$data= $anno."-".$mese."-".$giorno;
// RECUPERA DATI DAL FORM
$date = ($_POST['date']);
$azienda = addslashes($_POST['azienda']);
$titolo = addslashes($_POST['titolo']);
//$data = ($_POST['data']);
$provincia = addslashes($_POST['provincia']);
$comune = addslashes($_POST['comune']);
$tel = addslashes($_POST['tel']);
$tel2 = addslashes($_POST['tel2']);
$forn_bracc = addslashes($_POST['forn_bracc']);
$forn_coll = addslashes($_POST['forn_coll']);
$forn_orecc = addslashes($_POST['forn_orecc']);
$articolo = addslashes($_POST['articolo']);
$qt_articolo = addslashes($_POST['qt_articolo']);
$difettosi = addslashes($_POST['difettosi']);

$testo = addslashes($_POST['testo']);
$str_data = strtotime($_POST['data']);






include 'config.php';

$sql = "INSERT INTO appuntamenti (date, azienda, titolo, provincia, comune, tel, tel2, testo, forn_bracc, forn_coll, forn_orecc, articolo, qt_articolo, str_data ) VALUES ('$date', '$azienda', '$titolo', '$provincia', '$comune', '$tel', '$tel2', '$testo', '$forn_bracc', '$forn_coll', '$forn_orecc', '$articolo', '$qt_articolo', '$str_data')";
if($result = mysql_query($sql) or die (mysql_error()))
{
echo "Inserimento avvenuto con successo.<br>
Vai al <a href=\"index.php\">Calendario</a>";
}
}else{


?>

<?

include 'config.php';

$articolo = addslashes($_POST['articolo']);
$qt_articolo = addslashes($_POST['qt_articolo']);

//query mysql
$sql = "SELECT * FROM articoli WHERE id = 1"
if($result = mysql_query($sql) or die (mysql_error()))

<table width="439" border="2" align="center" bordercolor="#000000">

<tbody>
<tr>
<td height="31" style="text-align: center">&nbsp;</td>
<td style="text-align: center">&nbsp;</td>
<td width="79" style="text-align: center">&nbsp;</td>
</tr>
<tr>
<td width="110" style="text-align: center"><? echo $record['articolo'] ?></td>
<td style="text-align: center"><? echo $record['qt_articolo'] ?></td>
<td style="text-align: center"><div align="center" class="Stile24"><? echo $record['difettosi'] ?></div></td>
<tr>
<td style="text-align: center">&nbsp;</td>
<td style="text-align: center">&nbsp;</td>
<td style="text-align: center">&nbsp;</td>
</tr>
</tbody>


<? } ?>


<?php

include 'config.php';

// RECUPERA DATI DAL FORM
$date = ($_POST['date']);
$titolo = addslashes($_POST['titolo']);
$forn_bracc = addslashes($_POST['forn_bracc']);
//$forn_coll = addslashes($_POST['forn_coll']);
//$forn_orecc = addslashes($_POST['forn_orecc']);
$articolo = addslashes($_POST['articolo']);
$qt_articolo = addslashes($_POST['qt_articolo']);
// $difettosi = addslashes($_POST['difettosi']);



QUI HO APPENA MESSO LA QUERY MODIFICATA CHE MI HAI SUGGERITO

$query ="UPDATE articoli SET qt_articolo=qt_articolo-$forn_bracc WHERE articolo=$id 1";
//ecc...
?>

</p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
 
ciao
facciamo un passo alla volta
PHP:
<?php
//***DA QUI
if (isset($_POST['submit']) && $_POST['submit']=="invia"){
	// RECUPERA DATI DAL FORM
	$giorno = $_POST['giorno'];
	$mese = $_POST['mese'];
	$anno = $_POST['mese'];//qui mi sembra che tu debba modificare in $anno = $_POST['anno'];
	// CREO DATA NEL FORMATO ANNO/MESE/GIORNO
	$data= $anno."-".$mese."-".$giorno;//è cos' es.? 2015-09-02 ?
	// RECUPERA DATI DAL FORM
	//ecc....
	$difettosi = addslashes($_POST['difettosi']);
	$testo = addslashes($_POST['testo']);
	$str_data = strtotime($_POST['data']);// a che ti serve? non hai già inserito la data?
	include 'config.php';//è meglio usare require_once "config-php";
	$sql = "INSERT INTO appuntamenti (date, azienda, titolo, provincia, comune, tel, tel2, testo, forn_bracc, forn_coll, forn_orecc, articolo, qt_articolo, str_data ) VALUES ('$date', '$azienda', '$titolo', '$provincia', '$comune', '$tel', '$tel2', '$testo', '$forn_bracc', '$forn_coll', '$forn_orecc', '$articolo', '$qt_articolo', '$str_data')";
	if($result = mysql_query($sql)){//forse meglio così
		echo "Inserimento avvenuto con successo.<br>Vai al <a href=\"index.php\">Calendario</a>";
	}else{
		die (mysql_error();//anche se sarebbe meglio un messaggio con poi ritorno automatico
	}
//***A QUI
}else{
//.....
?>
funziona?
anche se una domanda: ma quanti campi data usi? perchè date e poi anche str_data? e anche $date = ($_POST['date'])?
poi non so come inserisci la data (menù a tendina?) forse ti conviene verificarla prima con
bool checkdate ( $mese , $giorno , $anno ) potresti inserire per sbaglio 2015-02-31, il 31 di febbraio non esiste
ultime per ora cose prima di proseguire:
quando scrivi del codice racchiudilo tra gli appositi bccode (seconda riga formattazione del post ultime tre iconcine nell'ordine CODE, HTML, PHP) diventa più leggibile e, se necessario, separalo nella varie pagine
dimenticavo, se non è un errore di copy/paste, non usare gli short tag <? ma sempre <?php
 
str_data mi serve perchè mi richiama la data del prossimo appuntamento (il programma si apre con un calendario i cui giorni sottolineati sono quelli in cui ci sono i prossimi appuntamenti [str_data] e cliccandoci su si apre la scheda dell'appuntamento di cui ti ho postato un po di righe) e la scrivo col formato[gg-mm-aaaa] mentre la data odierna della visita al cliente (date) con un menu a tendina. Il codice che mi hai postanto (l'update) non funge :-) ma ho passato diverse notti a fare qualcosa del genere ma non funziona ... però prendilo col beneficio dell'inventario perche come ti dicevo nell'ultima notte devo aver cancellato qualcosa ed ora sulla pagina non riceve più i valori della TAB 'articoli' quindi penso sia per quello che non funge neanche l'update. cerco di rimetterla a posto e ti faccio sapere. Grazie per gli altri consigli. a presto
 

Discussioni simili