Newsgroup: it.comp.www.php
Titolo: Query UPDATE e variabile $id

Allora, ho controllato sul manuale e su google, sembra che io sia sulla 
strada giusta, ma per qualche strano motivo non riesco a far funzionare 
queste poche righe di codice......
Da un form in view.php passo alla pagina 1.php, con queste righe
echo "<form action=\"1.php?id=$id\">";
echo "<input type=hidden name=id_art value=$id_art>";
echo "<input type=submit name=submit value=\"Modifica\">";
echo "<input type=submit name=submit value=\"Cancella\">";
echo "</form>";
Da qui, passo alla pagina 1.php, che ripropone un form popolato dai dati 
del record e che si conclude con una scelta semplice...
<form method=post action="modifica1.php">
\\ righe di codice del form
<input type=hidden name=id_art value=$id_art>
<input type=submit name=submit value="Modifica">
<input type=reset name=reset value="Ricomincia">
La pagina modifica1.php dovrebbe essere così 
<?
include("dbconnect.php");
if ($submit == "Modifica");
{
    	$query = mysql_query("UPDATE bibliografia 
    	SET 
    	cognome1=\"$cognome1\"
    	, nome1=\"$nome1\" 
    	WHERE id_articolo='$id_art'") or
    	die (mysql_error());
}
else 
{
include("altrofile.php");
}
?>
l'errore che mi visualizza è 
Parse error: parse error in 
c:\programmi\easyphp\www\biblciografia\modifica1.php on line 14
se invece elimino l'istruzione if...else, non mi visualizza nessun errore, 
ma non mi aggiorna niente....
se elimino l'istruzione if...else e anche la condizione WHERE, mi aggiorna 
(ovviamente) tutti i record per quei due campi...
Mi rendo conto che sarà una piccola scemenza, ma non trovo il modo di 
risolvere l'errore. Dai manuali e da un paio di domande su google, ho visto 
che le risposte sono uguali ai tentativi che ho fatto io...... 
C'entra qualcosa il segno di unione con il punto? :-???
Ciao e grazie.
Marco Z.

 if ($submit == "Modifica");
                            ^  togli questo ;

     die (mysql_error());
prova così:
     mysql_query("UPDATE bibliografia
     SET
     cognome1='$cognome1',
     nome1='$nome1'
     WHERE id_articolo=$id_art") or
     die (mysql_error());

Jurgen Schwietering wrote:

ooops
:-)

 wrote in 
news:37dA8.127508$
SR5.3...@twister1.libero.it
:

tralascio la mia reazione quando ho visto il puntoevirgola....... :-X
e vi confermo che lo script gira, ma non aggiorna quei maledetti dati! :-(
nemmeno, come suggeriva punkarruso, con gli apici singoli invece che 
doppi... :-((
In quale altro inghippo sono andato a cacciarmi?!?

 In quale altro inghippo sono andato a cacciarmi?!?
fai una print dell'id per vedere se è valorizzato correttamente.
fai prima una select e print del record con quella clausola e vedi se 
ritorna almeno un record! magari ci sono dei caratteri blank che metti tra 
apicini.
fai delle print in giro per vedere se il flusso è corretto...
insomma, poi si dice che un debugger per PHP non serve!!
ciao

 ciao
parole sante! :-)
Marco Z.

 boh...
ARGGGGGGGGGGGGGGGGHHHHHHHHH! Ora impazzisco!
Vuoi sapere il top dei top?!?
Chiedendogli DOPO la query update di stampare la variabile $cognome1 mi 
scrive il valore corretto, ma se riaggiorno la pagina di visualizzazione 
dei record, col cavolo!!! Che cavolo devo fare, se non lo inserisce?!?
Oddio, voglio morì! :-)
Marco Z.

 wrote in message
news:Xns9202B75B...@130.133.1.4...

Prima del RIP posta il tuo codice, la definizione delle tabelle, ed alcuni
dati rappresentativi. Dopo vediamo se ti compriamo una cassa di legno.

 dati rappresentativi. Dopo vediamo se ti compriamo una cassa di legno.
ROTLF!
--
CIAO!
Gusher.

 Gusher.
c'è mica da ridere! ;-D
Marco Z.

 legno. 
Allora, faccio una doppia premessa:
1) GRAZIE.
2) Scusate se il codice è alquanto "grezzo", mi sto impratichendo... :-(
E ora vai con la definizione della tabella (viola tutte le regole di 
normalizzazione, lo so, ma a me va bene così, per ora)....
Bibliografia 
id_articolo       int(11)  UNSIGNED      	Not null      auto_increment    
cognome1       	varchar(30)             Not null
nome1       	varchar(20)           	Not null          
cognome2       	varchar(30)        	Null          
nome2       	varchar(20)         	Null
cognome3       	varchar(30)         	Null         
nome3       	varchar(20)         	Null
titolo       	tinytext         	    	Not null
contenuto       	tinytext        	    	Not null
volume       	tinyint(3)         	Not null
anno       	    	year(4)        	    	Null
pagine       	varchar(12)         	Null    	
possesso       	char(3)         	    	Not null          
commenti       	text         	    	Null      
Per quanto riguarda i dati, credo che i campi siano intuitivi, e comunque 
basterà fare la prova con uno solo di essi, chiamandolo xxx e volendolo 
aggiornare in xyz......
Ecco invece il maledetto codice usato, e le pagine in cui è diviso...
la pagina per l'inserimento dei dati è abbastanza inutile, direi... 
pagina dbconnect.php
------------------------
<?
mysql_connect("localhost","","") or
	die ("Impossibile accedere al database");
mysql_select_db("bibliografia") or 
	die ("Impossibile accedere al database");
?>
------------------------
pagina view.php
------------------------
<? include("dbconnect.php"); ?>
<h3>Visualizza bibliografia </h3>
<?
$result = mysql_query("SELECT * FROM bibliografia ORDER BY cognome1") or
die (mysql_error());
echo "<h3>Articoli</h3><p>";
while ($row=mysql_fetch_array($result))
{
echo $row["cognome1"];
echo " ";
if ($row["cognome2"] != null)
{ 
echo $row["cognome2"];
echo ", ";}
if ($row["cognome3"] != null)
{ 
echo ", ";
echo $row["cognome3"];
echo ", ";
echo $row["anno"];
}
else
{
echo $row["anno"];
}
echo "<br>";
echo $row["cognome1"];
echo " ";
echo $row["nome1"];
if ($row["cognome2"] != null && $row["cognome2"] == "et al.")
{ 
echo " <i>";
echo $row["cognome2"];
echo "</i>";
}
elseif ($row["cognome2"] != null && $row["cognome2"] != "et al.")
{ 
echo ", ";
echo $row["cognome2"];
echo " ";
echo $row["nome2"];
}
if ($row["cognome3"] != null)
{ 
echo ", ";
echo $row["cognome3"];
echo " ";
echo $row["nome3"];
}
echo ", \"";
echo $row["titolo"];
echo "\", ";
echo "<i>";
echo $row["contenuto"];
echo "</i>, ";
echo $row["volume"];
echo "</i>, ";
echo $row["anno"];
echo ", ";
echo "pp. ";
echo $row["pagine"];
echo "<br>\n";
echo "<b>Commenti:</b>";
echo $row["commenti"];
$id_art = $row["id_articolo"];
echo "<form action=\"1.php?id=$id\">";
echo "<input type=hidden name=id_art value=$id_art>";
echo "<input type=submit name=submit value=\"Modifica\">";
echo "<input type=submit name=submit value=\"Cancella\">";
echo "</form>";
echo "<br>\n";
echo "<br>\n";
}
mysql_free_result($result);
echo " ";
?>
-------------------
pagina 1.php
-------------------
<?
include("dbconnect.php");
$query = mysql_query("SELECT * FROM bibliografia WHERE 
id_articolo='$id_art'") or
die (mysql_error());
$row = mysql_fetch_array($query);
?>
<form method=post action="modifica1.php">
<table width="70%" border="1"><tr><td align="right">
<b>Collocazione:</b>
<input type=text size=20 name=collocazione value="<? echo 
"$row[collocazione]" ?>">
</td><tr>
<tr><td>
<b>Cognome autore 1: </b>
<input type=text size=30 name=cognome1 value="<? echo "$row[cognome1]" ?>">
<b>Nome autore 1: </b>
<input type=text size=20 name=nome1 value="<? echo "$row[nome1]" ?>"><br>
<b>Cognome autore 2: </b>
<input type=text size=30 name=cognome2 value="<? echo "$row[cognome2]" ?>">
<b>Nome autore 2: </b>
<input type=text size=20 name=nome2 value="<? echo "$row[nome2]" ?>"><br>
<b>Cognome autore 3: </b>
<input type=text size=30 name=cognome3 value="<? echo "$row[cognome3]" ?>">
<b>Nome autore 3: </b>
<input type=text size=20 name=nome3 value="<? echo "$row[nome3]" ?>"><hr>
<b>Titolo: </b>
<input type=text size=30 name=titolo value="<? echo "$row[titolo]" ?>"><br>
<b>In: </b>
<input type=text size=30 name=contenuto value="<? echo "$row[contenuto]" 
?>"><br>
<b>Volume: </b>
<input type=text size=10 name=volume value="<? echo "$row[volume]" ?>"><br>
<b>Anno: </b>
<input type=year size=4 name=anno value="<? echo "$row[anno]" ?>"><hr>
<b>Pagine: </b>
<input type=text size=10 name=pagine value="<? echo "$row[pagine]" ?>"><hr>
<input type=radio name=possesso value="si">Presente<br>
<input type=radio name=possesso value="no">Mancante<br>
<div align="top"><b>Commenti: </b>
<textarea cols=80 rows=10 wrap=virtual name=commenti value="<? echo 
"$row[commenti]" ?>"></textarea></div>
</p></td/></tr>
<tr><td>
<input type=hidden name=id_art value=$id_art>
<input type=submit name=submit value="Modifica">
<input type=reset name=reset value="Ricomincia">
</td/></tr>
</table>
----------------------------
pagina modifica1.php
---------------------------
<?
include("dbconnect.php");
if ($submit == "Modifica")
{
 
   	$query = mysql_query("UPDATE bibliografia 
    	SET 
    	cognome1='$cognome1'
    	, nome1='$nome1'
    	WHERE id_articolo='$id_art'") or
    	die (mysql_error());
}
else 
{
include("altrofile.php");
}
?>
-------------------------
Di nuovo, GRAZIE! Credo sia veramente un errore stupido, ma è un pomeriggio 
che perdo tempo a ricontrollare il codice e mi sembra sempre tutto uguale! 
:-(
Marco Z.
PS: per la cassa di legno, poi ci mettiamo d'accordo!

 <input type=hidden name=id_art value=$id_art>
che ne pensi di cambiarlo con:
<input type=hidden name=id_art value=<? echo $id_art ?> >
A volte conviene di guardarsi il codice html con View Source nel browser!
:-)

:-)
In effetti, pensavo che non avrei trovato la minima utilità, giacché il PHP 
è "invisibile", al browser.......
per curiosità, che ti spuntava fuori?
GRAZIE mille, mi mandi a letto tranquillo!
Marco Z.

 wrote in message
news:Xns9202DD32...@130.133.1.4...

Non lo so, ho solo letto il codice, cercando di capire cosa farebbe il PHP
ed il browser. A volte bisogna distanziarsi dal problema e cosi salta tutto
fuori... :)

 tutto fuori... :)
dai, non fare il modesto!!
quando si è i migliori si può anche esagerare!
;-)

 wrote in message
news:qprA8.131314$SR5.3...@twister1.libero.it...

Ho acceso qualche incenso, ho detto Ommmmmmm, e mi e' venuto
l'ispirazione...
:P

 
Jurgen, sei troppo forte! ;D
ByeZ,
Luke650.