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 :

plusieurs tables dans une base


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingenieur-retraité-electronique
    Inscrit en
    Mai 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Ingenieur-retraité-electronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 93
    Points : 38
    Points
    38
    Par défaut plusieurs tables dans une base
    Bonjour,

    Je veux créer plusieurs Tables (transfo,transistors,diodes....) dans une bdd qui s'appelle 00002.electronique.
    1-j'ai réalisé un script (Modèle S. Vauthier) pour rentrer les données. form.php
    2-fonctions.php pour la connexion (je ne suis pas sûr de mon écriture).
    ------------------------------
    $hote = "localhost";
    $base = "00002_electronique";
    $table = "transformateurs";
    $user = "root";
    $password = "";
    -------------------------------
    form.php:
    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
    <?php
    include("fonctions.php");
    ?>
    <html>
        <head><title>Formulaire de saisie utilisateur </title></head>
        <body>
            <h1>Inscrivez les transformateurs !</h1>
            <h2>Entrez les données demandées :</h2>
            <form name="inscription" method="post" action="form.php">
                Entrez l'intensite : <input type="text" name="intensite"/> <br/>
                entrez la tension 	<input type="text" name="tension"/> <br/>
                Entrez la puissance : <input type="text" name="puissance"/><br/>
                Entrez la soudure : <input type="text" name="soudure"/><br/>
    			<input type="submit" name="valider" value="OK"/>
            </form>
            <?php
            if (isset ($_POST['valider'])){
                //On récupère les valeurs entrées par l'utilisateur :
                $intensite=$_POST['intensite'];
                $tension=$_POST['tension'];
                $puissance=$_POST['puissance'];
    			$soudure=$_POST['soudure'];
    			
                //On construit la date d'aujourd'hui
                //strictement comme sql la construit
                $today = date("y-m-d");
                //On se connecte à la table transformateurs
                connect00002_electronique();
                                
                //On prépare la commande sql d'insertion
                $sql = 'INSERT INTO Utilisateurs VALUES("","'.$intensite.'","'.$tension.'","'.$puissance.'","'.$soudure.'","'.$today.'")'; 
                                
                /*on lance la commande (mysql_query) et au cas où, 
                on rédige un petit message d'erreur si la requête ne passe pas (or die) 
                (Message qui intègrera les causes d'erreur sql)*/
                mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
                                
                // on ferme la connexion
    			//mysql_close();
    			//pour continuer il faut supprimer mysqlclose()
    			
            }
            ?>
        </body>
    </html>
    Au lieu d'écrire: connect00002_electronique(); qui est ma base je voudrais m'adresser à ma table 'transformateurs' (je ne sais pas comment faire?)

    fonction.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    function connect00002_electronique(){
        $base = mysql_connect ('localhost', 'root', '');  
        mysql_select_db ('00002_electronique', 'transformateurs') ;
    }
    ?>
    Merci à tous.
    où dois-je inscrire la table transformateurs?

  2. #2
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    où dois-je inscrire la table transformateurs?
    Dans vos requêtes de sélection, d'update ou d'insert...
    Pas dans la sélection de votre Base

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO Utilisateurs VALUES("","'.$intensite.'","'.$tension.'","'.$puissance.'","'.$soudure.'","'.$today.'")
    Tu insères les caractéristiques des transformateurs dans la table des utilisateurs ?

    Bonnes habitudes à prendre :
    1) Nommer les colonnes que l'on alimente dans une requête INSERT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO transformateur ( /* les colonnes à alimenter */ )
    VALUES ( /* les valeurs à injecter dans les colonnes */ )
    2) Inutile d'alimenter un identifiant auto-incrémenté. Donc on ne fait pas figurer le nom de la colonne et on ne lui attribue pas de fausse valeur.

    3) Inutile de mettre entre apostrophes les valeurs numériques.

    4) Attention aux injections SQL !
    Utilise plutôt PDO qui devient de plus en plus un standard que l'ancienne syntaxe simple mysql_xx.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingenieur-retraité-electronique
    Inscrit en
    Mai 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Ingenieur-retraité-electronique

    Informations forums :
    Inscription : Mai 2011
    Messages : 93
    Points : 38
    Points
    38
    Par défaut
    Tu insères les caractéristiques des transformateurs dans la table des utilisateurs ?
    Bien sur que non, mais comme j'apprends petit à petit, j'ai créé des tables tranformateurs, diodes, zener etc...
    Mais j'y vais à petits pas....
    J'ai modifié les différentes erreurs du treads n°1 et ça fonctionne.

    2) Inutile d'alimenter un identifiant auto-incrémenté. Donc on ne fait pas figurer le nom de la colonne et on ne lui attribue pas de fausse valeur.

    3) Inutile de mettre entre apostrophes les valeurs numériques.

    4) Attention aux injections SQL !
    Utilise plutôt PDO qui devient de plus en plus un standard que l'ancienne syntaxe simple mysql_xx.
    Je n'ai pas compris le 2) le 4) et le PDO si c'est un standard où trouver sa syntaxe??
    Merci de me l'expliciter.

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Pour mon point 2, ta requête insérant une valeur vide dans la première colonne de la table me laisse à penser que cette colonne est un identifiant de type entier auto-incrémenté. Puisque cette colonne est auto-incrémentée, elle prendra sa valeur toute seule ; inutile de la faire figurer dans la requête d'insertion ni de lui attribuer la fausse valeur vide.

    Pour les injections SQL, j'ai donné un lien qui explique de quoi il s'agit. Il convient de masquer les variables qui alimentent les requêtes dans le code php et PDO fait ça tout seul.

Discussions similaires

  1. Suppression de tables dans une base de données Mysl
    Par Furius dans le forum Requêtes
    Réponses: 6
    Dernier message: 07/06/2013, 10h34
  2. vérifier l'existance d'une table dans une base de donnée
    Par zidenne dans le forum Bases de données
    Réponses: 1
    Dernier message: 31/10/2005, 11h39
  3. création d'une table dans une base de donnée accèss
    Par zidenne dans le forum Bases de données
    Réponses: 1
    Dernier message: 25/10/2005, 10h54
  4. plusieurs tables dans une seule table
    Par scully2501 dans le forum Access
    Réponses: 1
    Dernier message: 10/10/2005, 09h19
  5. Taille de chaque table dans une base de donnée
    Par Florent PORRAS dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/09/2005, 21h22

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