Modifier une table mysql

christophe -  
Titrou Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je voudrais éditer les données d'une base mysql dans un tableau, de façon à pouvoir modifier les données directement.
Je ne sais pas si je m'exprime correctement, disons que si j'utilise phpmyadmin par exemple, je ne peux modifier les donnes que ligne par ligne, avec enregistrement à chaque fois, ce qui fait que quand il y a beaucoup de lignes à modifier c'est fastidieux.
Voici le code de mes deux pages, qui ne fonctionne pas des qu'il y a plusieurs lignes ( je comprend bien qu'il s'agit de l'identifiant de l'enregistrement qui n'est plus unique, mais je ne vois pas comment faire):

Page essai.php:

<html>
<head>
<TITLE>Modifications de données</TITLE>
</head>
<body>
<?
$identifiant= $_POST['identifiant'];
include "apel.php";
$db=mysql_connect($mysql_host,$mysql_login,$mysql_pass);
mysql_select_db($mysql_dbnom,$db);

$demande = "SELECT * from $table1 WHERE $table1.code='$code_moto' ORDER BY reference,commentaire";


$result = mysql_query($demande);

$i = 0;
?>
<table with="100%" border="1" cellpadding="2" cellspacing="2">
<TR>
<TD>code_piece</TD>
<TD>commentaire</TD>
<TD>N° photo</TD>
<TD>id_piece</TD>
<TD>poids</TD>
<TD>lot</TD>
</TR>
<?
while ($val = mysql_fetch_array($result))
{

$v_code_piece = mysql_result($result,$i,"code_piece");
$v_commentaire = mysql_result($result,$i,"commentaire");
$v_reference = mysql_result($result,$i,"reference");
$v_id_piece = mysql_result($result,$i,"id_piece");
$v_poids = mysql_result($result,$i,"poids");
$v_lot = mysql_result($result,$i,"lot");
?>
<form method="post" action="essai1.php">
<tr>
<TD><input type="varchar" name="code_piece" value="<? echo "$v_code_piece";?>" maxlength="30"><br></TD>
<TD><input type="varchar" name="commentaire" value="<? echo "$v_commentaire";?>" maxlength="30"><br></TD>
<TD><input type="varchar" name="reference" value="<? echo "$v_reference";?>" maxlength="4"><br></TD>
<TD><input type="varchar" name="id_piece" value="<? echo "$v_id_piece";?>" maxlength="5"><br></TD>
<TD><input type="varchar" name="poids" value="<? echo "$v_poids";?>" maxlength="3" size="3"><br></TD>
<TD><input type="varchar" name="lot" value="<? echo "$v_lot";?>" maxlength="2" size="2"><br></TD>
</tr>
<?
$i++;
}
?>
</table>
<input type="submit" name="submit" value="Enregistrer">
</form>
</body>
</html>



page essai1.php:

<html>
<head></head>
<body bgcolor="#bceed5" text="#757575">
<?
include "apel.php";
$db=mysql_connect($mysql_host,$mysql_login,$mysql_pass);
mysql_select_db($mysql_dbnom,$db);

$code_piece=$_POST['code_piece'];
$commentaire=$_POST['commentaire'];
$reference=$_POST['reference'];
$idpiece=$_POST['id_piece'];
$poids=$_POST['poids'];
$lot=$_POST['lot'];

echo "$code_piece";

// on écrit la requête sql

$sql = "UPDATE catalogue SET code_piece='$code_piece',commentaire='$commentaire',reference='$reference',id_piece='$idpiece',poids='$poids',lot='$lot' WHERE id_piece='$idpiece'";

mysql_query($sql)
or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

echo 'Les modifications ont bien été enregistrées.';

mysql_close();
?>
<P>
<A href="essai0.php">Retour</A>
</body>
</html>


Voila, d'avance merci beaucoup à ceux qui pourront me donner une piste !
A voir également:

3 réponses

Bergkamp007 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   3
 
Si je comprend bien ce que tu veux faire:

Ex:
1) Tableau de 10 lignes
2) Modification données ligne 2, ligne 4, ligne 5
3) Enregistrement de toutes modifications en une seule fois

Mon conseil:
1) Stocker les valeurs modifiées dans un tableau
2) Parcourir les valeurs modifiées
3) A chaque nouvelle ligne modifiés -> UPDATE
3
Titrou Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
Ah bah bravo, le jour où il a une db de 300.000 lignes tu vas lui dire d'aller dans phpmyadmin et pis de cherche au pif dans sa db ? serieusement...
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Dans phpmyadmin, tu peux cocher toutes les cases que tu veux modifier, et cliquer en bas de tableau sur le bouton "modifier"...
-2