Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2804 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  traitement update d'après tableau (array) - php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

traitement update d'après tableau (array) - php

n°1958725
t671
Posté le 19-01-2010 à 12:49:11  profilanswer
 

Bonjour,
 
Je n'arrive pas à enregistrer des donnés issus d'un array.  :??:  
"idph" représente l'identifiant unique de l'enregistrement. "commentaire" représente le commentaire de l'enregistrement qui va être modifié et mis à jour dans la base.
Première étape : j'affiche des textes (commentaires) issus d'une base de donnée mysql, et j'ai le moyen de les modifier :
 

Code :
  1. echo '<center>';
  2. while($row2 = mysql_fetch_array($result2))
  3. {
  4. echo '<form action="modif_com.php?idph='. $row2['idph'] .' & commentaire='. $row2['commentaire'] .'"  method="POST" value="envoyer" name="soumettre">';
  5.    echo '<img border=0 height="50" src="../../images/photos_alb/' . $row2['photo'] . '"><input name="'. $row2['idph'] . '" type="text" id="commentaire_' . $row2['idph'] . '" value="'.$row2['commentaire'] .'" size="150" maxlength="250">';
  6. }
  7. echo '<input type="submit" value="envoyer" /></center>';
  8. echo '</form></center>';


 
Deuxième étape : je récupère les variables, et j'enregistre les commentaires modifiés dans la base :
 

Code :
  1. $idph = $_POST["idph"];
  2.     $commentaire = $_POST["commentaire"];
  3. if( isset($_POST['commentaire']) )
  4. {
  5.    //Boucle sur les valeurs
  6.  foreach($_POST['commentaire'] as $idph => $commentaire)
  7. {
  8.  
  9.     //Requête d'update de la photo pointée par idph
  10.     $requete = 'UPDATE photos SET commentaire='.$commentaire.' WHERE idph='.$idph;
  11.     $result = mysql_query($requete,$link) or die ('Erreur : '.mysql_error() );
  12. }
  13. }
  14. mysql_free_result($result);


 
Si je teste la récupération de mes valeurs $_POST, j'ai ceci (pour 2 enregistrements) :
 
Array
(
    [11] => imge 1
    [12] => aaaaaaaaaaaaaaaa
)

 
Entre-crochet représente l'idph, et après "=>", représente le commentaire.
 
Mais je n'ai pas de mise à jour de la base, et pas de message d'erreur !  :(  
 
Merci pour l'aide que vous m'apporterez ...  :)

mood
Publicité
Posté le 19-01-2010 à 12:49:11  profilanswer
 

n°1958754
PierreC
Posté le 19-01-2010 à 14:29:52  profilanswer
 

essaye déjà de rajouté en début de ton programme un  
 

Code :
  1. error_reporting(E_ALL);


 
Tu sera informer si tu utilise des variables indéfinit.
 
Puis valide que ton code passe dans le foreach, place dans le foreach des  
echo "passage dans le foreach avec les valeurs :  $idph   $commentaire "  
 
 
autre très bon code de débugage :
echo '<pre>'; print_r($_POST); echo '</pre>';


---------------
Du tofu en Alsace : www.tofuhong.com
n°1958761
t671
Posté le 19-01-2010 à 15:20:43  profilanswer
 

PierreC a écrit :

essaye déjà de rajouté en début de ton programme un  
 

Code :
  1. error_reporting(E_ALL);


 
Tu sera informer si tu utilise des variables indéfinit.
 
Puis valide que ton code passe dans le foreach, place dans le foreach des  
echo "passage dans le foreach avec les valeurs :  $idph   $commentaire "  
 
 
autre très bon code de débugage :
echo '<pre>'; print_r($_POST); echo '</pre>';


 
Bonjour pierreC, et merci de m'aider.
Pour le error_reporting(E_ALL);, je ne connais pas et ne sait pas comment ça fonctionne. Je l'ai mis en début de 2° script, mais rien ???
Pour les echo dans le foreach, peux-tu me montrer comment placer la récupération des valeurs $idph   $commentaire  ?
Et pour le '<pre>'; print_r($_POST); echo '</pre>';[/quotemsg] c'est ce que j'avais mis après les $_POST, et j'ai pu constaté que mes variables étaient bien présente dans l'array :
 
Array  
(  
    [11] => imge 1  
    [12] => aaaaaaaaaaaaaaaa  
)  

n°1958778
PierreC
Posté le 19-01-2010 à 17:15:07  profilanswer
 

t671 a écrit :


 
Bonjour pierreC, et merci de m'aider.
Pour le error_reporting(E_ALL);, je ne connais pas et ne sait pas comment ça fonctionne. Je l'ai mis en début de 2° script, mais rien ???


 
Si y'a rien c'est que c'est bon :-) tu n'utilise aucune variable indéfini

t671 a écrit :


 
Pour les echo dans le foreach, peux-tu me montrer comment placer la récupération des valeurs $idph   $commentaire  ?
 


 

Code :
  1. foreach($_POST['commentaire'] as $idph => $commentaire)
  2. {
  3.   echo "passage dans le foreach avec les valeurs :  $idph et  $commentaire "  ;
  4.  
  5.      //Requête d'update de la photo pointée par idph
  6.      $requete = 'UPDATE photos SET commentaire='.$commentaire.' WHERE idph='.$idph;
  7.      $result = mysql_query($requete,$link) or die ('Erreur : '.mysql_error() );
  8. }


 
 
[quotemsg=1958761,3,309144]
Si là par contre rien ne s'affiche y'a un problème, tu n'entre pas dans le foreach.
 


---------------
Du tofu en Alsace : www.tofuhong.com
n°1958779
PierreC
Posté le 19-01-2010 à 17:17:46  profilanswer
 

AHH mais bete que je suis  
 
Ton print_r($_POST) indique  


Array  
(  
    [11] => imge 1  
    [12] => aaaaaaaaaaaaaaaa  
)  


 
Mais tu veux lire $_POST['commentaire']  qui n'existe pas :
 
Ton donc est donc tout simplement :
 


 if( isset($_POST) )
 {
    //Boucle sur les valeurs
  foreach($_POST as $idph => $commentaire)
 {
   
     //Requête d'update de la photo pointée par idph
     $requete = 'UPDATE photos SET commentaire='.$commentaire.' WHERE idph='.$idph;
     $result = mysql_query($requete,$link) or die ('Erreur : '.mysql_error() );
 }
 }
 


 
 
qu'est ce que ca donne ?


---------------
Du tofu en Alsace : www.tofuhong.com
n°1958782
fred777888​999
Posté le 19-01-2010 à 17:42:25  profilanswer
 

Mettre des quotes autours des chaines de caracteres dans les ordres sql est rarement debile.

n°1958785
t671
Posté le 19-01-2010 à 17:57:02  profilanswer
 

Merci pierreC ..........  :bounce:  
Ca fonctionne ..........   :)  
 
 :hello:

n°1959348
t671
Posté le 21-01-2010 à 10:56:57  profilanswer
 

Bonjour ! Encore une tit' question .....
 
Quand je saisi un texte à enregistrer dans ma base, celui-ci est bien enregistré. Par contre, il n'y a que les 42 premiers caractères qui sont affichés.
 
Voilà mon script qui affiche :
 

Code :
  1. echo '<center>';
  2. while($row2 = mysql_fetch_array($result2))
  3. {
  4. echo '<form action="modif_com.php?idph='. $row2['idph'] .' & commentaire='. $row2['commentaire'] .'"  method="POST" value="envoyer" name="soumettre">';
  5.    echo '<img border=0 width="80" src="../../images/photos_alb/' . $row2['photo'] . '">     
  6.      <input name="'. $row2['idph'] . '" type="text" id="commentaire_' . $row2['idph'] . '" value="'.$row2['commentaire'] .'" size="150" maxlength="6000"><p>';
  7.  echo '<input type="submit" value="Valider">';
  8.  echo '<input type="button" name="lien" value="Annuler" onClick="self.location.href=\'aff_alb_photos.php\'">';
  9.  }
  10. echo '</center></form>';


 :whistle:


Message édité par t671 le 21-01-2010 à 10:57:32
n°1959349
flo850
moi je
Posté le 21-01-2010 à 10:58:09  profilanswer
 

Quelle taille fait ton champ en base de données ?


---------------

n°1959350
t671
Posté le 21-01-2010 à 11:03:06  profilanswer
 

flo850 a écrit :

Quelle taille fait ton champ en base de données ?


 Il est défini en "TEXT". Donc il n'y a pas de taille de définie.
Mais j'y pense : les " " sont-ils acceptés comme du texte ?  :heink:

mood
Publicité
Posté le 21-01-2010 à 11:03:06  profilanswer
 

n°1959355
t671
Posté le 21-01-2010 à 11:13:54  profilanswer
 

flo850 a écrit :

Quelle taille fait ton champ en base de données ?


 
Ben non, c'est pas ça !!! J'ai défini le champs en VARCHAR 6000, et c'est pareil ....  :(  
 
C'est quand même bizarre .....  :pt1cable:

n°1959356
kao98
...
Posté le 21-01-2010 à 11:20:23  profilanswer
 

La balise <center> :love:


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1959358
flo850
moi je
Posté le 21-01-2010 à 11:30:52  profilanswer
 

j'avais pas lu ton code en détail  
 
afficher directement les donénes de la base de données c'ets mal ( par exemple si ton champ contient du javascript  ça va s'executer
 
utilise htmlentites


---------------

n°1959361
t671
Posté le 21-01-2010 à 11:36:21  profilanswer
 

flo850 a écrit :

j'avais pas lu ton code en détail  
 
afficher directement les donénes de la base de données c'ets mal ( par exemple si ton champ contient du javascript  ça va s'executer
 
utilise htmlentites


 
Pour kao98, ce n'est pas la balise CENTER !
 
Pour flo850 : je comprend pas ce que tu veux me dire ???  :??:  

n°1959362
t671
Posté le 21-01-2010 à 11:40:35  profilanswer
 

flo850 a écrit :

j'avais pas lu ton code en détail  
 
afficher directement les donénes de la base de données c'ets mal ( par exemple si ton champ contient du javascript  ça va s'executer
 
utilise htmlentites


 
J'ai trouvé ..... Mon script n'affiche pas les " ".
Comment palier à cela ????

n°1959364
kao98
...
Posté le 21-01-2010 à 11:41:25  profilanswer
 

t671 a écrit :


 
Pour kao98, ce n'est pas la balise CENTER !
 
Pour flo850 : je comprend pas ce que tu veux me dire ???  :??:  


Ha mais j'essayais pas de t'aider hein ! Je me foutais de la gueule de ton code, c'est tout !
 
T'es complètement largué. Tu ferais mieux de reprendre tout par le commencement, avec de bonnes bases. Trouve toi de bons bouquin pour débuter le développement, le dev web, et tout ce qu'il faut, et ça ira beaucoup mieux ensuite.


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1959367
flo850
moi je
Posté le 21-01-2010 à 11:41:55  profilanswer
 

au lieu de value="'.$row2['commentaire'] .'"
tu dois utiliser value="'.htmlentities($row2['commentaire']) .'"


---------------

n°1959368
flo850
moi je
Posté le 21-01-2010 à 11:44:29  profilanswer
 

kao98 a écrit :


Ha mais j'essayais pas de t'aider hein ! Je me foutais de la gueule de ton code, c'est tout !
 
T'es complètement largué. Tu ferais mieux de reprendre tout par le commencement, avec de bonnes bases. Trouve toi de bons bouquin pour débuter le développement, le dev web, et tout ce qu'il faut, et ça ira beaucoup mieux ensuite.


comportement très intelligent  
surtout que tu n'as même pas la décence de lui donner une piste sur un bon bouquin ( en php il y en a peu ) ou de bonnes sources


---------------

n°1959377
t671
Posté le 21-01-2010 à 11:50:51  profilanswer
 

kao98 a écrit :


Ha mais j'essayais pas de t'aider hein ! Je me foutais de la gueule de ton code, c'est tout !
 
T'es complètement largué. Tu ferais mieux de reprendre tout par le commencement, avec de bonnes bases. Trouve toi de bons bouquin pour débuter le développement, le dev web, et tout ce qu'il faut, et ça ira beaucoup mieux ensuite.


 
Je fais des pages web pour le plaisir, par occupation, parceque ça me plait ! Pas pour le boulot !!! Je n'ai rien à gagner ..... !
Maintenant, sur ta réaction je préfères ne rien dire. Rester poli et aimable par respect pour tous ceux qui fréquentes ce site !  :kaola:

Message cité 1 fois
Message édité par t671 le 21-01-2010 à 11:55:17
n°1959379
kao98
...
Posté le 21-01-2010 à 11:52:50  profilanswer
 

flo850 a écrit :


comportement très intelligent  
surtout que tu n'as même pas la décence de lui donner une piste sur un bon bouquin ( en php il y en a peu ) ou de bonnes sources


Suis blasé aujourd'hui.
Les gens qui sortent "je connais pas error_reporting" et qui ne prennent pas la peine de chercher sur google, ça me gonfle. :/


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1959380
kao98
...
Posté le 21-01-2010 à 11:53:11  profilanswer
 

t671 a écrit :


 
Je fais des pages web pour le plaisir ! P


Et ça n'empêche pas d'apprendre à le faire correctement !


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1959381
t671
Posté le 21-01-2010 à 11:56:09  profilanswer
 

kao98 a écrit :


Et ça n'empêche pas d'apprendre à le faire correctement !


 j'avais pô fini ..........  :kaola:

n°1959383
kao98
...
Posté le 21-01-2010 à 11:59:17  profilanswer
 

t671 a écrit :


 j'avais pô fini ..........  :kaola:


Bon, ok. Désolé. Je m'excuse.
Au moins, maintenant, tu connais le fond de ma pensée !
Si tu veux apprendre à faire du dev web, même pour le plaisir, apprend à le faire bien (reprend donc les bases !!!). Ce ne sera que plus gratifiant tu crois pas ?
 
Au départ, j'essayais de te faire réagir quant à la balise <center>. C'est une balise qui ne devrait plus être utilisée. Elle est d'un autre âge, d'une autre époque !


Message édité par kao98 le 21-01-2010 à 11:59:29

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1959393
t671
Posté le 21-01-2010 à 12:29:21  profilanswer
 

flo850 a écrit :

au lieu de value="'.$row2['commentaire'] .'"
tu dois utiliser value="'.htmlentities($row2['commentaire']) .'"


 
Merci flo850 ...  :)   :hello:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  traitement update d'après tableau (array) - php

 

Sujets relatifs
Traitement du langage naturel par réseau de neurones artificiel.Aide sur Update
Aide sur petit tableau de calcul de prix[Resolu] Tableau nb cours par categorie (Moodle)
[VBA] Collage Variable après copie de tableau de taille variableRecherche dans tableau et copie de lignes
Tri de tableaucréer un tableau a partir d'une chaine
Choisir entre une liste de variables ou un tableauutilisation de src dans un push sur un array.
Plus de sujets relatifs à : traitement update d'après tableau (array) - php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR