IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Boucle sur array [MySQL]


Sujet :

PHP & Base de données

  1. #21
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Non,

    Ce que je souhaite, c le echo de $liste_valeur à la sortie de la boucle,

    et le echo de la requête dans le sens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query = 'select id_cmd from commande where id_cmd in ('.$liste_valeur.')';
    un echo de $r1 ne donnera rien

  2. #22
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Ok j'ai enfin compris ce que tu voulais
    Voici le résultat des 2 echo :
    On voit nettement un espace devant le 14, ça peut posé problème ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    liste valeur : 14 18 19
     
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in E:\mon_chemin on line 21
     
    select id_cmd from commande where id_cmd in ( 14 18 19)

  3. #23
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Points : 333
    Points
    333
    Par défaut
    Tu as modifié le code? Il est censé y avoir une virgule entre chaque valeur.

  4. #24
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    oui sinon ça risque pas de marcher ...
    j'ai bien fait de te demander des echo

  5. #25
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Tu as modifié le code? Il est censé y avoir une virgule entre chaque valeur.
    Si, il doit y avoir une virgule :
    J'avais une erreur dans la fonction JS qui ouvre la popup avec les valeurs du IN, je l'ai modifiée pour avoir une virgule entre chaque valeur. Le problème n'est pas réglé car maintenant j'ai une virgule à la fin du IN que je ne sais pas enlever, du coup la requête ne passe pas, je vous montre :

    14,18,19, <--
    liste valeur : 14,18,19,

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in E:mon chemin on line 24
    select id_cmd from commande where id_cmd in (14,18,19,)
    Voici la fonction JS qui ouvre la popup avec les valeurs du IN, la partie concernant la virgule se trouve à la fin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    function OuvrirPop(url,nom,haut,gauche,largeur,hauteur,options) {
    var xmlHttp = xhr()
      var recupcheck=apparait();
      //var recupcheckTout=selectall();
        var ns4 = (document.layers)? true:false;          //NS 4
        var ie4 = (document.all)? true:false;             //IE 4
        var dom = (document.getElementById)? true:false;  //DOM
        if (ie4 || dom) {
          xMax = screen.width;
          yMax = screen.height;
        } else if (ns4) {
          xMax = window.outerwidth;
          yMax = window.outerheight;
        } else {
          xMax = 400;
          yMax = 100;
        }
        if (typeof(gauche)=='undefined') {gauche=0;}
        if (typeof(haut)=='undefined') {haut=0;}
        if (gauche == 0) {
          xOffset = (xMax - largeur)/2;
        } else {
          xOffset = gauche;
        }
        if (haut == 0) {
          yOffset = (yMax - hauteur - 50)/2;
        } else {
          yOffset = haut;
        }
    	if (recupcheck != "") {
    	var total="";
    	for(var i=0; i<document.form1.choix.length; i++){
    	if(document.form1.choix[i].checked){
    		total += document.form1.choix[i].value+",";
    		}
    	}
    	if(total){
        ouvpop=window.open(url+"?req="+total,nom,'screenX='+xOffset+',screenY='+yOffset+',top='+yOffset+',left='+xOffset+',width='+largeur+',height='+hauteur+','+options);
    		} 
    	}
    }

  6. #26
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    J'y suis presque, j'ai enlevé la virgule de fin mais la requête ne passe pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?php 
    include('connexions/connection.inc.php');
    if (isset($_GET["req"])) {$req=urldecode($_GET["req"]);} else {$req="";}
     
    echo $req.'<br>';
    $f = substr($req,0,-1); 
    $d=array($f);
     
    $liste_valeur='';
    for($i=0; $i<sizeof($d); $i++)
    	{
    	echo $d[$i].'<br>'; //Pour test
    if ($i==0)
    {	
    echo $liste_valeur=$d[$i].'<br>'; 
    }
    else
    {
    $liste_valeur=$liste_valeur.$d[$i];
    	}
    }
    echo 'liste valeur : '.$liste_valeur.'<br>';
     
    $r1 = mysql_query('select id_cmd from commande where id_cmd in ('.$liste_valeur.')');
     
    	while($tab_r1 = mysql_fetch_array($r1)) {
    	echo $tab_r1['id_cmd'];
    		}
    	echo $query = 'select id_cmd from commande where id_cmd in ('.$liste_valeur.')';
     
    ?>

  7. #27
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Ca fonctionne, j'ai modifié la requête :
    Merci à tous

    Partie Javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var total="";
    	for(var i=0; i<document.form1.choix.length; i++){
    	if(document.form1.choix[i].checked){
    		total += document.form1.choix[i].value+",";
    		}
    	}
    if(total){
        ouvpop=window.open(url+"?req="+total,nom,'screenX='+xOffset+',screenY='+yOffset+',top='+yOffset+',left='+xOffset+',width='+largeur+',height='+hauteur+','+options);
    		}
    php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php 
    include('connexions/connection.inc.php');
    if (isset($_GET["req"])) {$req=urldecode($_GET["req"]);} else {$req="";}
     
    echo $req.'<br>';
    $f = substr($req,0,-1); 
     
    $r1 = mysql_query("select id_cmd from commande where id_cmd in (".$f.")");
     
    	while($tab_r1 = mysql_fetch_array($r1)) {
    	echo $tab_r1['id_cmd'].'<br>';
    		}
    	echo $query = 'select id_cmd from commande where id_cmd in ('.$f.')';
    Résultat :

    14,18,19,
    14
    18
    19
    select id_cmd from commande where id_cmd in (14,18,19)

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. boucle for sur array
    Par rebel29270 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 10/10/2011, 16h53
  2. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  3. [PHP 5.1] FPDF boucle sur array
    Par arthuro45 dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2009, 20h08
  4. L'installation d'XP boucle sur elle-même
    Par pf106 dans le forum Windows XP
    Réponses: 13
    Dernier message: 20/08/2005, 14h55
  5. [MFC] Boucle sur un bouton
    Par karl3i dans le forum MFC
    Réponses: 6
    Dernier message: 17/02/2004, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo