Php recup donnée separées par virgules

dubuducu Messages postés 395 Statut Membre -  
thifoolish Messages postés 79 Statut Membre -
Bonjour,
je souhaiterai savoir s'il est possible de faire ceci :

je voudrais, pour des raisons diverses, recuperer les infos de formulaires de ma base sql a l'aide d'une interface ou l'utilisateur entre par exemple l'id :

EX: Devis n° : 29,25,16,34

Submit

Ces données sont separées par des virgules et je souhaiterai savoir quelle genre de requete je devrai faire .
Merci !
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. donuts08 Messages postés 523 Statut Membre 39
     
    bonjour,

    alors en php tu as une fonction qui s'appelle explode et qui te permet de diviser une chaine en morceaux à l'aide d'un séparateur: (elle renvoi un tableau avec chaque élément)

    essai ca tu verras:

    $tableau = explode(",","10,20,30,35");
    foreach($tableau as $key=>$val)
    {
    echo "une valeur: ".$val."<br/>";
    }

    tu peux aussi mettre la champ saisie directement dans un IN dans ta requête SQL:
    SELECT donne1,donne2 FROM matable WHERE id IN (10,20,30,35)

    attention aux injections SQL parcontre, vérifie bien ce que l'utilisateur met. ^^
    0
  2. dubuducu Messages postés 395 Statut Membre 4
     
    mERCI mais je ne vois pas comment l'utiliser !
    on m'a conseillé d'utiliser la fonction Split()
    De plus je ne vois pas ce que représentent les ( 10,15,20 ..) entre les parentheses.

    Merci
    0
    1. donuts08 Messages postés 523 Statut Membre 39
       
      $tableau = explode(",","10,20,30,35");

      la chaine "10,20,30,35" sera découpé en utilisant comme séparateur la virgule et chaque morceau est rassemblé dans un tableau. Ce qui revient à faire:

      $tableau[] = "10";
      $tableau[] = "20";
      $tableau[] = "30";
      $tableau[] = "35";
      0
  3. thifoolish Messages postés 79 Statut Membre 18
     
    Bonjour,

    La solution proposée plus haut est exactement équivalente à un traitement avec la fonction split.
    Elle est même meilleure (plus rapide en temps d'execution.

    Cldt.
    0