Problema con la modifica dei record in un db

fabio287

Nuovo Utente
11 Gen 2013
7
0
0
Salve a tutti,
mi prosento...sono Fabio (appena iscritto)

espongo il mio problema...

io ho un mio sito web (http://fabio1cgec.altervista.org)
volevo aggiungere la possibilità di modificare le proprie credenziali...in altri forum ho letto k mi conviene fare una query di INSERT con comando UPDATE...
xò non ho la + pallida idea di come io possa fare.

io ho un apagina ''a'' che ne chiama una di interrogazione ''b'' (dove andrò a mettere la query....)

la pagina ''a'' mi manda la variabile da sostituire a quella esistente: $utente (il nome della tab. è: esterni)

mi confermate questa tipologia di query?
se si per favore mi potreste creare una query d'esempio o già funzionale? (ho 16anni ed è la mia prima esperienza con i siti web e il php)
grazie in anticipo
fabio​
 
Noto con piacere che sei su AlterVista, anche io sono li, nel caso ti servissero altri aiuti.

Cmq, ho notato che hai parlato che per aggiornare un campo te parli di query di INSERT ( inserimento ) e di UPDATE ( aggiornamento ), ora la domanda che faccio io, è che forse io non ho ben capito, ti occorre inserire un nuovo campo, tramite l'INSERT o aggiornare un campo già esistente tramite UPDATE, in ogni caso ti basterebbe cercare su internet, sono delle semplice query, per quella di inserimento dai un'occhiata qui:

http://www.w3schools.com/sql/sql_insert.asp

Nel caso tu debba inserire un nuovo record in un database, mentre, se il record lo devi aggiornare ( modificare ), dai un'occhiata qui:

http://www.w3schools.com/sql/sql_update.asp
 
Noto con piacere che sei su AlterVista, anche io sono li, nel caso ti servissero altri aiuti.

Cmq, ho notato che hai parlato che per aggiornare un campo te parli di query di INSERT ( inserimento ) e di UPDATE ( aggiornamento ), ora la domanda che faccio io, è che forse io non ho ben capito, ti occorre inserire un nuovo campo, tramite l'INSERT o aggiornare un campo già esistente tramite UPDATE, in ogni caso ti basterebbe cercare su internet, sono delle semplice query, per quella di inserimento dai un'occhiata qui:

http://www.w3schools.com/sql/sql_insert.asp

Nel caso tu debba inserire un nuovo record in un database, mentre, se il record lo devi aggiornare ( modificare ), dai un'occhiata qui:

http://www.w3schools.com/sql/sql_update.asp

io ho già il record devo solo modificarlo....


i sorgenti delle due pagine sono i geguenti:

pagina ''a'':
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>

<body>
<form name="inviadati" action="modifica_ID_interrogazione.php" method="post">
  <table width="100%" border="2">
    <tr>
      <td>NUOVO ID:</td>
    </tr>
    <tr>
      <td><input name="modifica_utente" type="text" class="celle_inserimento" id="textfield" /></td>
    </tr>
    <tr>
      <td> <input name="inviate" type="submit" class="bottoni" value="INVIA LE MODIFICHE!" onClick=/></td>
    </tr>
  </table>
  <p>&nbsp;</p>



</form>
</body>
</html>

pagina ''b''(interrogazione):
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>

<body>
<?
session_start(); 
$link = mysql_connect('localhost', '', '') 

or die('Could not connect: ' . mysql_error()); 

mysql_select_db('my_fabio1cgec') or die('Could not select database'); 

// Performing SQL query 

$utente = mysql_real_escape_string($_POST['utente']); // è meglio togliere caratteri come l'apostrofo (' viene rimpiazzato con \') 
$pwd=mysql_real_escape_string($_POST['pwd']); 
$sesso=$_POST['sesso']; 
$query = "UPDATE esterni
		  SET ID=modifica_utente
		  WHERE ID=$utente AND PASSWORD= $pwd"; 
$result = mysql_query($query) or die('Query failed: ' . mysql_error()); 

?>
</body>
</html>

sulla pagina ''b'' probabilmente c'è un errore ma non lo trovo
 
Ultima modifica:
il codice k ti ho scritto è giusto?
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>

<body>
<?
session_start(); 
$link = mysql_connect('localhost', '', '') 

or die('Could not connect: ' . mysql_error()); 

mysql_select_db('my_fabio1cgec') or die('Could not select database'); 

// Performing SQL query 

$utente = mysql_real_escape_string($_POST['utente']); // è meglio togliere caratteri come l'apostrofo (' viene rimpiazzato con \') 
$pwd=mysql_real_escape_string($_POST['pwd']); 
$sesso=$_POST['sesso']; 
$query = "UPDATE esterni
          SET ID=modifica_utente
          WHERE ID=$utente AND PASSWORD= $pwd"; 
$result = mysql_query($query) or die('Query failed: ' . mysql_error()); 

?>
</body>
</html>
 
il codice k ti ho scritto è giusto?
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>

<body>
<?
session_start(); 
$link = mysql_connect('localhost', '', '') 

or die('Could not connect: ' . mysql_error()); 

mysql_select_db('my_fabio1cgec') or die('Could not select database'); 

// Performing SQL query 

$utente = mysql_real_escape_string($_POST['utente']); // è meglio togliere caratteri come l'apostrofo (' viene rimpiazzato con \') 
$pwd=mysql_real_escape_string($_POST['pwd']); 
$sesso=$_POST['sesso']; 
$query = "UPDATE esterni
          SET ID=modifica_utente
          WHERE ID=$utente AND PASSWORD= $pwd"; 
$result = mysql_query($query) or die('Query failed: ' . mysql_error()); 

?>
</body>
</html>
I campi sono delle stringe quindi servono gli apostrofi prima
PHP:
$query = "UPDATE esterni
          SET ID='modifica_utente'
          WHERE ID='$utente' AND PASSWORD='$pwd'";

Per il resto deve tornare con la logica del database quindi prova e verifica
 
I campi sono delle stringe quindi servono gli apostrofi prima
PHP:
$query = "UPDATE esterni
          SET ID='modifica_utente'
          WHERE ID='$utente' AND PASSWORD='$pwd'";

Per il resto deve tornare con la logica del database quindi prova e verifica

ho provato a fare com emi hai detto tu...ma...lui mi modifica il record....PERO' LASCIA LA CELLA VUOTA!
ho modificato i sorgenti:
pagina''a'':
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PAGIONA DI LOGIN!</title>
<style type="text/css">
</style>
<link href="../css/cose_pubbliche/pagina_login_piccola.css" rel="stylesheet" type="text/css">
<style type="text/css">
body {
	background-image: url(../../immagini_per_sito/Sfondo-per-cellulari-3.jpg);
	background-repeat: no-repeat;
	location: no;
	scrollbar: no;
}
</style>
</head>

<body

<? 
 session_start();
 session_destroy(); 
 session_unset()
 ?>
      <center>
<form name="inviadati" action="modifica_ID_interrogazione.php" method="post">  <table width="30%" "border="0" align="center" class="tabella">
    
     <td align="center" valign="middle" class="categoria"><strong class="categoria">UTENTE:</strong></td>
    
    <tr>
       <td align="center" valign="middle"><input name="utente" type="text" class="celle_inserimento" id="textfield" /></td>
    </tr>
    <tr>
     <td align="center" valign="middle" class="categoria"><strong class="categoria">PASSWORD:</strong></td>
    </tr>
    <tr>
      <td align="center" valign="middle"><input name="pwd" type="password" class="celle_inserimento" /></td>
    </tr>
    <tr>
    <td align="center" valign="middle" class="categoria"><strong>SESSO:</strong></td>
    </tr>
    <tr>
     <td align="center" valign="middle"><select name="sesso" class="celle_inserimento" id="SESSO" >
       <option selected="selected"> </option>
       <option value="m">maschio</option>
        <option value="f">femmina</option>
        <option value="anonimo">anonimo</option>
      </select></td>
    </tr>
    <tr>
      <td align="center" valign="middle">&nbsp;</td>
    </tr>
    <tr>
      <td align="center" valign="middle">NUOVO UTENTE</td>
    </tr>
    <tr>
      <td align="center" valign="middle"><input name="modifica_ID" type="text" class="celle_inserimento"/></td>
    </tr>
    <tr>
    <td align="center" valign="middle"><span class="nomi_dei_campi">
        <input name="inviate" type="submit" class="bottoni" value="MODIFICA!" onClick=/></td>
    </tr>
  </table></form>
  <p>&nbsp;</p>
  </center>
</body>
</html>
pagiona''b'':
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>

<body>
<?
session_start(); 
$link = mysql_connect('localhost', '', '') 

or die('Could not connect: ' . mysql_error()); 

mysql_select_db('my_fabio1cgec') or die('Could not select database'); 

// Performing SQL query 

$utente = $_POST['utente']; // è meglio togliere caratteri come l'apostrofo (' viene rimpiazzato con \') 
$pwd=$_POST['pwd']; 
$sesso=$_POST['sesso']; 
$modifica_utente=$_PORT['modifica_ID'];
$query = "UPDATE esterni
          SET ID='$modifica_utente'
          WHERE ID='$utente' AND PASSWORD='$pwd'";  
$result = mysql_query($query) or die('Query failed: ' . mysql_error()); 

?>
</body>
</html>
 
Che per caso ID è un campo di tipo integer? i valori di questi campi non vanno racchiusi tra apici. In programmazione qualsiasi cosa delimitata tra apici viene considerata come stringa, leva gli apici quando dichiari il valore del campo id, nel caso il campo sia ti tipo Integer
 
Ultima modifica:
I dati vengono passati correttamente? Inoltre se esegui la query da phpmyadmin con un valore predefinito al posto delle variabili funziona?
 
I dati vengono passati correttamente? Inoltre se esegui la query da phpmyadmin con un valore predefinito al posto delle variabili funziona?

cel'ho fatta...avevo fatto un errore di battitura....nella pagina ''b''
PHP:
$modifica_utente=$_PORT['modifica_ID'];
$query = "UPDATE esterni
          SET ID='$modifica_utente'
          WHERE ID='$utente' AND PASSWORD='$pwd'";
adesso correggendolo in:
PHP:
$modifica_utente=$_POST['modifica_ID'];
$query = "UPDATE esterni
          SET ID='$modifica_utente'
          WHERE ID='$utente' AND PASSWORD='$pwd'";
funziona correttamente..


INVECE DI SCRIVERE post...AVEVO SCRITTO port
 

Discussioni simili