preventivi con php

Ciao  a tutti avrei bisogno di capire alcune cose sul metodo per creare un form che permetta di creare dei preventivi, ma sinceramente non ho la più pallida idea di come iniziare.

Mi conviene creare cmq una tabella in Mysql o posso farne a meno? e nel caso come la imposto ?

Grazie :-X

inviato 10 anni fa
bluesman70
X 0 X

Bhe devi prima di tutto fare una tabella degli atricoli con codice art, descrizione, prezzo. Poi più che un form ti serve un carello elettronico dove l'utente seleziona in base a una listra di oggetti la quantità e la inserisce nel preventivo....

 :bye:

risposto 10 anni fa
Marco Dario
X 0 X

Ma forse bluesman intendeva qualcosa di più semplice, tipo quei preventivi che vengono fuori dalla selezione di diverse opzioni presenti in un unico form.

E' così?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Sii infatti Gianni, hai intuito il problema. Pensavo di creare un semplice input senza bisogno di modifiche particolare. In pratica da un'articolo con descrizione il titolare può inserire un prezzo e in base alla quantità avere un totale.

Non serve in effetti un carrello della spesa.  :-\

risposto 10 anni fa
bluesman70
X 0 X

Anche se utilizzi solo un form per calcolare il preventivo, forse ti serve comunque conservare i prezzi degli articoli in una tabella MySQL.

QUando l'utente invia il form preleva dall'array $_POST gli articoli selezionati e le quantità. Ricava il prezzo degli articoli da MySQL e moltiplicalo per le quantità specificate.

Non credo ti serva altro.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Vediamo se ho ben capito e riesco a darti una mano...

Database

Tabella articoli

- id_articolo

- titolo_articolo

- descrizione_articolo

- prezzo_articolo

La query per creare questa tabella è questa:

CREATE TABLE `articoli` (
  `id_articolo` int(5) NOT NULL auto_increment,
  `titolo_articolo` varchar(200) NOT NULL default '',
  `descrizione_articolo` text NOT NULL,
  `prezzo_articolo` float NOT NULL default '0',
  PRIMARY KEY  (`id_articolo`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Visualizzazione degli articoli

Per quanto riguarda la visualizzazione degli articoli dipende da quanti ne hai. Anche la stessa tabella è creata per articoli con una sola categoria...la cosa più semplice...

In questa configurazione puoi visualizzare gli articoli in una sola pagina

<form action="invia_preventivo.php" method="post">
<?
//Istruzioni per la connessione al db

$result=mysql_query("SELECT * FROM articoli");
while ($row=mysql_fetch_array($result))
{
  ?><table><tr><td colspan=2><?=$row['titolo_articolo']?></td></tr>
<tr><td><?=$row['descrizione_articolo']?></td><td><b>Prezzo:<?=$row['prezzo_articolo']?></b><br>
Quantita:
<input type="text" name="<?=$row['id_articolo']?>" value="0"></td></tr></table><?
}
?>
<p align="center"><input name="invia" type="submit" value="Invia preventivo"></p>
</form>

Cerchiamo di spiegare alcune cose:

- Ho fatto visualizzare tutti gli articoli in una sola pagina perché da quello che hai scritto tu deve essere una cosa molto semplice

- Le quantità di ogni prodotto l'utente le inserirà in una casella di testo che ha come nome l'id dell'articolo questo per facilitare il recupero delle informazioni dall'array post.

Creazione del preventivo

I dati come si vede nel codice della pagina di visualizzazione vengono mandati ad un altra pagina che provvede a combinarli con i prezzi inseriti nel database.

<?
//Istruzioni per la connessione al db
if(isset($_POST['invia']))
{
     $totale=0;
     $somma_parziale=0;
     $result=mysql_query("SELECT * FROM articoli");
     while ($row=mysql_fetch_array($result))
     {
        $codice_articolo=$row['id_articolo'];
        $somma_parziale=$row['prezzo_articolo']*$_POST['$codicearticolo'];
        $totale=$totale+$somma_parziale;
     }
     ?><h1 align='center'>Il totale da pagare è di euro <?=$totale?></h1><?
}

Naturalmente l'esempio è molto cretino ma serve, secondo me, per far capire il funzionamento.

Migliorie che si possono apportare

In un post di un forum non si può inserire tutto.

Per questo motivo elenco qui sotto le migliorie che si possono apportare a questo script:

- Categorizzazione degli articoli (Inserendo una ulteriore tabella con tutte le categorie e un ulteriore campo all'interno della tabella articoli che punta ad uno dei record presenti nella tabella categorie)

- Visualizzazione di un totale per ogni articolo

- And much more...

Spero di esserti stato utile....io utilizzo questo sistema...un bel progettino semplice ma pratico.

A presto

risposto 10 anni fa
lorenzosfienti
X 0 X

Non so come ringraziarti ma questo è proprio quello che mi serviva sei stato grande e scusami se rispondo in ritardo  :bye: alla prima occasione spero di rendere il favore davanti a una buona birra  :bye:

risposto 10 anni fa
bluesman70
X 0 X

Un piccolo chiarimento al tuo script che mi ha risolto parechi "problemi".

Quando provo a lanciare il primo script ottengo questo msg da MYSQL:

Warning: Supplied argument is not a valid MySQL result resource in c:\progetto\articoli.php on line 10

dove si trova l'errore ??

risposto 10 anni fa
bluesman70
X 0 X

la query che precede quell'istruzione non va a buon fine (qualche errore nell'SQL?)

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Sinceramente Gianni non saprei perchè l'istruzione SQL è semplicemente una select della tabella articoli. :-\

risposto 10 anni fa
bluesman70
X 0 X

dopo la riga:

$result=mysql_query("SELECT * FROM articoli");

metti:

if (!$result) {  
    die("Errore nella query: " . mysql_error());  
}

che messaggio ricevi?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Grazie Gianni, problema risolto (banale) proprio da novizio, mi ero dimenticato di selezionare il db.

Grazie ancora ci risentiremo sicuramente :bye:

risposto 10 anni fa
bluesman70
X 0 X

Ancora un piccolo aiuto:

nel secondo script dove dovrebbe essere calcolato il preventivo non ottengo nessun tipo di risultato. ma semplicemente una pagina bianca senza nessun errore. Perchè  :wallbash:

Grazie ancora. Alessandro

risposto 10 anni fa
bluesman70
X 0 X

Ciao

Il codice di prima contiene un pò di errori (se non lo ha già modificato)

$somma_parziale=$row['prezzo_articolo']*$_POST['$codicearticolo'];

Qui c'è l'errore.. moltiplichi prezzo dell'articolo per il codice articolo...???

La query deve estrarre il prezzo dell'articolo che ti interessa e moltiplicarlo per la quantita inserita dall'utente

$result = mysql_query('SELECT id_articolo, descrizione, prezzo_articolo FROM tab_articoli WHERE id_articolo = '$_POST['id_articolo']'');

$row= mysql_facth_array($result)

$somma_parziale = $row['prezzo_articolo'] + $_POST['quantita'];
$totale += $somma_parziale;

Dimmi se ti serve altro! Comunque anche la prima parte riporta degli errori....

 :bye:

risposto 10 anni fa
Marco Dario
modificato 10 anni fa
X 0 X
$somma_parziale = $row['prezzo_articolo'] * $_POST['quantita'];
$totale += $somma_parziale;

moltiplicazione non somma scusami...

 :bye:

risposto 10 anni fa
Marco Dario
X 0 X

Qualcosa non funziona ancora. Ricevo questo messaggio di errore

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' e sembra legato al $_post. Infatti togliendolo non va in errore ma ovviamento non ottengo nessun resultato. Come versione di php utilizzo una versione 4.0

Grazie ancora.

risposto 10 anni fa
bluesman70
X 0 X

Puoi riportare per intero la pagina con tutto il codice?

 :bye:

risposto 10 anni fa
Marco Dario
X 0 X

Ecco il codice  "incriminato"

<?


// dati connessione db

if(isset($_POST['invia']))


{
     $totale=0;
     $somma_parziale=0;
     $result = mysql_query("SELECT id_articolo,descrizione_articolo, prezzo_articolo FROM $tabella WHERE id_articolo ="$_POST['id_articolo']");

$row= mysql_fetch_array($result);
 
$somma_parziale = $row['prezzo_articolo'] * $_POST['quantita'];
$totale = $somma_parziale;

}

?>
<h1 align='center'>Il totale da pagare è di euro <?=$totale?></h1>
risposto 10 anni fa
bluesman70
X 0 X

se al posto di $_POST['quantita'] scrivi un numero ad esempio 5

ES:

$somma_parziale = $row['prezzo_articolo'] * 5;
$totale = $somma_parziale;

Cosa ti da?

 :bye:

risposto 10 anni fa
Marco Dario
X 0 X

Purtroppo ho eseguito la prova come dal tuo esempio ma l'errore è esattamente lo stesso. :-[

risposto 10 anni fa
bluesman70
X 0 X

Allora andiamo per passi.....

     $totale=0;
     $somma_parziale=0;
     $result = mysql_query("SELECT id_articolo,descrizione_articolo, prezzo_articolo FROM $tabella WHERE id_articolo = '1'")or die ("Errore: ".mysql_error());

/* Dove 1 sta per un codice articolo valido */

$row= mysql_fetch_array($result);

echo $row['prezzo_articolo'];

 :bye:

risposto 10 anni fa
Marco Dario
X 0 X

Scusate per la risposta tardiva, ma proprio non ne vengo a capo help!

Se non utilizzo  $_POST ottengo solo la parte di msg del "prezzo da pagare"  senza l'importo e se utilizzo $_POST ottengo il solito errore sopra descritto. 

>:(

Grazie ancora e scusate per l'allungarsi di questo post.

Alessandro.

risposto 10 anni fa
bluesman70
X 0 X

Se non ti stampa niente neache se metti un valore dentro alla query non utilizando il form, allora il problema è sulla query

 :bye:

risposto 10 anni fa
Marco Dario
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda