ciao a tutti, premetto che sono un novizio nella programmazione e stavo cercando di costruire un form per selezionare dati dal database, uno per inserirli ed uno per modificarli. Per fare un po di pratica partendo dal semplice e poi passare a cose un po più complicate.
Il form per la selezione funziona correttamente, quello per l'inserimento no.
Posto a seguito il codice:
PRIMA PAGINA
<html>
<body>
<?php
include ("./consel.php");
function caratteri($str){
$str=urldecode($str);
$str=stripslashes($str);
$str=htmlspecialchars($str);
return($str);
}
$sql="SELECT marca FROM marca";
$produttori=mysql_query($sql,$connessione);
$nrighe=mysql_num_rows($produttori);
if ($nrighe == 0) {
echo ("informazioni non trovate");
} else {
#record trovati
echo "<FORM METHOD=GET ACTION=\".\insert_it.php\">";
$codice=caratteri($codice);
$descrizione=caratteri($descrizione);
$prezzo=caratteri($prezzo);
$costo=caratteri($costo);
$quantità=caratteri($quantità);
$fornitore=caratteri($fornitore);
$immagine=caratteri($immagine);
echo "<br>Inserisci articolo<br>";
echo "<br>codice<br><input type=\"text\" name=\"codice\" value=\"$codice\"><br>";
echo "<br>descrizione<br><textarea name=\"descrizione\" value=\"$descrizione\" cols=\"45\" rows=\"5\"></textarea><br>";
echo "<br>prezzo<br><input type=\"text\" name=\"prezzo\" value=\"$prezzo\"><br>";
echo "<br>costo<br><input type=\"text\" name=\"costo\" value=\"$costo\"><br>";
echo "<br>quantità<br><input type=\"text\" name=\"quantità\" value=\"$quantità\"><br>";
echo "<br> Seleziona un fornitore:<br><SELECT NAME=\"$fornitore\">";
while ($riga=mysql_fetch_array($produttori))
{
$fornitore=$riga['marca'];
echo "<br><option>$fornitore";
}
echo "</select>";
echo "<br>immagine<br><input type=\"text\" name=\"immagine\" value=\"$immagine\"><br>";
}
echo "<br><input type=\"submit\" value=\"inserisci\"><br>";
echo "</form>";
echo "<form method=get action=\"$PHP_SELF\">";
echo "<br><input type=\"submit\" value=\"Cancella\"><br>";
mysql_close($connessione);
?></form>
SECONDA PAGINA
<?php
#insert_it.php
include ("./consel.php");
function protect_it($str) {
$str=stripslashes($str);
$str=urlencode($str);
return($str);
}
$errore=false;
if ($codice == " "){
$errore=true;
echo "Devi inserire il codice<br>";
}
if ($descrizione == " ") {
$errore=true;
echo "Devi inserire la descrizione<br>";
}
if ($prezzo == " ") {
$errore=true;
echo "Devi inserire il prezzo di acquisto<br>";
}
if ($costo == " ") {
$errore=true;
echo "Devi inserire il prezzo di vendita<br>";
}
if ($quantità == " ") {
$errore=true;
echo "Devi inserire la quantità<br>";
}
if ($fornitore == " ") {
$errore=true;
echo "Devi inserire il fornitore<br>";
}
if ($immagine == " ") {
$errore=true;
echo "Devi inserire l\'immagine<br>";
}
if ($errore) {
$codice=protect_it($codice);
$descrizione=protect_it($descrizione);
$prezzo=protect_it($prezzo);
$costo=protect_it($costo);
$quantità=protect_it($quantità);
$fornitore=protect_it($fornitore);
$immagine=protect_it($immagine);
echo "<br><A HREF=\"insert_articolo.php?codice=$codice&descrzione=$descrizione&prezzo=$prezzo&costo=$costo&quantità=$quantità&fornitore=$fornitore&immagine=$immagine\">indietro</A>";
exit;
}
$sql="INSERT INTO articolo (codice,descrizione,prezzo,costo,quantità,fornitore,immagine) VALUES ('$codice','$descrizione','$prezzo','$costo','$quantità','$fornitore','$immagine')";
if(!mysql_query($sql,$connessione)) {
echo"Errore, articolo non inserito. Torna indietro e prova di nuovo<br>";
exit;
} else {
#inserimento avvenuto con successo
echo "l'articolo <b>$codice<b/>è stato inserito correttamente";
echo "<br><a href=\"insert_articolo.php\"> indietro </a>";
}
?>
le tabelle del database interessate sono le seguenti:
Tabella articolo
id_art int(4) auto_increment primary key
codice varchar(20)
descrizione text
costo double(5,2)
prezzo double(5,2)
quantità int(3)
fornitore varchar(20)
immagine varchar(200)
Tabella marca
id_marca int(4) auto_increment primary key
marca varchar(20)
Non riesco a capire il perchè del malfunzionamento, magari è una cavolata o un errore dato da un concetto che non ho correttamente assimilato. Insomma se qualcuno ha un po di tempo da dedicarmi, glie ne sono grato.