Problema per una query di aggiornamento record php

EffeElle

Utente Attivo
25 Set 2012
48
0
0
Salve ragazzi mi sono appena iscritto a questo forum per imparare qualcosa e fare qualche amicizia. Mi trovo difronte ad un piccolo blocco per una modifica di un record php mysql posto di seguito il codice...

PHP:
// richiamo il file di configurazione
     require 'connessione.php'; 
 // richiamo lo script responsabile della connessione a MySQL
     require 'config.inc';

      mysql_select_db("miodatabase");
      $id      =  $_POST["id"];
        

// preparo la query
 $query = "UPDATE miatabella SET titolo='$_POST[titolo]', testo='$_POST[testo]', numero='$_POST[numero]' WHERE id='$_POST[id]'";
      

// invio la query     
        $result = mysql_query($query);

  // controllo
     if (!mysql_query($query)) {
		  // se modifica NO
     echo "<h2>Errore, modifica news non riuscita</h2><BR>";
     echo "<BR><p><A HREF=\"modifica1.php\">Clicca qui per riprovare</p></A>";
        exit;
       } else {  

// Se modifica OK

     echo "<h2>News aggiornata</h2><BR>";
         echo "<p><A HREF=\"modifica0.php\">Clicca qui per modificare un'altra news</p></A>";
        }
   mysql_close();

In sostanza la query mi da errore e non riesco a formulare una query adottando la modifica diretta questa
$query ="UPDATE `miodatabase`.`miatabella` SET `titolo` = 'abcabcabc', `testo` = 'xxxxx', `data` = 'xxx' WHERE `articoli`.`id` =47";
riesco a modificare il record selezionato ma io voglio che il record viene modificato tramide il form che ho precedentemente costruito.. Su phpmyadmin per l'update del record mi da questa porzione di codice
UPDATE `miatabella` SET `id`=[value-1],`titolo`=[value-2],`testo`=[value-3],`data`=[value-4] WHERE 1
Spero che qualcuno riesca a risolvere il mio problema vi ringrazio anticipatamente....
 
Ultima modifica:

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Se stampi il contenuto di $query cosa leggi?

effettua un controllo con:

PHP:
$result = mysql_query($query) or die (mysql_error());
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
Ciao eliox grazie per la risposta se la porzione di codice da te scritta la inserisco dopo la query mi aggiorna il record ma mi cancella il suo contenuto ovvero se io utilizzo la seguente query:

PHP:
$query = "UPDATE miatabella SET titolo='$_POST[titolo]', testo='$_POST[testo]', data='$_POST[data]' WHERE id='$_POST[id]'";
La query risulta ok ma non mi aggiorna il record ma me lo cancella in tutti i campi.
Con questa invece riesco a modificare il record secondo l'id stabilito
PHP:
$query ="UPDATE `miodatabase`.`miatabella` SET `titolo` = 'accademia', `testo` = 'xxxxx', `data` = 'xxx' WHERE `articoli`.`id` =47";
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
probabilmente non hai valori nei POST

metti var_dump($_POST) a inizio pagina

e semmai posta anche il form che manda i dati a questa pagina
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
Criric allora i miei file sono composti cosi:
modifica.php
PHP:
<?php 
// richiamo il file di configurazione     
require 'connessione.php';  
// richiamo lo script responsabile della connessione a MySQL     
require 'config.inc';  
mysql_select_db("miodatabase"); 
$sql="SELECT * FROM articoli ORDER BY id DESC";  
$risultati_mysql=mysql_query($sql); 
$num_righe=mysql_num_rows($risultati_mysql);  
if  ( $num_righe == 0 ) { 
echo "Spiacente, non ci sono informazioni";
 } else { 
# abbiamo dei risultati 
# crea la tabella 
echo "<table width=\"50%\" border=\"0\"> 
  <br><br>
  <tbody>";
  echo "<tr><th>&nbsp;</th><th>Titolo</th></tr>";
  while ($riga=mysql_fetch_array($risultati_mysql))
{ 
$id=$riga["id"]; 
$titolo=$riga["titolo"]; 
echo "<TR><TD><A HREF=\"modifica-step2.php?riga_id=$id\" 
<TD>$id</TD> 
<TD>$titolo</TD> 
</TR>";
}  
echo "</tbody>"; 
echo "</table>";  
} # fine dell'else 
mysql_close(); 
?>

modifica-step2.php
PHP:
<?php 
// richiamo il file di configurazione
     require 'connessione.php';  
// richiamo lo script responsabile della connessione a MySQL
     require 'config.inc';
  mysql_select_db("miodatabase");
  $sql="SELECT * FROM articoli WHERE id=$_GET[riga_id]";  $risultati_mysql=mysql_query($sql); 
$num_righe=mysql_num_rows($risultati_mysql);
  if  ( $num_righe == 0 ) {
 echo "Spiacente, non ci sono informazioni";
 } else { 
# abbiamo dei risultati  
$risultati_mysql=mysql_query($sql); 
while ($riga=mysql_fetch_array($risultati_mysql)) 
{ 
 $id=$riga["id"];
 $titolo=$riga["titolo"];
  $testo=$riga["testo"];
 $data=$riga["data"];
} 
echo "<form METHOD=\"POST\" ACTION=\"modifica-step3.php\">";
  
  echo "Titolo<br> 
 <input name=\"Titolo\" type=\"text\"  size=\"50\" value=\"$titolo\"><br>";
  echo "Testo<br> 
 <input name=\"Testo\" type=\"text\" size=\"100\" value=\"$testo\"><br>";
 
 
  echo "Data:<br>
  <input name=\"Data\" type=\"text\"  size=\"10\" value=\"$data\"><br>";

   echo "<input type=\"hidden\" name=\"id\" value=\"$id\">";

     echo "<br>";
	 echo "<INPUT TYPE=SUBMIT VALUE=\"Modifica il record\"><br><br>";
	 echo "</form>";
} 
# fine dell'else 
mysql_close();  
?>

modifica-step3.php

PHP:
<?php 
// richiamo il file di configurazione
     require 'connessione.php'; 
 // richiamo lo script responsabile della connessione a MySQL
     require 'config.inc';

      mysql_select_db("miodatabase");
      $id      =  $_POST["id"];
        

// preparo la query
 $query ="UPDATE `miodatabase`.`miatabella` SET `titolo` = 'accademia informazione', `testo` = 'xxxxx', `data` = 'xxx' WHERE `articoli`.`id` =48";
      

// invio la query     
        $result = mysql_query($query);

  // controllo
     if (!mysql_query($query)) {
		  // se modifica NO
     echo "<h2>Errore, modifica news non riuscita</h2><BR>";
     echo "<BR><p><A HREF=\"modifica-step2.php\">Clicca qui per riprovare</p></A>";
        exit;
       } else {  

// Se modifica OK

     echo "<h2>News aggiornata</h2><BR>";
         echo "<p><A HREF=\"modifica.php\">Clicca qui per modificare un'altra news</p></A>";
        }
   mysql_close();
 ?>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
metti var_dump($_POST) in modifica-step3.php all'inizio

per vedere se arrivano i dati
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
qui non serve che ripeti la query e non serve il ciclo while visto che il record dovrebbe essere uno solo da quanto ho capito
PHP:
$sql = "SELECT * FROM articoli WHERE id=$_GET[riga_id]";
$risultati_mysql = mysql_query($sql);
$num_righe = mysql_num_rows($risultati_mysql);
if ($num_righe == 0) {
    echo "Spiacente, non ci sono informazioni";
} else {
# abbiamo dei risultati  
    $risultati_mysql = mysql_query($sql);
    while ($riga = mysql_fetch_array($risultati_mysql)) {
        $id = $riga["id"];
        $titolo = $riga["titolo"];
        $testo = $riga["testo"];
        $data = $riga["data"];
    }
puoi semplicemente fare cosi
PHP:
$sql = "SELECT * FROM articoli WHERE id=$_GET[riga_id]";
$risultati_mysql = mysql_query($sql);
$num_righe = mysql_num_rows($risultati_mysql);
if ($num_righe == 0) {
    echo "Spiacente, non ci sono informazioni";
} else {
# abbiamo dei risultati  
    $riga = mysql_fetch_array($risultati_mysql);
    $id = $riga["id"];
    $titolo = $riga["titolo"];
    $testo = $riga["testo"];
    $data = $riga["data"];

se nell 'altra pagina il var_dump non ti restituisce i dati prova a vedere se qui ci sono
manda in echo le variabili o controlla il sorgente html dlla pagina
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
Allora togliendo il
PHP:
while ($riga = mysql_fetch_array($risultati_mysql)) {
non mi stampa il contenuto del record e mi da errore con questo codice mi legge il suo contenuto e il suo id
mentre mettendo var_dump($_POST) su modifica-step3.php mi stampa questo
array
'Titolo' => string 'xxx' (length=0)
'Testo' => string 'xxx' (length=0)
'Data' => string 'xxx' (length=3)
'id' => string '48' (length=2)
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
non mi stampa il contenuto del record e mi da errore
forse non hai tolto anche la chiusura del while }
cmq

xxx sono i valori che hai nel database?
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
il problema sta nella query UPDATE ecc se utilizzo questa
PHP:
$query ="UPDATE `miodatabase`.`miatabella` SET `titolo` = 'accademia informazione', `testo` = 'xxxxx', `data` = 'xxx' WHERE `articoli`.`id` =48";
la modifica avviene perfettamente ma sono io a inserire il testo dalla quesry stessa e non dal form in sostanza dovrei avere una query che mi legge il contenuto che inserisco nel form mi legge le variabili $titolo $testo $data e $id e mi apporta le modifiche in phpmyadmin per l'update del record mi da il seguente codice
PHP:
$query ="UPDATE `miatabella` SET `id`=[value-1],`titolo`=[value-2],`testo`=[value-3],`data`=[value-4] WHERE 1";
non riesco a formularla
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
se dal form non invii i dati giusti e per esempio $_POST['titolo'] è vuoto anziche avere il valore del titolo
l UPDATE non ti funzionera mai come vuoi

quello che volevo farti controllare è proprio se il form invia i dati correttamente

puoi anche stampare la query per verificarlo

in questo modo
PHP:
// preparo la query
 $query = "UPDATE miatabella SET titolo='$_POST[titolo]', testo='$_POST[testo]', numero='$_POST[numero]' WHERE id='$_POST[id]'";
// stampi la query
echo $query;
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
Utilizzando la query da te scritta e stampandola mi toglie tutto in sostanza mi cancella il contenuto di titolo testo e data mi resta solo l'id non so più cosa fare e da giorni che provo in tutti i modi i miei 3 file sono quelli che ho postato modifica.php modifica-step2.php e modifica-step3.php
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
puoi postare cosa ti ha stampato?

al massimo bolcca l'esecuzione per non star sempre li a ripristinare la tabella con die();
PHP:
 $query = "UPDATE miatabella SET titolo='$_POST[titolo]', testo='$_POST[testo]', numero='$_POST[numero]' WHERE id='$_POST[id]'";
// stampi la query
echo $query;  
die();
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
Mi da errore nella linea 69 che è quella della query e mi stampa
UPDATE articoli SET titolo='', testo='', data='' WHERE id='48'
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
come vedi i campi sono vuoti
questo vuol dire che probabilmente il problema sta in modifica-step2.php che non gli passa i dati

fai l echo della query e di tutte le varibili e posta

PHP:
$sql = "SELECT * FROM articoli WHERE id=$_GET[riga_id]";
// stampa la query
echo $sql;
$risultati_mysql = mysql_query($sql);
$num_righe = mysql_num_rows($risultati_mysql);
if ($num_righe == 0) {
    echo "Spiacente, non ci sono informazioni";
} else {
# abbiamo dei risultati  
    $risultati_mysql = mysql_query($sql);
    while ($riga = mysql_fetch_array($risultati_mysql)) {
        $id = $riga["id"];
        $titolo = $riga["titolo"];
        $testo = $riga["testo"];
        $data = $riga["data"];
        // stampale tutte 
        echo $id;
        echo $titolo;
        echo $testo;
        echo $data;
    }
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
questo codice lo devo inserire in modifica-step1.php giusto? dove ho la selezione dei dati
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
Il select non mi da risultati mamma mia sono in crisi con questo codice modifica.php modifica-step1.php funzionano corettamente il problema sta in step2 e nella query mi viene da piangere
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Il select non mi da risultati
quale select?
hai stampato la query?

Stai facendo confusione non ha postato step1 ma step2 e step3

Cmq ricontrolla bene il passaggio dei dati da una pagina all'altra partendo dall'inizio Sicuramente te ne perdi uno
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
Scusami ma mi sono perso non so più cosa fare ti posto di nuovo tutti e tre i file
modifica.php
PHP:
 <?php 
// richiamo il file di configurazione     
require 'connessione.php';  
// richiamo lo script responsabile della connessione a MySQL     
require 'config.inc';  
mysql_select_db("miodatabase"); 
$sql="SELECT * FROM articoli ORDER BY id DESC";  
$risultati_mysql=mysql_query($sql); 
$num_righe=mysql_num_rows($risultati_mysql);  
if  ( $num_righe == 0 ) { 
echo "Spiacente, non ci sono informazioni";
 } else { 
# abbiamo dei risultati 
# crea la tabella 
echo "=\"50%\" border=\"0\"> 
  <br><br>
  <tbody>";
  echo "<tr><th>&nbsp;</th><th>Titolo</th></tr>";
  while ($riga=mysql_fetch_array($risultati_mysql))
{ 
$id=$riga["id"]; 
$titolo=$riga["titolo"]; 
echo "=\"modifica-step2.php?riga_id=$id\" 
<TD>$id</TD> 
<TD>$titolo</TD> 
</TR>";
}  
echo "</tbody>"; 
echo "</table>";  
} # fine dell'else 
mysql_close(); 
?>

modifica-step2.php
PHP:
<?php 
// richiamo il file di configurazione
     require 'connessione.php';  
// richiamo lo script responsabile della connessione a MySQL
     require 'config.inc';
  mysql_select_db("miodatabase");
  $sql="SELECT * FROM articoli WHERE id=$_GET[riga_id]";  $risultati_mysql=mysql_query($sql); 
$num_righe=mysql_num_rows($risultati_mysql);
  if  ( $num_righe == 0 ) {
 echo "Spiacente, non ci sono informazioni";
 } else { 
# abbiamo dei risultati  
$risultati_mysql=mysql_query($sql); 
while ($riga=mysql_fetch_array($risultati_mysql)) 
{ 
 $id=$riga["id"];
 $titolo=$riga["titolo"];
  $testo=$riga["testo"];
 $data=$riga["data"];
} 
echo "=\"POST\" ACTION=\"modifica-step3.php\">";
  
  echo "Titolo<br> 
 =\"Titolo\" type=\"text\"  size=\"50\" value=\"$titolo\"><br>";
  echo "Testo<br> 
 =\"Testo\" type=\"text\" size=\"100\" value=\"$testo\"><br>";
 
 
  echo "Data:<br>
  =\"Data\" type=\"text\"  size=\"10\" value=\"$data\"><br>";

   echo "=\"hidden\" name=\"id\" value=\"$id\">";

     echo "<br>";
     echo "=SUBMIT VALUE=\"Modifica il record\">

";
     echo "</form>";
} 
# fine dell'else 
mysql_close();  
?>

modifica-step3.php
PHP:
<?php 
// richiamo il file di configurazione
     require 'connessione.php'; 
 // richiamo lo script responsabile della connessione a MySQL
     require 'config.inc';

      mysql_select_db("miodatabase");
      $id      =  $_POST["id"];
        

// preparo la query
 $query ="UPDATE `miodatabase`.`miatabella` SET `titolo` = 'accademia informazione', `testo` = 'xxxxx', `data` = 'xxx' WHERE `articoli`.`id` =48";
      

// invio la query     
        $result = mysql_query($query);

  // controllo
     if (!mysql_query($query)) {
          // se modifica NO
     echo "<h2>Errore, modifica news non riuscita</h2><BR>";
     echo "

=\"modifica-step2.php\">Clicca qui per riprovare
";
        exit;
       } else {  

// Se modifica OK

     echo "<h2>News aggiornata</h2><BR>";
         echo "

=\"modifica.php\">Clicca qui per modificare un'altra news
";
        }
   mysql_close();
 ?>
 
Discussioni simili
Autore Titolo Forum Risposte Data
P Problema per richiamare una variabile... PHP 3
L problema con l'Undefined index per una $_GET PHP 6
D problema IE7: bisogna aspettare 5sec. per fare submit di una form PHP 13
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 0
M Problema con php per calcolo costo percentuale PHP 7
P [HTML] Problema con menu orizzontale a tendina per sito web HTML e CSS 17
L [javascript]problema funzione per webapi Javascript 4
S Problema in PHP per invio file XML - RISOLTO- PHP 8
Delemir78 [PHP] Problema per ridurre delle immagini e spostare i files in cartelle PHP 5
L Problema per centrare titolo PopUp HTML e CSS 5
M Problema con ciclo foreach per chiusura apertura div in base al numero di record in database PHP 1
E problema per aggiungere un database mdf da visual studio .NET Framework 9
E problema per Sito per eventi e sagre Leggi, Normative e Fisco 0
P Problema domande duplicate per risposte multiple PHP 6
M Problema chiamata Ajax per vista Griglia o vista Lista Ajax 1
asevenx problema per centrare sito HTML e CSS 5
M Problema connessione su OS X YOSEMITE 10.10 per il server locale mysql MySQL 0
M Problema connessione su OS X YOSEMITE 10.10 per il server locale mysql Mac e Software 0
C usare un foglio php per la creazione di un excel: piccolo problema PHP 2
B Problema form mail per invio doppio allegato PHP 1
Laura99 Problema per cambiare immagine PHP 7
T Problema di risoluzione dello sfondo per un sito web Photoshop 1
A Problema orario invio mail per form PHP 4
Akuma consiglio sicurezza per soluzione problema apici PHP 0
L [c++] Problema leggere file txt riga per riga C/C++ 0
J Problema per creare anteprima dei post da un db PHP 2
J Problema classe per preview post PHP 2
E Problema import per aggiornamento PHP 0
F Problema divisione smiles aggiuntivi per pagine Javascript 1
L problema variabile per creare sessione PHP 5
helpdesk problema interfaccia per ogni utente PHP 0
M problema con ciclo foreach per estrarre dati da un database PHP 22
M problema phplist per confermare l'email e l'inscrizione CMS (Content Management System) 0
P problema con il countdown per la fine dell'anno e per natale Javascript 13
M Problema con form per accesso area riservata ai soci PHP 2
D Problema con il disclaimer/pagina per l'accesso al'sito, funziona solo con firefox PHP 0
D problema script per visualizzare report tradedoubler PHP 1
C Problema con il CSS per il comando text-align HTML e CSS 10
D Problema con funzione preg_match() per controllo email PHP 2
C Problema per impostazione dei caratteri su un blog. Javascript 20
M problema xampp per ubuntu Linux e Software 1
A problema con un semplice form per un loggin in php PHP 2
catellostefano Problema per richiamare file xml -- Warning: DOMDocument::load() [domdocument.load]: PHP 0
L problema con get per includere pagine dal database PHP 4
asevenx problema con funzione per far apparire e scomparire un form di commenti PHP 1
max_400 Problema apostrofo nella ricezione della variabile per poi scriverla dentro un file PHP 6
V problema per collegare tabelle MySQL 2
L Problema e consiglio per form contatti particolare Classic ASP 2
H Piccola applicazione per News con Php, Xml e Flash: problema ordinamento. XML 0
C Problema Indice alfanumerico per un array Database 4

Discussioni simili