Gestione uscita prodotti.

  • Creatore Discussione Creatore Discussione bitox
  • Data di inizio Data di inizio

bitox

Nuovo Utente
11 Dic 2012
20
0
0
Salve io ho un problema su cui mi sono arenato.
allora io sto costruendo un gestionale per un mercatino del libro usato.
Voglio ottenere un risultato inviando una query a mysql, dove inserendo un array di prodotti, mi restituisce quelli che sono presenti nel mio magazzino.

la query è questa:
codice:
Codice:
SELECT * FROM magazzino WHERE id_libro IN ( 2, 5, 8 )


ora quando faccio la query funziona ma mi restituisce tutte le occorrenze di id_libro, esiste un modo che mi permetta di ottenere solo un'occorrenza per ogni id_libro? fatemi sapere!
 
ciao
da quello che ho capito tu hai diversi record in cui o presente più volte nel campo id_libro lo stesso valore, giusto?
prova così
SELECT DISTINCT * FROM magazzino WHERE id_libro IN ( 2, 5, 8 )
o
SELECT * FROM magazzino WHERE id_libro IN ( 2, 5, 8 ) GROUP id_libro
al massimo non funzia
 
ciao
da quello che ho capito tu hai diversi record in cui o presente più volte nel campo id_libro lo stesso valore, giusto?
prova così
SELECT DISTINCT * FROM magazzino WHERE id_libro IN ( 2, 5, 8 )
o
SELECT * FROM magazzino WHERE id_libro IN ( 2, 5, 8 ) GROUP id_libro
al massimo non funzia

Ciao,
in questo modo estrai per ogni id_libro, il numero di records presenti nella tabella magazzino:

SELECT id_libro, count(*) FROM magazzino WHERE id_libro IN ( 2, 5, 8 ) GROUP id_libro

Ciao
Mik


A quick solution is a shortcut to troubleshooting
HolidaySoft.it - Gestionali, Database, SitiWeb
GarganoSapori.it - Olio ExtraVergine del Gargano
OsteriaORistorante.it - Crea la Vetrina per il tuo Ristorante!
 
ciao
scusa una domanda, prendo ad es un solo id_libro, se hai tre libi con id_libro = 2 nella tabella hai tre record?
es.
id_libro | titolo
2 | ventimila leghe sotto i mari
2 | ventimila leghe sotto i mari
2 | ventimila leghe sotto i mari
per cui usi quella query per sapere quanti libri con id_libro=2 hai in magazzino?
se è così a me sembra una tabella molto ridondante e non semplice da gestire
se non è così come non detto
 
in pratica devo compilare un ordine di uscita dei libri dal magazzino che ha suo interno può contenere più occorrenze di un libro con lo stesso id quindi.
La mia idea iniziale era di farmi restituire un solo id ingnorando quelli doppi, ma ora questa cosa non mi serve più in quanto quando il libro esce dal mio magazzino io devo accertarne le condizione e quindi definirlo "vendibile" allora mi conviene avere a disposizione tutti i record che mi restituisce la query
 
ciao
se fai una tabella del genere la gestione diventa molto semplice
Codice:
CREATE TABLE `magazzino` (
`id_libro VARCHAR( 25 ) NOT NULL ,
`titolo` VARCHAR( 100 ) NULL ,
`a_magazzino` INT( 9 ) NOT NULL DEFAULT '0',
`in_vendita` INT( 9 ) NOT NULL DEFAULT '0',
PRIMARY KEY ( `id_libro` )
) ENGINE = MYISAM ;
se poi ti interessa puoi aggiungere altri campi descrittivi e i campi data dei movimenti inserimento a magazzino, messi in vendita, venduto.
su una tabella del tipo puoi poi fare tutte le interrogazioni/modifiche/eliminazioni che vuoi
es per uno spotamento a vendita
PHP:
<?php
//dati di connessione
//tralascio le verifiche del caso es se a mag 0 non si puo spostare
if(isset($_POST['scarica'])){
	$id_libro=$_POST['id_libro'];
	$quanti=$_POST['quanti'];
	$query=mysql_query("UPDATE magazzino SET a_magazzino=a_magazzino-$quanti,in_vendita=in_vendita+$quanti WHERE id_libro='$id_libro'");
}
?>
sposta a vendita<br />
<form action="#" method="post">
<select name="id_libro">
<?php
$query=mysql_query("SELECT * FROM magazzino ORDER BY id_libro");
  while($riga=mysql_fetch_array($query){
  echo "<option value=\"".$riga['id_libro']."\">".$riga['id_libro']."</option>";
  }
?>
</select>
quanti: <input name="quanti" type="text" value="0" size="3"><br />
scarica
<input type="submit" name="scarica" value="scarica">
</form>
con una tabella simile, come detto, puoi fare tutte le interrogazioni che vuoi, se ad esempio il libro esce da in_vendita (venduto) uppi in meno la vendita e puoi fare un nuovo carico se la vendita è 0 o minore di un certo numero.

comunque ricordati di una cosa: non so se la tabella può fare per te, ma quando si fa un gestionale lo studio delle tabelle è tra le cose principali (anche perchè l'appetito vien mangiando e correggere poi è più complicato)
 
@Borgo ci possiamo sentire in MP o su skype addirittura! mi hai dato uno spunto al quale non avevo pensato, il mio problema e che io devo anche tracciare la provenienza del libro. Dici che mi basterebbe mettere in questa tabella anche chi lo ha venduto e chi lo ha acquistato?
 
ciao
no non do consulenze private, ma anche se un po' più lungo, proseguiamo qui, o meglio per facilitare la lettura puoi aprire un altro 3d specifico.
comunque per fare un discorso del genere devi postare
1) quali sono esattamente le operazioni che devi fare
es. carico a magazzino-> carico a vendita -> venduto
2) quali sono i dati che ti servono
es dati sul libro, dati sul venditore, dati sull'acquirente (ragione sociale di chi te lo vende o l'acquista?)
tutto qusto per rendere le tabelli non ridondanti, probabilmente ti servono più tabelle.
a titolo di esempio:
tabella movimenti (quale libro, tipo di movimento, data....)
tabella scheda_libro (titolo, autore, casa editrice, prezzo...)
tabella ragione_sociale (da chi acquisti e a chi vendi: nome, pIVA, indirizzo, tel...)
poi con varie join tiri fuori tutto quello che vuoi

la mia esperienza passata mi ha insegnato che un'ora spesa a ragionare con carta e matita (o qui su mrwm) fa guadagnare ore di lavoro in programmazione
quindi posta qello che devi fare e cosa ti serve che proviamo a buttare giu qualcosa
 

Discussioni simili