ciao
inizio a darti alcune indicazioni
io intanto farei due talbelle
1. tabella tipo di spesa
id_ts: int(6) autoincrement primary key | tipo: varchar(50)
2. tabella spese
id_sp: int(6) autoincrement primary key | id_ts: int(6) | data: varchar(10) | tipo: varchar(50) | costo: float(8,2)
in questo modo puoi mettere un nuovo tipo di spesa/modificarlo/eliminarlo e quando immetti e/o leggi i costi
sei sicuro (o almeno abbastanza) di non commettere errori e noterai l'id_ts comune
per prima cosa ti fai un form in una pagina per immettere il tipo di spesa (basta un campo di testo e il sub)
e la parte php per registrare
pag inserisci_tipo.php
PHP:
<?php
//dati di connessione
if(isset($_POST['Submit'])){
if(trim($_POST['tipo_spesa'])==""){
echo "non può essere vuoto";
}else{
//tratto la voce in modo che sia il piu confrontabile possibile
$tipo=addslashes(strtolower(trim($_POST['tipo_spesa'])));
$query=mysql_query("SELECT * FROM tipi_spesa WHERE tipo='$tipo'");
$esiste=mysql_num_rows($query);
if($esiste > 0){
echo "il tipo di spesa è gia esistente";
}else{
$query=mysql_query("INSERT INTO tipi_spesa(tipo) VALUES('$tipo')");
if($query){
echo "tipo di spesa salvato";
}else{
echo "c'è stato un errore";
}
}
}
}
?>
<!-- qui il form semplice per input tipo spesa -->
poi farai la parte html/php per inserire una spesa
pag inserisci_spesa.php
PHP:
<?php
//dati di connessione
if(isset($_POST['Submit'])){
/*non ti metto tutti i controlli che
sarebbero utili sui vari $_POST, soprattutto se lo script
dovesse essere usato da terzi
*/
$tipo_spesa=$_POST['Submit'];//qui ricevi es. 12|poste e telegrafi
//avendo inviato il dato in quel modo lo divido in due
$ex=explode("|",$tipo_spesa);
//es. in $ex[0] trovi 12 e in $ex[0] trovi poste e telegrafi
//e le trasformo in variabili semplice in modo da far meno fatica a scrivere poi la query
$id_tr=ex[0];
$tipo=ex[1];
$data=$_POST['data'];// devi assicurarti che sia nel formato aaaa-mm-gg
$spesa=$_POST['spesa'];//qui devi verificare che sia nella forma 000.00 col punto e non con la virgola decimale
//e finalmente la query di inserimento cioe un dato numerico di tipo float
$query="INSERT INTO spese(id_ts, data, tipo, costo) VALUES('$id_ts','$data','$tipo','$spesa')";
//qui mentre fai le prove puoi mettere un var_dump($query); in modo da vedere se è giusta
if(mysql_query($query)){
echo "$data tipo: $tipo di $spesa € è stata registrata";
}else{
echo "c'è stato un errore";
}
}
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ;?>" method="post">
seleziona tipo di spesa <select name="tipo">
<?php
$query=mysql_query("SELECT * FROM tipo_spesa ORDER BY tipo");
while($riga=mysql_fetch_array($query)){
//basterebbe tramettere l'id_ts , ma per comodità in seguito trasmetto anche la voce tipo
$val=$riga['id_ts']."|".$riga['tipo'];
echo "<option value=\"$val\">".$riga['tipo']."</option>";
}
?>
</select><br>
inserisci data e qui ti conviene un datapiker per essere sicuro di immettere aaaa-mm-gg <br>
inserisci costo <input name="spesa" type="text" value="0,00"> €<br>
<!-- potresti fare due piccoli campi di input uno per gli interi l'alro per i decimali che poi riunisci
nella parte php -->
<input type="submit" name="Submit" value="Invia">
</form>
se intanto metti a posto questo (se non l'ai già fatto) sei sicuro (abbastanza) di inputare i dati in modo che poi puoi fare tutte
le ricerche che vuoi (come ti indicherò nel prossimo post, abbi pazienza)