Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/08/2011, 14h29   #1
Invité régulier
 
Homme Georges
Ingenieur-retraité-electronique
Inscription : mai 2011
Messages : 72
Détails du profil
Informations personnelles :
Nom : Homme Georges
Localisation : Réunion

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

Informations forums :
Inscription : mai 2011
Messages : 72
Points : 5
Points : 5
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 :
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 :
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?
Georges974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 14h43   #2
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
Citation:
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
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 14h24   #3
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 013
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 013
Points : 18 289
Points : 18 289
Envoyer un message via MSN à CinePhil
Citation:
Code :
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 :
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.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 16h51   #4
Invité régulier
 
Homme Georges
Ingenieur-retraité-electronique
Inscription : mai 2011
Messages : 72
Détails du profil
Informations personnelles :
Nom : Homme Georges
Localisation : Réunion

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

Informations forums :
Inscription : mai 2011
Messages : 72
Points : 5
Points : 5
Citation:
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.

Citation:
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.
Georges974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 17h02   #5
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 013
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 013
Points : 18 289
Points : 18 289
Envoyer un message via MSN à CinePhil
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.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h24.


 
 
 
 
Partenaires

Hébergement Web