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 :

Extraire des variables dans une variable [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Points : 107
    Points
    107
    Par défaut Extraire des variables dans une variable
    Bonjour,

    Je vais essayer d'être clair.
    J'utilise une variable ($test) dans une requête mysql qui contient elle-même des variables (,'$sc_5','$sc_6','$sc_3').
    Ce qui donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO `donnees` (`dat_num`,`dat_crea_date`,`dat_crea_user`,`dat_intitule`,`dat_cat`,`dat_dim`,`dat_desc`,`dat_list`,`dat_5`,`dat_6`,`dat_3`,`dat_val`) VALUES ('',NOW( ),'bob','carton','1','e','e','e','$sc_5','$sc_6','$sc_3','O')
    Evidemment cette requête contient '$sc_5','$sc_6','$sc_3' au lieu de '0','1','0'.
    Comment faire ?

    Merci par avance.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 228
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 228
    Points : 8 487
    Points
    8 487
    Billets dans le blog
    17
    Par défaut
    Donne-nous un *extrait* de ton code contenant la requête.

  3. #3
    Membre régulier Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Points : 107
    Points
    107
    Par défaut
    ok faut être indulgent, je débute

    Donc extrait de code, c'est parti :

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    $req1_part1 = 'INSERT INTO `donnees` (`dat_num`,`dat_crea_date`,`dat_crea_user`,`dat_intitule`,`dat_cat`,`dat_dim`,`dat_desc`,`dat_list`';
     
    $select1 = "SELECT * FROM `categories` WHERE `cat_sc`='O' AND `cat_val`='O' ORDER BY `cat_intitule`";
    $result1 = mysql_query($select1,$link) or die ('Erreur : '.mysql_error() );
    $total1 = mysql_num_rows($result1);
     
    // si on a récupéré un résultat on l'affiche.
    if($total1)  {
    // suite du tableau
     
    // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
        while($row1 = mysql_fetch_array($result1))  {
     
    for($i=0; $i<1; $i++) {
                          $req1_part2 = $req1_part2.',`dat_'.$row1["cat_num"].'`';
                          }
                                                  }
    // fin du tableau.
                }
    else
    {
    }
     
    // on libère le résultat
    mysql_free_result($result1);
     
    $req1_part3 =  ',`dat_val`)';
     
    $req1_part4 = ' VALUES (\'\',NOW( ),\''.$login.'\',\''.$intitule3.'\',\''.$categories.'\',\''.$dim8.'\',\''.$desc8.'\',\''.$list8.'\'';
     
    $select2 = "SELECT * FROM `categories` WHERE `cat_sc`='O' AND `cat_val`='O' ORDER BY `cat_intitule`";
    $result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );
    $total2 = mysql_num_rows($result2);
     
    // si on a récupéré un résultat on l'affiche.
    if($total2)  {
    // suite du tableau
     
    // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
        while($row2 = mysql_fetch_array($result2))  {
     
    for($i=0; $i<1; $i++) {
                          $req1_part5 = $req1_part5.',\'$sc_'.$row2["cat_num"].'\'';
                          }
                                                  }
    // fin du tableau.
                }
    else
    {
    }
     
    // on libère le résultat
    mysql_free_result($result2);
     
    $req1_part6 = ',\'O\')';
     
    $requete1 = $req1_part1.$req1_part2.$req1_part3.$req1_part4.$req1_part5.$req1_part6;
    voilà et j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo $requete1;
    exit;
    pour afficher le résultat de la requête ci-dessus...

    Merci !

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 228
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 228
    Points : 8 487
    Points
    8 487
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par kryogen Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req1_part5 = $req1_part5.',\'$sc_'.$row2["cat_num"].'\'';
    Je ferai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $req1_part5 = $req1_part5 . ', \'' . ${'sc_' . $row2['cat_num']} . '\'' ;
    http://fr2.php.net/manual/fr/languag...s.variable.php

    Mais :
    - ce n'est pas propre
    - c'est illisible

    Tu dois sûrement pouvoir utiliser un tableau à la place de la ligne donnée plus haut.

  5. #5
    Membre régulier Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Points : 107
    Points
    107
    Par défaut
    merci c'est nickel !

    Bon et pour la propreté et la lisibilité, j'en suis conscient, encore une fois je débute...

    Bonne continuation !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Introduire une variable dans une variable
    Par benramin31 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/02/2012, 11h30
  2. Recuperer le nom d'une variable dans une variable String
    Par aliwassem dans le forum Langage
    Réponses: 11
    Dernier message: 23/10/2009, 12h38
  3. ajouter des occurrences a une variable dans une table
    Par sssssssam dans le forum SAS Base
    Réponses: 2
    Dernier message: 01/04/2009, 14h53
  4. Réponses: 3
    Dernier message: 26/09/2008, 10h41
  5. [langage] Extraire un block dans une variable multiligne
    Par |DUCATI| DesMo dans le forum Langage
    Réponses: 9
    Dernier message: 11/02/2003, 14h56

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