Mise à jour des données présentes dans la base de données en php
Créé une table "test_mysql" dans la base de données "test"
J'ai 3 fichiers
1. list_records.php
2. update.php
3. update_ac.php
Databse code
Créer une base de données et de la table à l'aide de phpMyAdmin
CREATE TABLE `test_mysql` (
`id` int(4) NOT NULL auto_increment,
`name` varchar(65) NOT NULL default '',
`lastname` varchar(65) NOT NULL default '',
`email` varchar(65) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=7 ;
--
-- Dumping data for table `test_mysql`
--
INSERT INTO `test_mysql` VALUES (1, 'Billly', 'Blueton', '[email protected]');
INSERT INTO `test_mysql` VALUES (2, 'Jame', 'Campbell', '[email protected]');
INSERT INTO `test_mysql` VALUES (3, 'Mark', 'Jackson', '[email protected]');
INSERT INTO `test_mysql` VALUES (4, 'Linda', 'Travor', '[email protected]');
INSERT INTO `test_mysql` VALUES (5, 'Joey', 'Ford', '[email protected]');
INSERT INTO `test_mysql` VALUES (6, 'Sidney', 'Gibson', '[email protected]');
list_records.php
<?php
$host="localhost"; //Host name
$username=""; //Mysql username
$password=""; //Mysql password
$db_name="test"; //Database name
$tbl_name="test_mysql"; //Table name
//Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td>
<table width="400" border="1" cellspacing="0" cellpadding="3">
<tr>
<td colspan="4"><strong>List data from mysql </strong> </td>
</tr>
<tr>
<td align="center"><strong>Name</strong></td>
<td align="center"><strong>Lastname</strong></td>
<td align="center"><strong>Email</strong></td>
<td align="center"><strong>Update</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td><?php echo $rows['name']; ?></td>
<td><?php echo $rows['lastname']; ?></td>
<td><?php echo $rows['email']; ?></td>
//link to update.php and send value of id
<td align="center"><a href="update.php?id=<?php echo $rows['id']; ?>">update</a></td>
</tr>
<?php
}
?>
</table>
</td>
</tr>
</table>
<?php
mysql_close();
?>
update.php
<?php
$host="localhost"; //Host name
$username=""; //Mysql username
$password=""; //Mysql password
$db_name="test"; //Database name
$tbl_name="test_mysql"; //Table name
//Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
//get value of id that sent from address bar
$id=$_GET['id'];
//Retrieve data from database
$sql="SELECT * FROM $tbl_name WHERE id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<form name="form1" method="post" action="update_ac.php">
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr>
<td> </td>
<td colspan="3"><strong>Update data in mysql</strong> </td>
</tr>
<tr>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
</tr>
<tr>
<td align="center"> </td>
<td align="center"><strong>Name</strong></td>
<td align="center"><strong>Lastname</strong></td>
<td align="center"><strong>Email</strong></td>
</tr>
<tr>
<td> </td>
<td align="center">
<input name="name" type="text" id="name" value="<?php echo $rows['name']; ?>">
</td>
<td align="center">
<input name="lastname" type="text" id="lastname" value="<?php echo $rows['lastname']; ?>" size="15">
</td>
<td>
<input name="email" type="text" id="email" value="<?php echo $rows['email']; ?>" size="15">
</td>
</tr>
<tr>
<td> </td>
<td>
<input name="id" type="hidden" id="id" value="<?php echo $rows['id']; ?>">
</td>
<td align="center">
<input type="submit" name="Submit" value="Submit">
</td>
<td> </td>
</tr>
</table>
</td>
</form>
</tr>
</table>
<?php
//close connection
mysql_close();
?>
update_ac.php
<?php
$host="localhost"; //Host name
$username=""; //Mysql username
$password=""; //Mysql password
$db_name="test"; //Database name
$tbl_name="test_mysql"; //Table name
$id='id';
$name="name";
$lastname="lastname";
$email="email";
//Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
//update data in mysql database
$sql="UPDATE $tbl_name SET name='$name', lastname='$lastname', email='$email' WHERE id='$id'";
$result=mysql_query($sql);
//if successfully updated.
if($result){
echo "Successful";
echo "<BR>";
echo "<a href='list_records.php'>View result</a>";
}
else {
echo "ERROR";
}
?>
Maintenant, le problème, c'est après l'application de tout ce code, je suis toujours incapable de mettre à jour toute la ligne..svp AIDER MOI 🙁 il montre les mises à jour avec succès, mais elle n'est pas mise à jour quoi que ce soit.
- Pourquoi avez-vous un formulaire si
update_ac.php
définit les variables? - L'écho que la requête SQL. Il ne regarde pas comme vous vous attendez. Plus précisément, vous êtes de passage dans
$id
à la clause where, mais de la configuration de$id='id'
en haut de update_ac.php
Vous devez vous connecter pour publier un commentaire.
J'ai reçu votre problème, et c'est ici
Au lieu de donner la valeur numérique vous donnant des caractères qui n'est pas valide, la juste valeur de l'id de votre requête.
Actuellement votre requête lit comme ceci
ici votre clause where est un échec.
update_ac.php
modifier
aussi dans update.php mieux utiliser
$id=intval($_GET['id'])
;<input type="file" name="file" id="file">
dans votre formulaire et $_FILES pour le téléchargement. voir ici par exemple<img src="<?php echo file_dir . '/' . $imagename; ?>...
quifile_dir
est dossier pour garder les fichiers téléchargés et$imagename
est le nom du fichier image est stocké à votre table.$rows['your-image-column-name']
et pas simplement $nomimage. vous devez donc vous, tout comme pour les$rows['name']