Comment mettre a jour une BDD avec des champs repetés [Résolu]

Signaler
Messages postés
486
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
23 mars 2019
-
Messages postés
486
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
23 mars 2019
-
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

Messages postés
35
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
22 août 2005

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
Messages postés
35
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
22 août 2005

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
Messages postés
486
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
23 mars 2019
4
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
Messages postés
35
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
22 août 2005

Ouai envoie ton code, je comprend pas le terme "region répété"
Messages postés
486
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
23 mars 2019
4
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
Messages postés
35
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
22 août 2005

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
Messages postés
486
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
23 mars 2019
4
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
Messages postés
486
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
23 mars 2019
4
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
Messages postés
35
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
22 août 2005

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
Messages postés
486
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
23 mars 2019
4
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