Pagina 1 di 1

[PHP] Problema con QUERY UPDATE

Inviato: mercoledì 5 marzo 2008, 17:55
da Dando_Sando

Codice: Seleziona tutto

<?php
$titolo=$_POST['titolo'];
$testo=$_POST['corpo'];
$data=date("Y-m-d H:i:s");
$modifica=$_GET['required'];

if($_SESSION['name'] AND $modifica) {

if($data AND $testo AND $titolo) {
$connect=mysql_connect('localhost','nome_user','password_user') or die ("Connessione al database non riuscita");
mysql_select_db('prova',$connect) or die ("Connessione al database non riuscita");
 
mysql_query("UPDATE post SET tiolo_post='$titolo', corpo_post='$testo', data_post='$data' WHERE id_post='$modifica'") or die ("Errore nell'inserimento");
//print $titolo . $testo . $data . "<br />" . $modifica;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/XHTML1/DTD/XHTML1-strict.dtd">  
<html>
<body>
		<?php
			$connect=mysql_connect('localhost','nome_user','password_user') or die ("Connessione al database non riuscita");
			mysql_select_db('prova',$connect) or die ("Connessione al database non riuscita");
			$query=mysql_query("SELECT titolo_post,corpo_post FROM post WHERE id_post='$modifica'");
		?>  
  
  <div id="blog">
  <h2>Modifica un articolo</h2>
  <form method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
      <hr/>
      Titolo
	  <br />
	  <input type="text" name="titolo" size="50" value="<?php while ($riga=mysql_fetch_array($query)) {
	  		print $riga['titolo_post']; ?>" />
      <br /><br />
      Contenuto
	  <br />
      <textarea name="corpo" rows="20" cols="80"><?php	print $riga['corpo_post'];
			break;
	  	}?></textarea>
      <br />
      <input type="submit" value="Pubblica" />
	  <input type="reset" value="Cancella" />
  </form>
  </div>
</body>
</html>
Eseguendo questo script ottengo sempre Errore nell'inserimento.
Se invece decommento:

Codice: Seleziona tutto

//print $titolo . $testo . $data . "<br>" . $modifica;
i valori vengono stampati correttamente a video, quindi non credo sia un problema del form.

Potete aiutarmi?

Re: [PHP] Problema con QUERY UPDATE

Inviato: mercoledì 5 marzo 2008, 17:58
da nulll
posta l'errore...

cmq così a naso è che ti sei dimenticato l'escape sui testi nella query

Re: [PHP] Problema con QUERY UPDATE

Inviato: mercoledì 5 marzo 2008, 18:06
da Dando_Sando
Perchè l'escape?
Non ti ho capito.

Re: [PHP] Problema con QUERY UPDATE

Inviato: mercoledì 5 marzo 2008, 18:14
da Dando_Sando
Scusate, ho risolto.
Era un errore banalissimo.... :-[
:(

Re: [PHP] Problema con QUERY UPDATE

Inviato: mercoledì 5 marzo 2008, 18:15
da nulll
se posti l'errore è più facile capire...posta l'errore plz!

cmq prova a sostuire

Codice: Seleziona tutto

mysql_query("UPDATE post SET tiolo_post='".mysql_escape_string($titolo)."', corpo_post='".mysql_escape_string($testo)."', data_post='".mysql_escape_string($data)."' WHERE id_post='".mysql_escape_string($modifica)."'") or die ([b]mysql_error()[/b]);
questo perchè una query simile

Codice: Seleziona tutto

UPDATE post SET titolo = 'Quest'era il mio titolo' WHERE id = 1 
la query è errata perchè i due apici attorno al testo sono rotti da un apice nel testo stesso

'Quest'era il mio titolo'

ovviamente sto solo ipotizzando visto che non posso sapere che errore ti da se non lo leggo!

Re: [PHP] Problema con QUERY UPDATE

Inviato: mercoledì 5 marzo 2008, 18:36
da Dando_Sando
nulll ha scritto: se posti l'errore è più facile capire...posta l'errore plz!

cmq prova a sostuire

Codice: Seleziona tutto

mysql_query("UPDATE post SET tiolo_post='".mysql_escape_string($titolo)."', corpo_post='".mysql_escape_string($testo)."', data_post='".mysql_escape_string($data)."' WHERE id_post='".mysql_escape_string($modifica)."'") or die ([b]mysql_error()[/b]);
questo perchè una query simile

Codice: Seleziona tutto

UPDATE post SET titolo = 'Quest'era il mio titolo' WHERE id = 1 
la query è errata perchè i due apici attorno al testo sono rotti da un apice nel testo stesso

'Quest'era il mio titolo'

ovviamente sto solo ipotizzando visto che non posso sapere che errore ti da se non lo leggo!
Grazie per l'interessamento, ma l'errore era molto più banale, se il campo della tabella si chiama titolo_post ed io nella query lo sostituisco con tiolo_post non potrà mai funzionare.... :-[
Che vergogna!!!