UPDATE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : UPDATE

par Cypher_PHP » 31 juil. 2005, 11:05

salut à tous

je tiens à apporter la solution finale qui sert à modifier les données mysql via un formulaire html

voici mes bouts de code:

fichier config.php
<?php
    $dbhost="sql.free.fr";
    $dblogin="xxxxxx";
    $dbpassword="xxxxxx";
    $dbname="xxxxxx";
	$dbtable='members';

$members=mysql_pconnect($dbhost,$dblogin,$dbpassword);mysql_selectdb($dbname);
mysql_select_db($dbname, $members);

$RecorMembers= mysql_query ("select * from $dbtable order by id desc");
$row_RecorMembers = mysql_fetch_assoc($RecorMembers);

$RecorId= mysql_query ("SELECT * FROM $dbtable where id='" . $_GET['num'] . "'");
$row_RecorId = mysql_fetch_assoc($RecorId);

//------ Chemin des images
define("image_path",'http://0540gbqu.free.fr/test/members/imgs/');

?>
fichier list_update.php:
<?php 
require_once('config.php');
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="cypher.css" rel="stylesheet" type="text/css">
</head>
<body>
<div align="center">
  <p class="text_titre">Administration</p>
  <p class="text_sstitre">Page de modification des membres</p>
</div>
<table border="0" align="center" cellpadding="0" cellspacing="0" class="header">
  <tr> 
    <td><a href="index.php">Accueil</a></td>
    <td><a href="form_add.php">- Ajout des membres</a></td>
    <td><a href="list_update.php">- Modification</a></td>
    <td><a href="list_delete.php">- Suppression</a></td>
    <td><a href="list.php">- Liste des membres</a></td>
    <td><a href="imgs/upload_imgs.php">- Upload d'une image</a></td>
  </tr>
</table>
<br>
<table width="75%" border="0" cellspacing="0" cellpadding="0">
  <tr> 
    <td colspan="4"> 
      <?php do {?>
    </td>
  </tr>
  <tr> 
    <td width="45%"><?php echo "<a href='form_update.php?num=".$row_RecorMembers['id']."'".">".$row_RecorMembers['id']."</a>";?></td>
    <td width="55%" class="text_list"><?php echo $row_RecorMembers['name'];?></td>
    <td width="55%" class="text_list"><?php echo $row_RecorMembers['prenom'];?></td>
    <td width="55%" class="text_list"><?php echo $row_RecorMembers['imgs'];?></td>
  </tr>
  <tr> 
    <td colspan="4"> 
      <?php } while ($row_RecorMembers = mysql_fetch_assoc($RecorMembers));?>
    </td>
  </tr>
</table>

</body>
</html>
fichier form_update.php:
<?php 
require_once('config.php');
?>
<html>
<link href="cypher.css" rel="stylesheet" type="text/css">

<body>
<div align="center">
  <p class="text_titre">Administration </p>
  <p class="text_sstitre">Page de modification</p>
</div>
<table border="0" align="center" cellpadding="0" cellspacing="0" class="header">
  <tr> 
    <td><a href="index.php">Accueil</a></td>
    <td><a href="form_add.php">- Ajout des membres</a></td>
    <td><a href="list_update.php">- Modification</a></td>
    <td><a href="list_delete.php">- Suppression</a></td>
    <td><a href="list.php">- Liste des membres</a></td>
    <td><a href="imgs/upload_imgs.php">- Upload d'une image</a></td>
  </tr>
</table>
<form method="POST" action="valide_update.php">
  <p>N&deg;: <?php echo $row_RecorId['id']; ?><br>
    Nom:<input type=text name="name"  value="<?php echo $row_RecorId['name'];?>"><br>
    Prénom: 
    <input type=text name="prenom" value="<?php echo $row_RecorId['prenom'];?>"><br>
	    Chemin:<input type=text name="imgs"  value="<?php echo $row_RecorId['imgs'];?>">
    <input type=hidden name="id" value="<?php echo $row_RecorId['id']; ?>">
    <br>
    <input type=submit value="Enregistrer">
  </p>
  </form>
</body>
</html>
fichier valid_update.php:
<?php 
require_once('config.php');
    
    // --- Récupération des données du formulaire
$id 		= $_POST['id'];
$name    = $_POST['name'];
$prenom = $_POST['prenom'];
$img   = $_POST['imgs'];

$RecorUpdate = mysql_query("UPDATE ".$dbtable." SET name='".$name."', prenom='".$prenom."', imgs='".$img."',   date=now() WHERE id LIKE '".$id."'") or die(mysql_error()); 
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="cypher.css" rel="stylesheet" type="text/css">
</head>
<body>
<p class="text_titre">Administration </p>
  
<p class="text_sstitre">Page de modification</p>

<table border="0" align="center" cellpadding="0" cellspacing="0" class="header">
  <tr> 
    <td><a href="index.php">Accueil</a></td>
    <td><a href="form_add.php">- Ajout des membres</a></td>
    <td><a href="list_update.php">- Modification</a></td>
    <td><a href="list_delete.php">- Suppression</a></td>
    <td><a href="list.php">- Liste des membres</a></td>
    <td><a href="imgs/upload_imgs.php">- Upload d'une image</a></td>
  </tr>
</table>
<p><br>
  Bravo vous avez modifi&eacute;:</p>
<table width="85%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><?php echo $_POST['id'];?></td>
    <td><?php echo $_POST['date'];?></td>
    <td><?php echo $_POST['name'];?></td>
    <td><?php echo $_POST['prenom'];?></td>
    <td><?php echo $_POST['imgs'];?></td>
    <td><img src="<?php echo image_path . $_POST['imgs'];
?>" hspace="0" vspace="0" border="0"></td>
  </tr>
</table></body>
</html>

Merci à tous
Cordialement
Cypher_PHP

par batti2b » 20 juil. 2005, 09:13

merci pour le lien vers les infos :wink:

par Cyrano » 20 juil. 2005, 09:05

Tu peux effectivement découvrir que le PHP est un langage de programmation à part entière. La version 5 de PHP n'a pas grand chose à envier à un autre langage comme Java par exemple. Ce n'est pas par hasard que des entreprises de taille plus qu'importante commencent à l'utiliser, y compris des banques. Va faire un petit tour sur le site de l'AFUP pour lire le livre blanc (version 2) sur le PHP, tu verras que c'est on ne peut plus sérieux malgré le fait qu les développeurs PHP soient encore trop souvent pris pour des petits codeurs du dimanche par les SSII qui préfèrent la notoriété du Java (et de ses usines à gaz)

par batti2b » 20 juil. 2005, 09:00

tu as raison mais je débute et je n'ai pas eu le temps de me mettre a potacer serieusement le php :oops:
pour ma reponse comme je fait assé souvant ce genre de manip je lui ai dit comment faire :wink:
mais bon apres mon stage je me mettrai a etudier le php et comme ca je serai de bon conseil :wink:
PS pour mon stage on m'a forcé a faire du php mais apres avoir fréquenté ce forum ca me donne envie de continuer le php :D

par Cyrano » 20 juil. 2005, 08:48

batti2b, merci de ta contribution, mais il serait bien de te mettre un petit peu à jour avant de donner des conseils : on utilise plus la formulation HTTP_GET_VARS ni HTTP_POST_VARS mais directement $_GET et $_POST, les anciennes formulation datant de PHP3, même si c'est ce qui sort des codes encore générés par DreamWeaver :mrgreen:

par batti2b » 20 juil. 2005, 08:34

il faut que tu mettes le filtre "id" par rapport au parametre d'url "Id" avant ton RecorID comme ceci :
$tampon = "1";
if (isset($HTTP_GET_VARS['id'])) {
  $tampon = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['id'] : addslashes($HTTP_GET_VARS['id']);
}
//et le select de ton recorId doit se finir par WHERE id = '%s'", $tampon 

par Cyrano » 20 juil. 2005, 08:32

Bon attends, il y a mélange des genres là :
le "LIKE" va être utilisé en recherche, le "=" en comparaison, donc ce devra être WHERE id = '". $id ."' et non WHERE id LIKE '". $id ."' puisque tu veux mettre à jour seulement cette ligne là et que ton "id" est clairement identifié. On utilise LIKE quand on cherche quelque chose qui correspond à la chaine envoyée en comparaison. On utilisera donc souvent quelque chose comme WHERE id LIKE '". $id ."%' ce qui veut dire "ou le champ id commence par la valeur du $id: si tu as donc $id = 12, tu auras donc en correspondance 12, mais aussi 120, 121, 122, 123, etc...

par Cypher_PHP » 19 juil. 2005, 20:59

c'est mieux mais...

mais dès que je modifie les données, ca a fait un enregistrement vide comme NULL

mais dès que je choisis un id à modifier, le fichier form_update.php n'affiche plus les données sotckées dans la base donc je peux pas savoir si les données sont correctes pour pouvoir être modifiées...

Cordialement
Cypher_PHP

par batti2b » 19 juil. 2005, 17:53

moi je serai d'avis qu'il change dans list_update.php "num" par "id" a la ligne ou il fait le lien puis dans sa page form_update.php il crée un champ caché qu'il nomme id et qui aura comme valeure $row_RecorId['id']

Code : Tout sélectionner

//dans list_update.php <?php echo "<a href='form_update.php?id=".$row_RecorMembers['id']."'".">".$row_RecorMembers['id']."</a>";?> //form_update.php <input name="id" type="hidden" id="id" value="<?php echo $row_RecorId['id']; ?>">

par ouckileou » 19 juil. 2005, 14:58

c'est un peu le bazard là-dedans :roll:

pourquoi ces deux requêtes dans le fichier config.php ?
un fichier config ça ne contient normalement que des variables de configuration

à quoi servent-elles ?

et qu'est-ce que tu veux faire en gros, parceque tu transmets des données, tu en récupères d'autres...
exemple : tu récupères toujours dans ton fichier config.php $_GET['num'] alors que tu ne le transmet que pour form_update.php...

bref, y'a du nettoyage à faire ;)

par Cypher_PHP » 19 juil. 2005, 14:52

salut

je me désespère

je trouve pas la solution

eh bien, j'essaie de vous expliquer clairement
je ne suis pas trés doué en francais j'espere que vous m'excusez

bon....
fichier list_update.php
tout semble parfait car j'ai pu récuperer les enregistrements dans un tableau;
puis je choisis un id pour modifier les données dans le fichier form_update.php et j'ai récuperer des données d'un id choisi dans les champs du formulaire. donc c'est bon...

mais dès que je modifie ces données, ca ne change rien

donc je pense que le problème est là dans le fichier valide_update.php

Fichier config.php:
<?php
    $dbhost="sql.free.fr";
    $dblogin="xxxxxx";
    $dbpassword="xxxxxx";
    $dbname="xxxxxxx";
	$dbtable='xxxx';

$members=mysql_pconnect($dbhost,$dblogin,$dbpassword);mysql_selectdb($dbname);
mysql_select_db($dbname, $members);

$RecorMembers= mysql_query ("select * from $dbtable order by id desc");
$row_RecorMembers = mysql_fetch_assoc($RecorMembers);

$RecorId= mysql_query ("SELECT * FROM $dbtable where id='" . $_GET['num'] . "'");
$row_RecorId = mysql_fetch_assoc($RecorId);
?>
Fichier list_update.php:
<?php 
require_once('config.php');
?>
<html>
<head>
</head>
<body>
<table width="75%" border="0" cellspacing="0" cellpadding="0">
  <tr> 
    <td colspan="3">
      <?php do {?>
    </td>
  </tr>
  <tr> 
  
    <td width="45%"><?php echo "<a href='form_update.php?num=".$row_RecorMembers['id']."'".">".$row_RecorMembers['id']."</a>";?></td>
    <td width="55%"><?php echo $row_RecorMembers['name'];?></td>
    <td width="55%"><?php echo $row_RecorMembers['prenom'];?></td>
  </tr>
  <tr> 
    <td colspan="3">
      <?php } while ($row_RecorMembers = mysql_fetch_assoc($RecorMembers));?>
    </td>
  </tr>
</table>

</body>
</html>
Fichier form_update.php:
<?php 
require_once('config.php');
$RecorUpdate = mysql_query("UPDATE ".$dbtable." SET prenom='".$prenom."', name='".$name."' WHERE id LIKE '".$id."' ") or die(mysql_error()); 

?>
<html>
<body>
<form method="GET" action="list.php">
  <p>N&deg;: <?php echo $row_RecorId['id']; ?><br>
    Nom: 
    <input type=text name="name"  value="<?php echo $row_RecorId['name'];?>">
    <br>
    Prénom: 
    <input type=text name="prenom" value="<?php echo $row_RecorId['prenom'];?>">
    <br>
    <input type=submit value="Enregistrer">
  </p>
  </form>
</body>
</html>
Fichier valide_update.php:
<?php 
require_once('config.php');
    
    // --- Récupération des données du formulaire
$id 		= $_GET['id'];
$prenom 	= $_GET['prenom'];
$name  		= $_GET['name'];

$RecorUpdate = mysql_query("UPDATE ".$dbtable." SET prenom='".$prenom."', name='".$name."' WHERE id LIKE '".$id."' ") or die(mysql_error()); 

?>
<html>
<head>
</head>
<body>
Bravo vous avez ajouté "<?php echo $row_RecorId['name'];?>" et "<?php echo $row_RecorId['prenom'];?>" <br>
vous pouvez voir les infos <a href="list.php">ici</a>
</body>
</html>
merci à vous

Cordialement
Cypher_PHP

par Cypher_PHP » 18 juil. 2005, 15:52

merci
je vais les étudier

Cordialement
Cypher_PHP

par ouckileou » 16 juil. 2005, 15:13

plusieurs points bizarre :
dans ton form_update tu ne récupères pas les valeurs par $_GET alors qu'elles ont été transmises parl'url du lien, tu récupères des $rowrecord[] dont on ne sait pas d'où elles viennent
tu transmets "num" par l'url, que tu ne récupères jamais

dans valide_update.php tu récupères des variables par $_GET alors qu'elles ont été transmises par POST

bref, un petit effort de coordination de tes récupérations de données ferait du bien
et vérifie déjà que tu récupères tes données avant de vérifier l'update ;)

par Cypher_PHP » 16 juil. 2005, 15:05

salut

de retour de mes vacances courtes
beau temps à Noirmoutiers

aie pas de réponses à ce problème?

snif....


Cordialement
Cypher_PHP

par Cypher_PHP » 11 juil. 2005, 17:28

Ah

raté
il ne met toujours pas à jour!

je crois qu'il manque encore quelquechose...

vous m'aviez proposé votre code
ca me parait un peu bizarre

Cordialement
Cypher_PHP