Traiter donnée d'un mysql_fetch_array
Résolu/Fermé
Digit@lChord
Messages postés
129
Date d'inscription
mardi 24 novembre 2009
Statut
Membre
Dernière intervention
5 septembre 2012
-
29 déc. 2011 à 00:03
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 31 déc. 2011 à 17:43
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 31 déc. 2011 à 17:43
A voir également:
- Traiter donnée d'un mysql_fetch_array
- Comment s'appelle la mémoire volatile, d'accès rapide où se trouvent les données en cours de traitement dans un ordinateur ? ✓ - Forum Matériel & Système
- Accès rapide ✓ - Forum Windows 10
- La difference entre memoire virtuelle et memoire volatil - Forum Matériel & Système
- Sélectionnez une extension d'un fichier qui s'ouvre avec un traitement de texte. - Guide
- Memoire volatile sur PDA - Forum Matériel & Système
23 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
30 déc. 2011 à 17:01
30 déc. 2011 à 17:01
ha bon parce que chez moi ça marche, je n'ai pas de BDD mais je vois les valeurs dans la requette
j'ai testé avec ce code:
j'ai testé avec ce code:
<html> <head> <title>Test update de mysql_fetch_array avec foreach</title> </head> <body> <?php if(isset($_POST['b1'])){ mysql_connect('localhost','root',''); mysql_select_db('test'); $lignes=array(); $lignes=$_POST['ligne']; /* echo '<pre>'; print_r($_POST['ligne']); echo '</pre>'; */ foreach($_POST['ligne'] as $key=>$value){ echo '<pre>'; print_r($value); echo '</pre>'; $sql="UPDATE JR_tutorials SET DEVICES='".mysql_real_escape_string($value['DEVICES'])."', NAME='".mysql_real_escape_string($value['NAME'])."', LINK='".mysql_real_escape_string($value['LINK'])."', LANG='".mysql_real_escape_string($value['LANG'])."', RATE='".mysql_real_escape_string($value['RATE'])."' WHERE id_tu='$key' "; //$req = mysql_query($sql, $cnx) or die( mysql_error()); echo '<br />Requette ligne '.$key.' : '.$sql; } } ?> <form name="edit_existing_tutorials" action="" method="POST"> <table> <tr> <td>2</td> <td><input type="text" name="ligne[2][DEVICES]" value=""></td> <td><input type="text" name="ligne[2][NAME]" value=""></td> <td><input type="text" name="ligne[2][LINK]" value=""></td> <td><input type="text" name="ligne[2][LANG]" value=""></td> <td><input type="text" name="ligne[2][RATE]" value=""></td> </tr> <tr> <td>1</td> <td><input type="text" name="ligne[1][DEVICES]" value=""></td> <td><input type="text" name="ligne[1][NAME]" value=""></td> <td><input type="text" name="ligne[1][LINK]" value=""></td> <td><input type="text" name="ligne[1][LANG]" value=""></td> <td><input type="text" name="ligne[1][RATE]" value=""></td> </tr> </table><input type="submit" name="b1"value="Save"> </form> <pre></pre> </body> </html>
phoenamandre
Messages postés
36
Date d'inscription
mercredi 28 décembre 2011
Statut
Membre
Dernière intervention
15 novembre 2012
5
29 déc. 2011 à 00:09
29 déc. 2011 à 00:09
Bonjour,
Bien je ne sais pas si j'ai tout compris, mais si vous souhaitez modifier les données il suffit dans la page traitant l'update de spécifier la ligne grâce à un "Where id_jb=$id " non ?
Bien je ne sais pas si j'ai tout compris, mais si vous souhaitez modifier les données il suffit dans la page traitant l'update de spécifier la ligne grâce à un "Where id_jb=$id " non ?
Digit@lChord
Messages postés
129
Date d'inscription
mardi 24 novembre 2009
Statut
Membre
Dernière intervention
5 septembre 2012
8
29 déc. 2011 à 00:22
29 déc. 2011 à 00:22
Sa aurais été aussi simple si j'avais qu'une ligne a modifier.
Or la mon mysql_fetch_array me génère plusieurs ligne (toute les ligne qui contienne une valeur précise au champ "ID_JB" (et il y en a plusieurs).
Par exemple si mon ID_JB = 11, mon mysql_fetch_array me retourne 2 lignes ok ?
en image sa donne sa : http://img841.imageshack.us/img841/9971/89708719.png
Et ces 2 lignes je souhaiterais qu'après les avoir modifié et avoir cliqué sur le bouton submit (situé en dessous du tableau), bah sa me traite les 2 lignes en question et que sa me fasse une requête "UPDATE SET ...ect".
Je me suis renseigné et j'ai trouvé la piste du "Foreach" mais j'ai pas bien compris comment il fonctionnais.
j'espère avoir été assez clair ^^
Or la mon mysql_fetch_array me génère plusieurs ligne (toute les ligne qui contienne une valeur précise au champ "ID_JB" (et il y en a plusieurs).
Par exemple si mon ID_JB = 11, mon mysql_fetch_array me retourne 2 lignes ok ?
en image sa donne sa : http://img841.imageshack.us/img841/9971/89708719.png
Et ces 2 lignes je souhaiterais qu'après les avoir modifié et avoir cliqué sur le bouton submit (situé en dessous du tableau), bah sa me traite les 2 lignes en question et que sa me fasse une requête "UPDATE SET ...ect".
Je me suis renseigné et j'ai trouvé la piste du "Foreach" mais j'ai pas bien compris comment il fonctionnais.
j'espère avoir été assez clair ^^
Digit@lChord
Messages postés
129
Date d'inscription
mardi 24 novembre 2009
Statut
Membre
Dernière intervention
5 septembre 2012
8
29 déc. 2011 à 01:08
29 déc. 2011 à 01:08
up !
phoenamandre
Messages postés
36
Date d'inscription
mercredi 28 décembre 2011
Statut
Membre
Dernière intervention
15 novembre 2012
5
29 déc. 2011 à 09:44
29 déc. 2011 à 09:44
foreach va prendre une à une les données d'un tableau.
Don dans votre cas, le mieux serait de faire une boucle pour modifier les données je pense non ?
Vous avez sans doute un ID général qui prendre une valeur différente à chaque ligne.
J'ai une idée, mais c'est un peu gros.
D'abord, étrangement vos input n'ont pas de name ??? Il me semble qu'il faut un name pour les identifier avec php, l'idée serait d'ajouter un champ ID en hidden qui transporterait l'ID de la ligne à traiter.
En plus de ça, pour correctement identifier les input par exemple en disant ce
<input type="text" class="input_text_2" value="'.$data['NAME'].'"> va avec la ligne d'ID 12
et ce
<input type="text" class="input_text_2" value="'.$data['NAME'].'"> va avec celle d'ID 15
il faudrait leur donner un name de la façon suivante
<input type="text" name="name'".$ID."'" class="input_text_2" value="'.$data['NAME'].'">
Comme ça pour la ligne d'ID 12 on aurait
<input type="text" name="name12" class="input_text_2" value="'.$data['NAME'].'">
et pour 15
<input type="text" name="name15" class="input_text_2" value="'.$data['NAME'].'">
et ainsi de suite pour les inputs
Ensuite les ID, on pourrait les obtenir à partir des noms des inputs mais je ne suis pas sûr de savoir le faire donc le mieux serait de mettre dans le while une variable
$IDs
qui ajouterait chaque $ID séparé d'une virgule donc :
$IDs = $IDs.",".$ID ;
et après la boucle on transporte $IDs dans un input invisible.
Ensuite dans la partie traitement, on commence par séparer tous les IDs
$IDsTab = array_map('trim', explode(',', $_POST['IDs']));
foreach($IDsTab as $ID)
{
//et ici on entre les inputs avec le nom $_POST['blabla$ID'] (je ne sais pas si on peut écrire "blabla$ID" dans $_POST, j'ai jamais essayé et je ne peux pas vérifier
}
Donc ça donnerait
<form>
<form name="edit_existing_tutorials" action="edit_tutorials.php" method="POST">
<table>
<?php
$IDs;
$req = mysql_query("SELECT * FROM JR_tutorials WHERE id_jb=$id ORDER BY id_tu DESC");
while ($data = mysql_fetch_array($req)) {
$ID=$data['ID'];
echo '<tr><td><input type="text" class="input_text_2" name="device'".$ID."'" value="'.$data['DEVICES'].'"></td>';
echo '<td><input type="text" name="name'".$ID."'" class="input_text_2" value="'.$data['NAME'].'"></td>';
$IDs=$IDs.",".$ID;
}
mysql_free_result ($req);
echo '<input type="hidden" name="hidden" value="$IDs">"
?>
</table>
<input type="submit" name="b1" id="input_btn" value="submit">
Pour la première partie et ensuite ce que j'ai dit pour le traitement.
En espérant que ça fonctionne, je ne peux pas vérifier là !
Mais c'est vraiment peu optimiser, ça me paraît un peu bricolé mais bon...
Bonne chance !
Don dans votre cas, le mieux serait de faire une boucle pour modifier les données je pense non ?
Vous avez sans doute un ID général qui prendre une valeur différente à chaque ligne.
J'ai une idée, mais c'est un peu gros.
D'abord, étrangement vos input n'ont pas de name ??? Il me semble qu'il faut un name pour les identifier avec php, l'idée serait d'ajouter un champ ID en hidden qui transporterait l'ID de la ligne à traiter.
En plus de ça, pour correctement identifier les input par exemple en disant ce
<input type="text" class="input_text_2" value="'.$data['NAME'].'"> va avec la ligne d'ID 12
et ce
<input type="text" class="input_text_2" value="'.$data['NAME'].'"> va avec celle d'ID 15
il faudrait leur donner un name de la façon suivante
<input type="text" name="name'".$ID."'" class="input_text_2" value="'.$data['NAME'].'">
Comme ça pour la ligne d'ID 12 on aurait
<input type="text" name="name12" class="input_text_2" value="'.$data['NAME'].'">
et pour 15
<input type="text" name="name15" class="input_text_2" value="'.$data['NAME'].'">
et ainsi de suite pour les inputs
Ensuite les ID, on pourrait les obtenir à partir des noms des inputs mais je ne suis pas sûr de savoir le faire donc le mieux serait de mettre dans le while une variable
$IDs
qui ajouterait chaque $ID séparé d'une virgule donc :
$IDs = $IDs.",".$ID ;
et après la boucle on transporte $IDs dans un input invisible.
Ensuite dans la partie traitement, on commence par séparer tous les IDs
$IDsTab = array_map('trim', explode(',', $_POST['IDs']));
foreach($IDsTab as $ID)
{
//et ici on entre les inputs avec le nom $_POST['blabla$ID'] (je ne sais pas si on peut écrire "blabla$ID" dans $_POST, j'ai jamais essayé et je ne peux pas vérifier
}
Donc ça donnerait
<form>
<form name="edit_existing_tutorials" action="edit_tutorials.php" method="POST">
<table>
<?php
$IDs;
$req = mysql_query("SELECT * FROM JR_tutorials WHERE id_jb=$id ORDER BY id_tu DESC");
while ($data = mysql_fetch_array($req)) {
$ID=$data['ID'];
echo '<tr><td><input type="text" class="input_text_2" name="device'".$ID."'" value="'.$data['DEVICES'].'"></td>';
echo '<td><input type="text" name="name'".$ID."'" class="input_text_2" value="'.$data['NAME'].'"></td>';
$IDs=$IDs.",".$ID;
}
mysql_free_result ($req);
echo '<input type="hidden" name="hidden" value="$IDs">"
?>
</table>
<input type="submit" name="b1" id="input_btn" value="submit">
Pour la première partie et ensuite ce que j'ai dit pour le traitement.
En espérant que ça fonctionne, je ne peux pas vérifier là !
Mais c'est vraiment peu optimiser, ça me paraît un peu bricolé mais bon...
Bonne chance !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
29 déc. 2011 à 10:20
29 déc. 2011 à 10:20
une solution:
<!-- <form> pourquoi deux balise form ? --> <form name="edit_existing_tutorials" action="edit_tutorials.php" method="POST"> <table> <?php $req = mysql_query("SELECT * FROM JR_tutorials WHERE id_jb=$id ORDER BY id_tu DESC"); //il faut obligatoirement un name= aux input on va les mettre pour qu'ils renvoient un array a deux dimentions ligne[id_tu][type_data] while ($data = mysql_fetch_array($req)) { echo '<tr><td><input type="text" name="ligne[\'id_tu\'][\'DEVICES\']" class="input_text_2" value="'.$data['DEVICES'].'"></td>'; echo '<td><input type="text" name="ligne[\'id_tu\'][\'NAME\']" class="input_text_2" value="'.$data['NAME'].'"></td>'; echo '<td><input type="text" name="ligne[\'id_tu\'][\'LINK\']" class="input_text_2" value="'.$data['LINK'].'"></td>'; echo '<td><input type="text" name="ligne[\'id_tu\'][\'LANG\']" class="input_text_2" value="'.$data['LANG'].'"></td>'; echo '<td><input type="text" name="ligne[\'id_tu\'][\'RATE\']" class="input_text_2" value="'.$data['RATE'].'"></td></tr>'; } mysql_free_result ($req); ?> </table> <input type="submit" name="b1" id="input_btn" value="submit"> </form> <?php if(isset($_POST['b1'])){ //le bouton submit a été cliqué //recup de l'array contenant les valeurs des input $lignes=$_POST['ligne']; //tu fais ta connexion a la base ... puis //on le parcours fait les UPDATE foreach($lignes as $key=>$value){ $req="UPDATE ta_table SET(DEVICES='".mysql_real_escape_string($value['DEVICES']."',NAME='".mysql_real_escape_string($value['NAME'], etc... ) WHERE id_tu='".$key."' "; etc.... } } ?> si tu a vraiement beaucoup de lignes, on peut mémoriser , comparer et faire les UPDATE uniquement si différent
Digit@lChord
Messages postés
129
Date d'inscription
mardi 24 novembre 2009
Statut
Membre
Dernière intervention
5 septembre 2012
8
Modifié par Digit@lChord le 29/12/2011 à 12:53
Modifié par Digit@lChord le 29/12/2011 à 12:53
Merci de votre aide a tout les deux ;D
J'ai parcouru vos idée et celle de Alain_42 me semble plus adaptée a mon faible niveau en php ^^
Bref, j'ai optimisé sa à ma table et sa me donne ceci :
EDIT : Bon finalement la requete s'exécute mais pas correctement parceque quand je clique sur mon bouton, il m'affiche "requete exécutée" mais je n'observe aucune modifications sur mes lignes !
J'ai créer une erreur et j'ai vu que le php me lisais la requete sans remplacer "$value['DEVICES']", $value['NAME']... par leur vrai valeur.
En gros la requête s'exécute comme sa : 'UPDATE JR_tutorials SET DEVICES='', NAME='', LINK='', LANG='', '...ect
Cette erreur provient aussi des input, dont les name ne retourne aucune valeur particulière : <input type="text" name="ligne['ID_TU']['NAME']" class="input_text_2" value="www.url_du_tuto.com">
Dommage sa m'avais l'air d'être la bonne solution...
J'ai parcouru vos idée et celle de Alain_42 me semble plus adaptée a mon faible niveau en php ^^
Bref, j'ai optimisé sa à ma table et sa me donne ceci :
<form name="edit_existing_tutorials" action="" method="POST"> <table><tr><td>> Edit Tutorials</td> <td><input type="submit" name="b1" class="input_btn_2" value="Save Existing Tutorials"></td> </tr></table> <div id="editable"> <table style="padding-left: 4px;padding-top:2px;"> <?php $req = mysql_query("SELECT * FROM JR_tutorials WHERE id_jb=$id ORDER BY id_tu DESC"); while ($data = mysql_fetch_array($req)) { echo '<tr><td><input type="text" name="ligne[\'id_tu\'][\'DEVICES\']" class="input_text_2" maxlength="11" style="color:#FF00FF;width: 50px;" value="'.$data['DEVICES'].'"></td>'; echo '<td><input type="text" name="ligne[\'id_tu\'][\'NAME\']" class="input_text_2" value="'.$data['NAME'].'"></td>'; echo '<td><input type="text" name="ligne[\'id_tu\'][\'LINK\']" class="input_text_2" style="width: 342px;" value="'.$data['LINK'].'"></td>'; echo '<td><input type="text" name="ligne[\'id_tu\'][\'LANG\']" class="input_text_2" style="width: 30px;" maxlength="2" value="'.$data['LANG'].'"></td>'; echo '<td><input type="text" name="ligne[\'id_tu\'][\'RATE\']" class="input_text_2" style="width: 30px;" maxlength="3" value="'.$data['RATE'].'"></td></tr>'; } mysql_free_result ($req); ?> </table> </div> </form> <?php if(isset($_POST['b1'])){ $lignes=$_POST['ligne']; foreach($lignes as $key=>$value){ $sql="UPDATE JR_tutorials SET DEVICES='".mysql_real_escape_string($value['DEVICES'])."', NAME='".mysql_real_escape_string($value['NAME'])."', LINK='".mysql_real_escape_string($value['LINK'])."', LANG='".mysql_real_escape_string($value['LANG'])."', RATE='".mysql_real_escape_string($value['RATE'])."' WHERE id_tu=$key"; $req = mysql_query($sql, $cnx) or die( mysql_error()); } if($req) {echo'requete executée';}else{echo'requete non executée';} } ?>
EDIT : Bon finalement la requete s'exécute mais pas correctement parceque quand je clique sur mon bouton, il m'affiche "requete exécutée" mais je n'observe aucune modifications sur mes lignes !
J'ai créer une erreur et j'ai vu que le php me lisais la requete sans remplacer "$value['DEVICES']", $value['NAME']... par leur vrai valeur.
En gros la requête s'exécute comme sa : 'UPDATE JR_tutorials SET DEVICES='', NAME='', LINK='', LANG='', '...ect
Cette erreur provient aussi des input, dont les name ne retourne aucune valeur particulière : <input type="text" name="ligne['ID_TU']['NAME']" class="input_text_2" value="www.url_du_tuto.com">
Dommage sa m'avais l'air d'être la bonne solution...
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
29 déc. 2011 à 13:10
29 déc. 2011 à 13:10
oups j'ai fait une grosse erreur!
mets comme ça:
mets comme ça:
while ($data = mysql_fetch_array($req)) { $id_tu=$data['id_tu']; echo '<tr><td><input type="text" name="ligne['.$id_tu.'][\'DEVICES\']" class="input_text_2" value="'.$data['DEVICES'].'"></td>'; echo '<td><input type="text" name="ligne['.$id_tu.'][\'NAME\']" class="input_text_2" value="'.$data['NAME'].'"></td>'; echo '<td><input type="text" name="ligne['.$id_tu.'][\'LINK\']" class="input_text_2" value="'.$data['LINK'].'"></td>'; echo '<td><input type="text" name="ligne['.$id_tu.'][\'LANG\']" class="input_text_2" value="'.$data['LANG'].'"></td>'; echo '<td><input type="text" name="ligne['.$id_tu.'][\'RATE\']" class="input_text_2" value="'.$data['RATE'].'"></td></tr>'; }
Digit@lChord
Messages postés
129
Date d'inscription
mardi 24 novembre 2009
Statut
Membre
Dernière intervention
5 septembre 2012
8
29 déc. 2011 à 14:01
29 déc. 2011 à 14:01
Ah oui bien vu :p On y est presque, la les input ressemble a sa avec cette modification, par exemble pour le champ NAME de la l'ID 2
<input type="text" name="ligne['2']['NAME']" class="input_text_2" value="www.url_du_tuto.com">
Et la requete sql pour cette même ligne ressemble a sa : 'UPDATE JR_tutorials SET DEVICES='', NAME='', LINK='', LANG='', RATE='' WHERE id_tu=2 '
Donc du coup quand je clique sur submit, il m'exécute la requête en remplaçant toute les donnée par un vide (LINK='') puisqu'aucune valeur n'arrive a être placé dans la requête mise a part l'id.
<input type="text" name="ligne['2']['NAME']" class="input_text_2" value="www.url_du_tuto.com">
Et la requete sql pour cette même ligne ressemble a sa : 'UPDATE JR_tutorials SET DEVICES='', NAME='', LINK='', LANG='', RATE='' WHERE id_tu=2 '
Donc du coup quand je clique sur submit, il m'exécute la requête en remplaçant toute les donnée par un vide (LINK='') puisqu'aucune valeur n'arrive a être placé dans la requête mise a part l'id.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
29 déc. 2011 à 17:54
29 déc. 2011 à 17:54
fais un print_r du POST pour voir ce que tu reçoit:
echo '<pre>';
print_r($_POST['ligne']);
echo </pre>';
echo '<pre>';
print_r($_POST['ligne']);
echo </pre>';
Digit@lChord
Messages postés
129
Date d'inscription
mardi 24 novembre 2009
Statut
Membre
Dernière intervention
5 septembre 2012
8
29 déc. 2011 à 20:01
29 déc. 2011 à 20:01
Les données sont reçu, mais elle ne sont pas envoyée dans la BDD
Array
(
[2] => Array
(
['DEVICES'] => aa
['NAME'] => aaaaaaaaaaaaaaaa
['LINK'] => aaaaaaaaaa
['LANG'] => aaaaaaaaaa
['RATE'] => aaaaaaaaa
)
[1] => Array
(
['DEVICES'] => aaaaaaaaaa
['NAME'] => aaaaaaaaa
['LINK'] => aaaaaaaa
['LANG'] => aaaaaaaaa
['RATE'] => aaaaaaaa
)
)
Voyez par vous même : http://cluster1.easy-hebergement.net/
Array
(
[2] => Array
(
['DEVICES'] => aa
['NAME'] => aaaaaaaaaaaaaaaa
['LINK'] => aaaaaaaaaa
['LANG'] => aaaaaaaaaa
['RATE'] => aaaaaaaaa
)
[1] => Array
(
['DEVICES'] => aaaaaaaaaa
['NAME'] => aaaaaaaaa
['LINK'] => aaaaaaaa
['LANG'] => aaaaaaaaa
['RATE'] => aaaaaaaa
)
)
Voyez par vous même : http://cluster1.easy-hebergement.net/
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
29 déc. 2011 à 20:25
29 déc. 2011 à 20:25
effectivement y a un truc qui m'échappe.
Et si tu supprime les mysql_real_escape_string et laisse seulement $value['....']
Et si tu supprime les mysql_real_escape_string et laisse seulement $value['....']
Digit@lChord
Messages postés
129
Date d'inscription
mardi 24 novembre 2009
Statut
Membre
Dernière intervention
5 septembre 2012
8
30 déc. 2011 à 02:32
30 déc. 2011 à 02:32
Aucun changement pour les mysql_real_escape_string.
C'est vraiment dommage qu'on ne puisse pas résoudre cette énigme, ce script est indispensable a mon interface admin et je n'ai pas vu d'autre alternative :(
Je pense que la méthode utilisée pour la récupération des donnée dans la requête update n'est pas la bonne, il faudrai récupérer les valeurs des array, et c'est possible vu qu'elle s'affiche après qu'on est cliqué sur submit !!! :/
C'est vraiment dommage qu'on ne puisse pas résoudre cette énigme, ce script est indispensable a mon interface admin et je n'ai pas vu d'autre alternative :(
Je pense que la méthode utilisée pour la récupération des donnée dans la requête update n'est pas la bonne, il faudrai récupérer les valeurs des array, et c'est possible vu qu'elle s'affiche après qu'on est cliqué sur submit !!! :/
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
30 déc. 2011 à 11:31
30 déc. 2011 à 11:31
eureka !!!!!
j'ai trouvé, c'est tout con, il ne faut pas de guillements dans name de l'input pour le nom de définition de l'index
j'ai trouvé, c'est tout con, il ne faut pas de guillements dans name de l'input pour le nom de définition de l'index
name="ligne['.$id_tu.'][DEVICES]"
while ($data = mysql_fetch_array($req)) { $id_tu=$data['id_tu']; echo '<tr><td><input type="text" name="ligne['.$id_tu.'][DEVICES]" class="input_text_2" value="'.$data['DEVICES'].'"></td>'; echo '<td><input type="text" name="ligne['.$id_tu.'][\'NAME\']" class="input_text_2" value="'.$data[NAME].'"></td>'; echo '<td><input type="text" name="ligne['.$id_tu.'][LINK]" class="input_text_2" value="'.$data[LINK].'"></td>'; echo '<td><input type="text" name="ligne['.$id_tu.'][LANG]" class="input_text_2" value="'.$data[LANG].'"></td>'; echo '<td><input type="text" name="ligne['.$id_tu.'][RATE]" class="input_text_2" value="'.$data[RATE].'"></td></tr>'; }
Digit@lChord
Messages postés
129
Date d'inscription
mardi 24 novembre 2009
Statut
Membre
Dernière intervention
5 septembre 2012
8
30 déc. 2011 à 16:52
30 déc. 2011 à 16:52
Aucuns changement :(
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
Modifié par Alain_42 le 30/12/2011 à 17:28
Modifié par Alain_42 le 30/12/2011 à 17:28
je viens de faire le test en réel avec une BDD, avec cette boucle while ça fonctionne:
while ($data = mysql_fetch_assoc($req)) { $id_tu=$data['id_tu']; echo '<tr><td><input type="text" name="ligne['.$id_tu.'][DEVICES]" class="input_text_2" value="'.$data['DEVICES'].'"></td>'; echo '<td><input type="text" name="ligne['.$id_tu.'][NAME]" class="input_text_2" value="'.$data['NAME'].'"></td>'; echo '<td><input type="text" name="ligne['.$id_tu.'][LINK]" class="input_text_2" value="'.$data['LINK'].'"></td>'; echo '<td><input type="text" name="ligne['.$id_tu.'][LANG]" class="input_text_2" value="'.$data['LANG'].'"></td>'; echo '<td><input type="text" name="ligne['.$id_tu.'][RATE]" class="input_text_2" value="'.$data['RATE'].'"></td></tr>'; }
Digit@lChord
Messages postés
129
Date d'inscription
mardi 24 novembre 2009
Statut
Membre
Dernière intervention
5 septembre 2012
8
30 déc. 2011 à 17:38
30 déc. 2011 à 17:38
Je test ton code je te tien au jus dans 10 min ;)
Digit@lChord
Messages postés
129
Date d'inscription
mardi 24 novembre 2009
Statut
Membre
Dernière intervention
5 septembre 2012
8
30 déc. 2011 à 18:00
30 déc. 2011 à 18:00
Sa fonctionne !!!!
Magnifique *-*
Merci beaucoup c'est parfait !
Magnifique *-*
Merci beaucoup c'est parfait !
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
30 déc. 2011 à 18:05
30 déc. 2011 à 18:05
on y est arrivé qd même !
Digit@lChord
Messages postés
129
Date d'inscription
mardi 24 novembre 2009
Statut
Membre
Dernière intervention
5 septembre 2012
8
30 déc. 2011 à 18:14
30 déc. 2011 à 18:14
Je n'y croyais plus :)
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
30 déc. 2011 à 18:45
30 déc. 2011 à 18:45
Si tu as beaucoup de lignes, on peut améliorer le système pour éviter l'update si pas de modif dans la ligne ?
Digit@lChord
Messages postés
129
Date d'inscription
mardi 24 novembre 2009
Statut
Membre
Dernière intervention
5 septembre 2012
8
30 déc. 2011 à 18:53
30 déc. 2011 à 18:53
Se serais pas mal du tout mais c'est pas indispensable, surtout je t'ai déjà assez embété avec ce script je veut pas te déranger plus longtemps ^^
La sur cette page il me reste la partis ou on l'utilisateur créera une ligne au lieu de la modifier, avec un bouton "insérer une ligne" qui ajoutera une ligne dans le tableau de création des tutoriels, ensuite le script détectera le nombre de ligne créé et réalisera une requête insert into un peu de la même manière que le script utilisé pour les editer, enfin je l'espère :)
La sur cette page il me reste la partis ou on l'utilisateur créera une ligne au lieu de la modifier, avec un bouton "insérer une ligne" qui ajoutera une ligne dans le tableau de création des tutoriels, ensuite le script détectera le nombre de ligne créé et réalisera une requête insert into un peu de la même manière que le script utilisé pour les editer, enfin je l'espère :)