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 :

Définir une variable à partir d'une requête [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Définir une variable à partir d'une requête
    bonjour a tous

    je n'arrive pas à faire fonctionner ce code :
    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
    59
    60
    61
    62
    63
    64
     
    mysql_connect("localhost", "sudo", "sudo"); 
     
    mysql_select_db("compta");
     
    mysql_query (
    				"
    				INSERT INTO `list_compte` 
    				VALUES
    					(
    					'',
    					'$nom_compte',
    					'$num_compte',
    					'$nom_banque',
    					'$tel_banque',
    					'$adresse_banque',
    					'$comment'
    					)
    				"
    			);
     
    mysql_close ();
     
     
    mysql_connect("localhost", "user", "user"); 
     
    mysql_select_db("compta");
     
     
    $req = mysql_query (	
    						"
    						SELECT * FROM `list_compte`
    						WHERE 
    							`nom_compte` = ".$nom_compte."
    						AND 
    							`num_compte` = ".$num_compte."
    						AND 
    							`nom_banque` = ".$nom_banque."
    						LIMIT 1"
    					);
     
    $ID = $req['ID']
     
     
    mysql_connect("localhost", "sudo", "sudo"); 
     
    mysql_select_db("compta");
     
     
    mysql_query (
    				"
    					CREATE TABLE ".$ID."
    						(
    							`ID` MEDIUMINT UNSIGNED NOT NULL, 
    							`debit` DECIMAL(12,2) NULL,
    							`credit` DECIMAL(12,2) NULL,
    							`type` TINYTEXT CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,
    							`cat` ENUM('CB','cheque','virement') CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL, 
    							`date` DATE NOT NULL, `validOP` ENUM('0','1') NOT NULL, 
    							`comment` TEXT CHARACTER SET ascii COLLATE ascii_general_ci NULL
    						) 
    					ENGINE = MyISAM
    				"
    			);
    le but est le suivant : je crée une entrée dans la table "liste_compt"
    je recupere l'ID de cette entrée
    et je crée une table qui porte pour nom cette ID

    ca crée bien l'entrée dans la table list_compt mais ca ne crée pas la nouvelle table

    merci d'avance pour votre aide

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    Déjà tu peux faire un seul :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mysql_connect("localhost", "sudo", "sudo"); 
    mysql_select_db("compta");
    en haut de ton script puis le
    a la toute fin de la page.

    Enuite, après ta premiere requete tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ID = mysql_insert_id();
    ça te retourne l 'ID de ta dernière requete (tu dois mettre cette commande juste après ta requete INSERT)

    Pour info :
    $ID = $req['ID'] est faux.

    tu aurais du écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $req = mysql_query (    
                            "
                            SELECT * FROM `list_compte`
                            WHERE 
                                `nom_compte` = ".$nom_compte."
                            AND 
                                `num_compte` = ".$num_compte."
                            AND 
                                `nom_banque` = ".$nom_banque."
                            LIMIT 1"
                       );
     
    $ID = mysql_result($req, 0, "ID");
    $req est un tableau qui contient le résultat de la requête.

    Tu peux accéder aux données avec mysql_result() , mysql_fetch_array() , mysql_fetch_assoc() ...

    Ensuite :
    Tant que tu es en phase de développement, tu devrais faire suivre les requêtes de la fonction die(mysql_error()) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query(".....") or die(mysql_error());
    Ceci t'affiche les erreurs Mysql .

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    merci pour ces réponses,

    je vais essayer ces modif

    @+

  4. #4
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut resolution
    re bonjour,

    afin de ne pas compliquer le code inutilement j'ai choisi cette solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ID = mysql_insert_id();
    une autre petite erreur repérée grace a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_query(".....") or die(mysql_error());
    il faut écrire `".$ID."` et non ".ID"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    mysql_query ("
    CREATE TABLE `".$ID."`
    (
    `ID` MEDIUMINT UNSIGNED NOT NULL, 
    `debit` DECIMAL(12,2) NULL,
    `credit` DECIMAL(12,2) NULL,
    `type` TINYTEXT CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,
    `cat` ENUM('CB','cheque','virement') CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL, 
    `date` DATE NOT NULL, `validOP` ENUM('0','1') NOT NULL, 
    `comment` TEXT CHARACTER SET ascii COLLATE ascii_general_ci NULL
    ) 
    ENGINE = MyISAM
    ")or die(mysql_error());
    voila bonne journée a tous
    et merci encore à N1bus pour ton aide

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/03/2012, 09h10
  2. [Batch] Créer une chaine à partir d'une variable et d'une autre chaine
    Par mlle lain dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 10/11/2009, 16h26
  3. Réponses: 4
    Dernier message: 31/08/2006, 15h31
  4. Réponses: 2
    Dernier message: 29/06/2006, 13h58
  5. Réponses: 7
    Dernier message: 15/11/2005, 10h14

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