Newsgroup: it.comp.www.php
Titolo: funzione $_GET ed altro

Salve  a  tutti, premetto  che  sono  un  newbissimo  di php4  e  mysql.
Ho  un  rompicapo  da  sottoporre  alla vs  attezione  :  ho  creato  un
database com  mysql per un  piccolo negozio in  cui la table  è composta
da  :      id,rimanenza,articolo,descrizione,fornitore,ditta,costo,note.
L'inserimento dei dati  avviene tramite form che  funziona benissimo; ma
ora vorrei procedere all'aggiornamento solo della rimanenza in magazzino
tramite il comando update ma lo script che ho fatto non funziona nel
senso che non mi riconosce l'id e mi da  il messaggio di errore.
Ed ecco lo script :
<?
//aggiorna.php
include ("top_foot.inc.php");
include ("config.inc.php");
sopra();
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file
config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. verificare i parametri nel
file config.inc.php");
$id = $_GET['id'];
$rimanenza = $row[rimanenza]--; //dovrebbe decrementare di una unità il
valore iniziale
$query ="UPDATE magazzino SET rimanenza=$rimanenza WHERE id='$id'";
if (mysql_query($query, $db))
echo "L'articolo è stato aggiornato correttamente";
else
echo "Errore nell'aggiornamento";
mysql_close($db);
sotto();
?>
Grazie per l'attenzione.
-- 
enzo sorice

ma $_GET['id'] e' popolato?
prova un print_r($_GET)
giusto per stare tranquilli :-)
ciao,
~omar


 giusto per stare tranquilli :-)
Nessuna variazione.
-- 
enzo sorice

 ha scritto nel messaggio
news:b9koi4$vsg$1...@lacerta.tiscalinet.it...

Significa che non hai passato nessuna informazione tramite GET.
Controlla che il form abbia l'impostazione action="get" e non action="post"
oppure cambia, nel tuo script, $id = $_GET['id']; in $id = $_POST['id'];
E poi $row[rimanenza] da dove viene? Lo leggi nel db suppongo, ma allora
invece di leggere, decrementare e scrivere non ti conviene scrivere
direttamente con:
UPDATE magazzino SET rimanenza=rimanenza-1 WHERE id='$id'
Ovvio che devi essere sicuro che rimanenza > 0, ma penso che tu lo sia visto
che non hai inserito tale test nello script.
Ciao,
Luca

 Ovvio che devi essere sicuro che rimanenza > 0, ma penso che tu lo sia visto
Volendo: 
UPDATE magazzino SET rimanenza=rimanenza-1 WHERE id='$id' AND rimanenza!=0


Piccola? Grossa svista :-P
Luca

>action="nomescript.php"
Scusate se insisto ma il risultato non cambia.
queste sono le righe relative al form:
<form method=get  action=aggiorna.php>
Aggiorna Rimanenza
<input type=submit size=7 value=Aggiorna>
e questo è lo script aggiorna.php:
?
//aggiorna.php
include ("top_foot.inc.php");
include ("config.inc.php");
sopra();
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file
config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. verificare i parametri nel
file config.inc.php");
$id = $_REQUEST['id'];
print_r($_GET);
$query ="UPDATE magazzino SET rimanenza=rimanenza-1 WHERE id='$id'";
if (mysql_query($query, $db))
echo "L'articolo è stato aggiornato correttamente";
else
echo "Errore nell'aggiornamento";
mysql_close($db);
sotto();
?>
il risultato ha subito solo una modifica da quando ho inserito la riga
print_r($GET) e cioè:
Array ( ) L'articolo è stato aggiornato correttamente.
Saluti e vi prometto che non vi tedierò ancora. :-))
--
enzo sorice


Da quello che hai scritto sembra che non passi l'id dell'articolo (e inoltre
che non hai chiuso il tag form).
Prova ad usare questo form:
<form method="get" action="aggiorna.php">
Id articolo: <input type="text" name="id" size="7" value=""><input
type="submit" value="Aggiorna">
</form>
Luca

 Luca
Grazie !! Va benissimo (anche se devo inserire l'id dell'articolo da
aggiornare).
-- 
enzo sorice