Comment mettre a jour une BDD avec des champs repetés

Résolu
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 - 17 août 2005 à 10:42
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 - 18 août 2005 à 10:15
Salut

Je souhaite pouvoir mettre a jour les champs Quantité et Poids de ma base de donnée sur les 3 lignes de mon tableau.
Sauf que la mise a jour ne se fait que sur la derniere ligne ID 5.
Les autres modif ne sont pas prise en compte.

Comment faire pour mettre a jour tous les champs ?
Merci
MANUANTIBES

10 réponses

dartaloufe Messages postés 35 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 22 août 2005
17 août 2005 à 12:28
heu cé normal je t'es donné juste le code pour générer les champs texte pas pour l'insertion ds la bd
après tu te débrouille!
en faite j'y ai reflechi et le plu simple serai de faire ceci :

<?php

$i=0;

while($row_Recordset1 = mysql_fetch_array($Recordset1))
{
echo' <tr>

<td>
'.$row_Recordset1['ID'].'


</td>
<td>
'.$row_Recordset1['Code'].'


</td>
......
</tr>';

//tu ajoute ts tes id ds un tableau
$tab_id[$i]=$row_Recordset1['ID'];

$i++;
}

//ensuite tu implode ton tableau ds un champs hidden
$liste_id = implode(',',$tab_id);

echo '';

?>

/*de ce fait les champs ke tu génere on le meme numero ke l'id auquel ils correspondent
(quantite_5 correspond a l'id_5)

tu recupère tu champs liste_id que tu remet dans un tableau*/
$liste_id = explode(',',$_POST['liste_id']);

//ensuite tu creer un nouveau tableau avec ton id le prix et la quantite et ts ce que tu veux
$i=0;

while($liste_id [$i] != NULL)
{
$id_tmp = $liste_id [$i];
//ajout l'id
$tab[0][$i] = $_POST['id_'.$id_tmp ];
//la quantite
$tab[1][$i] = $_POST['quantite_'.$id_tmp ];
//le prix
$tab[2][$i] = $_POST['prix_'.$id_tmp ];

$i++;
}

et ensuite pour faire l'insertion ds ta bd c'est plus simple
tu peu utiliser une boucle
tu recupère tes id, tes quantite et le prix ds un tableau

$j=0
while($tab[0][$j] != NULL)
{
//ensuite il manque la connexion a la base le nom de la base et tous mais le code sql est
mysql_query('INSERT INTO ta_table(id_produit,quantite,prix,) VALUES(
'.$tab[0][$j].', '.$tab[1][$j].', '.$tab[2][$j].'' );

$j++;
}

voila !

il manque des trucs mais l'essentiel est la!
si ca te va ferme le forum!

Dartaloufe
3
dartaloufe Messages postés 35 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 22 août 2005
17 août 2005 à 10:45
utilise des noms différents pour tes champs quantite1, quantite2....
et kan tu fai l'insertion dans ta base selon l'id tu insert la quantite correspondante
0
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
17 août 2005 à 10:49
je vois ce que tu veux me dire, mais j'utilise un comportement de serveur "region repeté".
donc je ne vois pas comment mettre ne place ton conseil.

Veux tu voir mon code?

MANUANTIBES
0
dartaloufe Messages postés 35 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 22 août 2005
17 août 2005 à 10:53
Ouai envoie ton code, je comprend pas le terme "region répété"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
17 août 2005 à 11:10
ok
voici mon fichier de travail : http://www.manuantibes.free.fr/dossier/index.toto remplace toto par PHP

et voici ma base de donné où je fais mon test : http://www.manuantibes.free.fr/dossier/table_produit.sql

merci de ton aide.

MANUANTIBES
0
dartaloufe Messages postés 35 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 22 août 2005
17 août 2005 à 11:21
ok j'ai pas ts regarder mais le probleme viend de ce ke j'ai di
ts tes champs de quantité on le meme nom donc il se base sur la valeur du dernier en l'occurence 5 dans ton exemple

toi tu met :

<?php do { ?>
<tr>

<td>
<?php echo $row_Recordset1['ID']; ?>
">

</td>
<td>
<?php echo $row_Recordset1['Code']; ?>
">

</td>
<td>
<?php echo $row_Recordset1['Produit']; ?>


solution :

<?php
$i =0;
while($row_Recordset1 = mysql_fetch_array($Recordset1))
{
echo'
<tr>

<td>
'.$row_Recordset1['ID'].'


</td>
<td>
'.$row_Recordset1['Code'].'


</td>
[.........]
</tr>';

$i++;
}
?>

de cette manière tu génère ton code a la volée avec des champs de nom différent.

Dartaloufe
0
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
17 août 2005 à 11:50
merci pour ta reponse et une part de solution

mais ca marche toujours pas :

voici le ds body

<form name="form1" method="POST" action="<?php echo $editFormAction; ?>">


ID,
Code,
Produit,
Destinataire,
Magasin,
Famille,
Quantit&eacute;,
Poids,

<?php $i =0;
while($row_Recordset1 = mysql_fetch_array($Recordset1))
{
echo' ----

'.$row_Recordset1['ID'].'
,
'.$row_Recordset1['Code'].'
,
'.$row_Recordset1['Produit'].'
,
'.$row_Recordset1['Destinataire'].'
,
'.$row_Recordset1['Magasin'].'
,
'.$row_Recordset1['Famille'].'
,
,
,
';
$i++;
} ?>







</form>

par contre ton action repeté affiche que l'ID 4 et 5 du BOEUF. l'ID 1 a disparu.

et

aussi va bien a la page "enre_ok.htm" apres avoir cliquez sur le bouton OK mais ne mets pas a jour ma base de donnée.
ni aucun champs
MANUANTIBES
0
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
17 août 2005 à 13:56
ok je te remercie bien pour le temps que tu as passé.
Je vais assyez de me debrouillé seul, mais je ne suis pas si fort que toi, et j'utilise dreamweaver pour codé, je ne suis pas tres fort sur le code.

encore merci

A+

MANUANTIBES
0
dartaloufe Messages postés 35 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 22 août 2005
17 août 2005 à 14:13
ok je savais pas, il aurait fallu que tu le précise au debut de ton message...


c'est pas compliquer le php, il fau juste comprendre le principe de la programmation et ca marche pour tous les langages ;-)

bonne continuation et n'hesite pas a me soliciter si tu as un pb

Dartaloufe
0
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
18 août 2005 à 10:15
En faite le travail que le bosse m'a donné j'etais partir pour le faire en ASP pour pouvoir le mettre en intranet au boulot, car il y 3 personnes qui doivent s'en servir.

J'ai commencé en ASP, mais je bloque sur le meme probleme ( mettre a jour plusieurs champs en meme temps), donc du coup j'ai voulu testé en PHP, car sur ce forum vous repondez tres bien aux questions.

J'ai posé la meme question en ASp sur plusieurs site personne ne m'a encore repondu et la le boss il me pousse au cu, pour finir vite.

en me disant si j'arrive a le faire en PHP et que l'on m'aide bien , je pourrais le reprogrammé en ASP.
A+
MANUANTIBES
0
Rejoignez-nous