Trattare con i form

MaNDraKe32

Nuovo Utente
31 Mag 2008
14
0
0
Salve a tutti mi sono appena iscritto e ho gia un gran problema...Premetto che sono alle primissime armi con php e il più delle volte non so bene di cosa si parla...comunque vi espongo il mio problema...Ho una pagina che visualizza la data e il titolo di una tabella cliccando su una di questi titoli vado a finire in una pagina dove si trova una form che mi fa riscrivere l'articolo...io poi lo invio ad un file ke dovrebbe fare l'update sulla mia tabella ma mi dice in continuazione che l'articolo non ha avuto successo,questo perchè gli ho messo questo controllo...vi riporto il file:
<?
include ("config.inc.php");
$id=$_GET[id];
$titolo=$_GET[titolo];
$testo=$_GET[testo];
$query = "UPDATE news SET titolo = $titolo, testo = $testo, WHERE id =$id";

if (mysql_query($query, $db))
echo "L'articolo è stato modificato correttamente";
else
echo "Errore durante la modifica dell'articolo";
//chiudo la connessione con mysql
mysql_close($db) or die ("Non riesco a chiudere la connessione con MySQL");
?>
<a href="modify.php">Ritorna alla pagina di modifica</a>

Vi prego perchè non so più come fare
Ringrazio tutti in anticipo:dipser:
 
prova a modificare nel seguente modo la query


$query = "UPDATE news SET titolo = '".$titolo."', testo = '".$testo."', WHERE id ='".$id."'";

cioè racchiudere tra apici = ' ".$variabile." '
 
Sei stato gentilissimo ma sinceramente non è successo nulla di chè...o meglio ti riporto il problema:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id ='£id'' at line 1

ho aggiunto questo nel codice echo mysql_error(); ma ti dirò che dubito di me stesso...

Forse l'errore sta tutto nel passaggio dei dati,può essere?
<?
include("config.inc.php");
$id=$_GET['id'];
$query = "SELECT id,titolo,testo FROM news WHERE id=$_GET[id]";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
?> </p>
<form method="get" action="save2.php">
<p>&nbsp;&nbsp;<strong>Inserisci il titolo della News :</strong></p>
<p>
<input name="titolo" type="text" id="titolo" width="600" value="<?php echo $row['titolo']; ?>" />
</p>
<p>

</p>
<p>&nbsp;&nbsp;<strong>Inserisci il testo della News :</strong></p>
<p>
<textarea name="testo" cols="97" rows="10"><? echo $row['testo']; ?></textarea>
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>
<label></label>
&nbsp;
<label></label>
<input name="Modifica_News" type="submit" id="Modifica News" value="Modifica News" />
<br />
&nbsp;</p>
</form>
<?
mysql_close($db);
?>

Spero mi riesca a dare una mano perchè sono nei guai...cordiali saluti
 
sembra che l'errore derivi da get[id]

prova ad inserire

include("config.inc.php");
$id=$_GET['id'];

echo"<br> il valore di id=".$id."<br>";


$query = "SELECT id

e guarda cisa contiene id

e racchiudi sempre tra apici '



"SELECT id,titolo,testo FROM news WHERE id= ' ".$_GET[id]." ' ";
 
Ciao senti quel $_GET proviene da una pagina che almeno in teoria prende tutti i titoli e le date e le visualizza a schermo permettendo la visualizzazione sulla pagina seguente...ti riporto il codice
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ecosportello..::Modificare le news</title>
<style type="text/css">
<!--
.style1 {
color: #000000;
font-weight: bold;
}
.style2 {color: #000000}
-->
</style>
</head>

<body>
<table width="794" height="699" border="1" align="center" bordercolor="#aca899" bgcolor="#c1e7e8">
<tr>
<td height="693" valign="top"><table width="794" height="150" border="0">
<tr>
<td valign="top"><img src="../img/logoCorretto.jpg" width="788" height="150" /></td>
</tr>
</table>
<table width="794" border="1" bordercolor="#aca899">
<tr>
<td>&nbsp;&nbsp;<a href="Ecosportello.php" class="style1">Home</a> : <a href="pannello.php" class="style1">Pannello di controllo</a> : <a href="News.php" class="style1">News</a> : <strong>Modificare le News</strong> </td>
</tr>
</table>
<table width="794" border="0">
<tr>
<td height="500" valign="top"><p>&nbsp;</p>

<p>
<?
include("config.inc.php");
if (!isset($start) OR $start<0)
$start=0;
$step = 20;
$query = "SELECT id,data,titolo FROM news ORDER BY data DESC LIMIT $start,$step";
$result = mysql_query($query, $db);
while ($row = mysql_fetch_array($result))
{
echo "<a href=\"edit_ok.php?id=$row[id]\">" . date("j/n/y", $row[data]) . " - $row[titolo]</a><br>"; ?>
</p>
<p>
<?
}
?>
<br>
</p>
<table width=90% border=0><tr>
<td width=20% align=left>
<?
if ($start>0)
{ $start_back = $start - $step;
echo "<a href=modify.php?start=$start_back>precedenti</a>";
}
?> </td>
<?
$query = "SELECT count(*) AS tot FROM news";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
$pages = intval(($row[tot]-1) / $step)+1;
?>
<td width=60% align=center><p><?
for ($i=0; $i<$pages AND $i<20; $i++)
{ $start_page = $i * $step;
echo "<a href=modify.php?start=$start_page>" . ($i+1) . "</a> ";
}
?>
</p>
</td>
<td width=20%>
<?
if ($start + $step < $row[tot])
{ $start_next = $start + $step;
echo "<a href=modify.php?start=$start_next>successivi</a>";

}

//chiudo la connessione con mysql
mysql_close($db) or die ("Non riesco a chiudere la connessione con MySQL");
?></td>
</tr></table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

Ora non so dirti se va bene ma da qui prende il tutto...
Ho provato tutti altri aiuti ma non funzionano...forse l'errore sarà in questa pagina sopra elencata...
Aiutatemi vi prego
 
E' cannata la query, così dovrebbe funzionare:
PHP:
$query = "UPDATE news SET titolo = '" . $titolo . "', testo = '" . $testo . "' WHERE id = '" . $id . "';";
 
la riga che trasmette sembrerebbe ok

PHP:
echo "<a href=\"edit_ok.php?id=$row[id]\">" . date("j/n/y", $row[data]) . " - $row[titolo]</a><br>";

ti posso consigliare di mettere degli echo che poi commenterai e eliminerai

per segure passo passo la variabile
potresti ed es. schivere

echo "<pinco pallo=\"edit_ok.php?id=$row[id]\">" . date("j/n/y", $row[data]) . " - $row[titolo]</a><br>";

in modo che ti stampi quello che stai trasmettendo effettivamente
 
Ringrazio tutti per il grande aiuto adesso tutto va come dovrebbe andare...c'è solo un problema che a questo punto non capisco...Perchè se il messaggio mi dice che è andato tutto bene la news cambiata non si cambia in realtà?
Credetemi va veramente bene, ma la news non si cambia come si può fare?
 
guarda direttamente con msqladmin nella tabella e verifica se è cambiata,
una volta sono impazzito ma dovevo solo dare l'aggiorna alla pagina
 
Allora ho provato a mettere or die(mysql_error()); in due posti:

il primo vicino alla chiusura del database:
<?php
include ("config.inc.php");
$id=$_GET[id];
$titolo=$_GET[titolo];
$testo=$_GET[testo];
$query = "UPDATE news SET titolo = '" . $titolo . "', testo = '" . $testo . "' WHERE id = '" . $id . "';";

if (mysql_query($query, $db))
echo "L'articolo è stato modificato correttamente";
else
echo "Errore durante la modifica dell'articolo";
echo mysql_error();
//chiudo la connessione con mysql
mysql_close($db) or die(mysql_error());
?>
<a href="modify.php">Ritorna alla pagina di modifica</a>

ma qui non succede niente tutto ok...mentre mettendolo vicino all' if:

if (mysql_query($query, $db)) or die(mysql_error());

mi da questo errore:
Parse error: syntax error, unexpected T_LOGICAL_OR in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\ecosportello\privacy\save2.php on line 8

ora non so se devo fare qualcos'altro
 
Ho provato ad aggiornare il tutto anche da phpmyadmin maniente sembre la stessa cosa...sto provando anche io ma niente non esce il problema...vi prego fatemi sapere appena potete...:dipser:
 
PHP:
$mysql_query = mysql_query($query, $db) or die(mysql_error());
if ($mysql_query)
echo "L'articolo è stato modificato correttamente";
ecc.....
 
togli quel ; non centra niente

$query = "UPDATE news SET titolo = '" . $titolo . "', testo = '" . $testo . "' WHERE id = '" . $id . "';";

ciao e buonanotte:dormo:
 

Discussioni simili