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

  FORUM HardWare.fr
  Programmation
  PHP

  Variable Tableau qui ne passe pas en condition ( ! )

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Variable Tableau qui ne passe pas en condition ( ! )

n°2150333
Profil sup​primé
Posté le 23-07-2012 à 09:10:38  answer
 

Bonjour à tous, j'au un petit problème fâcheux avec une variable qui vient d'un formulaire,
( la ligne du formulaire ->
 
 echo'<td align="center"> <input type="checkbox" name="validation_id_pole[]" value="'.$result->out_pole_emploi_id.'" /> </td>';)
 
Voila, jusque la tout va bien, ensuite je transmet les infos au php,et dans le php je fais :
 
$valid_manager = $_POST['validation_id_pole'];
echo"$valid_manager[0]";
 
Pour voir si mon tableau est récupéré dans mon PHP, et bien oui les cases sont pleines, la super content  :bounce: , ça marche, mais problème, quand je mets cette pu***** de variable en condition, cela plante, avec évidement une magnifique page blanche ....  
la finalité est d'inserrer les données dans la base par le biais de cette variable "tableau" par une boucle for, comme ceci ( mais même si dans un IF ça plante ???  :sweat: ) :
 
 for ($i=0 ; $i < count($valid_manager) ; $i++ ) {
$db = new CLconnexion();
$query.$i = " UPDATE OUT_BLA_BLA SET  
   
   BLA_BLA_manager='1',
   BLA_BLA_DTC_manager=$date_etap_valid
       
   WHERE  
   
   BLA_BLA_emploi_id = $valid_manager[$i]
       
   ";
$db->Open('magrossebase.net');
mysql_query($query.$i) or die(echo"mysql_error() </br> Erreur : Contactez le service informatique";);
$db->Close();
            }
 
PS : Merci ce votre aide :)


Message édité par Profil supprimé le 23-07-2012 à 10:01:59
mood
Publicité
Posté le 23-07-2012 à 09:10:38  profilanswer
 

n°2150349
Profil sup​primé
Posté le 23-07-2012 à 10:28:29  answer
 

SVP je vais devenir chauve à force de me tirer les cheveux,
 
je précise que dans ma page de contrôle je récupère bien les valeurs, le count fonctionne bien, il m'affiche combien de cellules sont entrées.... mais j'ai enlevé tout le superflu a savoir les $query.$i, le or die, remplacé le for par for ($i=0 ; $i < $compteur ; $i++ )  
 
le compteur est juste $compteur = count($valid_manager);
 
et non ça ne marche toujours pas... HELP :'(

n°2150356
spamoa
Posté le 23-07-2012 à 11:16:55  profilanswer
 

ça vas probablement pas résoudre ton problème. Mais dans ce cas un foreach est plus indiqué :

Code :
  1. $db->Open('magrossebase.net');
  2. $query = array()
  3. foreach ($valid_manager as $i=>$elem) {
  4.    $db = new CLconnexion();
  5.    $q = " UPDATE OUT_BLA_BLA SET 
  6.    
  7.    BLA_BLA_manager='1',
  8.    BLA_BLA_DTC_manager=$date_etap_valid
  9.      
  10.    WHERE 
  11.    
  12.    BLA_BLA_emploi_id = $elem
  13.      
  14.    ";
  15.   array_push($query, $q);
  16.   mysql_query($q) or die(echo"mysql_error() </br> Erreur : Contactez le service informatique";
  17. }


 
PS : En fait si ça peut t'aider car je suis pas sur que ce type de concaténation soit copain avec les tableau. Il me semble bien que les tableaux à index ne peuvent être concaténé qu'avec l'opérateur ".". ($var = "Une chaîne".$table[index]."Une autre chaîne" )
 
Edit : Pourquoi ne pas produire un tableau de requête plutôt qu'un objet tout sale. (souligné dans le code) C'est plus facile pour naviguer ensuite dedans. Bien que je ne comprenne pas très bien l’intérêt de stocker les requêtes vue qu'elles sont exécutés immédiatement.
 
Edit2 : Rein à voir avec ton problème mais quel est l’intérêt d'ouvrir la base à chaque itération de la boucle. L’ouvrir une fois au début n'est-il pas suffisant?. Sachant de plus qu'il faudrait la refermer à chaque fois (ou à la fin si tu ne l'ouvre qu'une fois)


Message édité par spamoa le 23-07-2012 à 16:02:53
n°2150400
rufo
Pas me confondre avec Lycos!
Posté le 23-07-2012 à 14:15:47  profilanswer
 

Sortir $db = new CLconnexion(); de la boucle. Ouvre/fermer la BD à chaque tour de boucle est une grosse perte de temps (perfs).
 
Par ailleurs, ne pas mettre le count() dans le for, il est réévalué à chaque tour de boucle
 
$date_etap_valid sort d'où :??: si c'est une date au format yyy-mm-dd, alors il faut mettre al valeur entre quotes  dans la requête sql pour l'affectation!

Code :
  1. $db = new CLconnexion();
  2. $db->Open('magrossebase.net');
  3.  
  4. foreach(validation_id_pole as $i => $id) {
  5.    $sSQL = "UPDATE OUT_BLA_BLA SET BLA_BLA_manager = '1', BLA_BLA_DTC_manager = '$date_etap_valid' WHERE BLA_BLA_emploi_id = $id";
  6.    mysql_query($sSQL) or die(echo"mysql_error() </br> Erreur : Contactez le service informatique";);
  7. }
  8.  
  9. $db->Close();


 


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2150404
Profil sup​primé
Posté le 23-07-2012 à 14:24:13  answer
 

Merci de ces réponses complètes, enfaite apres moultes tentatives et recherce sur internet, mon code à fonctionner, et je l'ai rectifié graçe à vous :) merci ! Voila le code :

Code :
  1. $date_etap_valid = GetFullStrDate(time());
  2. $valid_manager = $_POST['validation_id_pole'];
  3. $compteur = count($valid_manager);
  4. /*Algo de la boucle FOR :
  5. TANT QUE $i est inferieur au nombre de case de la variable valid_manager, faire connexion BDD, et updater le pole emploi id
  6. par la varibale $validmanager[NUMERO DE LA CASE INCREMEMTER PAR $i], connexion à la base, execution du SQL, et ensuite si erreur, affichage du message d'erreur
  7. sinon FIN TANT QUE*/
  8. $db = new CLconnexion();
  9. $db->Open('magrossebase.net');
  10. for ($i=0 ; $i < $compteur ; $i++ ) {
  11. $query = " UPDATE OUT_POLE_EMPLOI SET
  12.   out_pole_emploi_fact_valid_manager='1',
  13.   out_pole_emploi_dte_valid_manager=".$date_etap_valid."
  14.   WHERE
  15.   out_pole_emploi_id = ".$valid_manager[$i]."
  16.   ";
  17. mysql_query($query) or die(mysql_error());
  18.          }
  19. $db->Close();


Message édité par Profil supprimé le 23-07-2012 à 14:27:20

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

  Variable Tableau qui ne passe pas en condition ( ! )

 

Sujets relatifs
Rappel des entêtes de colonnes d'un tableau htmlTableau PHP & Fichier texte
Tableau associatif numérotéCréation d'un nouveau tableau sans cellule vide
Help! Extraire données en tableau + publipostageComment compter le nombre de lignes dans un tableau croisé dynamique ?
Multi Filtrage d'un tableau Excel par macroAttribuer tableau à chaque objet d'une classe
[C] retourner un tableau de string[C] Remplir un tableau 2 dimensions avec un fichier
Plus de sujets relatifs à : Variable Tableau qui ne passe pas en condition ( ! )


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