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 :

Pour faire une connexion automatique [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Points : 243
    Points
    243
    Par défaut Pour faire une connexion automatique
    Bonjour à tous,

    Comme je l'ai signalé, j'apprends à utiliser MySQL pour moi personnellement.

    J'ai fait plusieurs scripts sql pour un moteur de recherche. J'ai vu qu'il y avait de nombreux codes pour cela, mais je voulais apprendre tout de A à presque Z.

    Pour l'instant, je n'ai fait que :
    1- Création de base et table
    2- Insertion des données
    3- liste complète
    4- liste unitaire
    5- ajout et modification de mots clés
    6- suppression de données
    7- suppression de la base.

    Ce sont des scripts directs. J'ai vu que l'on pouvait faire ça avec une fonction, mais pour l'instant, je m'en tiens aux bons vieux codes.

    Dans chaque page je fais la connexion avec "mysql_connect" (c'est normal !)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_connect("localhost", "root", "");
    et dans chaque page, je ferme la base.
    Au lieu d'écrire à chaque fois ce code, est-il possible de faire ça dans un seul fichier et appeler ce dernier pour remplacer le "mysql_connect".

    J'ai essayé avec "include" mais ça marche pas. J'ai essayé de faire comme dans le php, c'est à dire faire un seul fichier commun à toutes les pages et appeler simplement ce ficier avec "include".

    Je vois qu'avec MySQL c'est pas exactement la même chose.


    C'est pratiquement la même chose si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lien = mysql_connect( "localhost", "root", "" ) ;
    Voulez-vous m'aider et me dire quoi faire ?


    Merci d'avance.

    ++

  2. #2
    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
    Je ne vois pas pourquoi ça ne marche pas !
    Moi j'ai externalisé la fonction suivante dans un programme FonctionsPHP.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
    /*
    Fonction ConnecterMySQL
     
    Connexion à MySQL en local
    @return $db : Identifiant de connexion à MySQL
    */
    function ConnecterMySQL()
    {
    	global $db;
    	$machine  = 'localhost'; // Nom de la machine
    	$user     = 'root'; // Nom d'utilisateur MySQL
    	$password = ''; // Mot de passe de l'utilisateur
     
    	$db = mysql_connect($machine, $user, $password) or
         die("Problème de connexion au serveur "); // Identifiant de connexion à MySQL
    	echo "<br>Connexion MySQL : ".$db."<br>";
    	return($db);
    } // Fin fonction ConnecterMySQL
    Ensuite dans les programmes PHP je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Inclusion des fonctions utiles
    include "FonctionsPHP.php";
     
    ConnecterMySQL(); // Connexion à MySQL
    Et ça marche.

  3. #3
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Points : 243
    Points
    243
    Par défaut
    Merci CinePhil, ce que tu m'as donné va très bien.

    Tu as fais nettement fait plus que moi, puisque tu utilises une fonction.
    Comme je ne suis pas balèze avec ça, j'évite de l'utiliser.

    C'est à ça qu'on reconnaît un "pro" d'un "amateur".

    Merci encore.

    ++

    Ah j'oubliais, tu peux me dire comment supprimer cette ligne ?

  4. #4
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Pour ton affichage à supprimer, il faudrait voir ton code mais tu dois certainement faire un echo() de ton mysql_query()

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       $q = mysql_query("SELECT * FROM ma_table");
       echo $q; // mettre cette ligne en commentaire

    Pour ce qui est de ton autre problème moi je fais tout simplement comme ceci :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $db= @mysql_connect($sql_serveur, $sql_login, $sql_password) or die("<strong>Connection au serveur impossible !</strong><br />".mysql_error());
    @mysql_select_db($sql_base, $db);
    Voici par exemple un fichier que tu pourrais appeler 'mysql.php' (il faut bien sur définir les différentes variables de connexion à BDD).
    Il ne te reste plus ensuite qu'à écrire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    include("mysql.php");

  5. #5
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Points : 243
    Points
    243
    Par défaut
    Merci darkstar123456,

    Je vais voir ça de beaucoup plus près.

    Tu m'as gentillement donné ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $db= @mysql_connect($sql_serveur, $sql_login, $sql_password) or die("<strong>Connection au serveur impossible !</strong><br />".mysql_error());
    @mysql_select_db($sql_base, $db);
    Seulement, la base est appelée depuis un formulaire parce que supposons qu'il y ait plusieurs bases.

    Là, où je pédales dans la s'moule, c'est au niveau de"@mysql_select_db($sql_base, $db);", parce que dans ce cas, ça va être plutôt difficile, non ?

    Ensuite, je ne veux pas dire que je suis nul, mais il y a tant de commandes nouvelles pour moi que j'ai du mal à bien comprendre tout ça !
    Je vois que tu as mis "@" juste avant "mysql_select", tu veux bien me dire à quoi ça peut servir ?

    Merci de tes explications.

  6. #6
    Membre confirmé Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Points : 547
    Points
    547
    Par défaut
    l'arrobase échappe les erreurs en php , je ne te le conseille pas
    à moins que tu travailles chez microsoft?

    ton "Ressource id #3" est due aufait que tu affiche probablement la variable de connexion dans un de tes echo

    cela affiche ressource, parce que ces fonction (mysql_connect, mysql_select_db) ne sont pas là pour retourner une valeur humainement compréhensible!

    est-ce ce que tu as fais?


    ::EDIT::

    Après reflexion, je pense plutôt que vue que tu travailles sur plusieurs base de données, tu fais surement plusieurs connexion
    donc, en dernier paramètre de mysql_connect, rajoute : true

    comme ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_connect(host, login, mot_de_pass, true);

  7. #7
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Points : 243
    Points
    243
    Par défaut
    Citation Envoyé par SphynXz Voir le message
    l'arrobase échappe les erreurs en php , je ne te le conseille pas
    à moins que tu travailles chez microsoft?
    C'est bien noté et je vais le nécessaire.

    Citation Envoyé par SphynXz Voir le message
    ton "Ressource id #3" est due aufait que tu affiche probablement la variable de connexion dans un de tes echo
    J'ai regardé attentivement le script reçu par CinePhil pour une connexion automatique, et j'ai vu que dans cette astuce une ligne qui affichait ça par un "echo";
    J'ai fait le nécessaire. En principe, cela devrait être OK pour toutes les pages.

  8. #8
    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
    Juste sur ça :
    Citation Envoyé par jlb59 Voir le message

    Là, où je pédales dans la s'moule, c'est au niveau de"@mysql_select_db($sql_base, $db);", parce que dans ce cas, ça va être plutôt difficile, non ?
    Se connecter à MySQL est une chose.
    Interroger une base de données en est une autre.

    Comme je crois avoir lu que tu es sur une appli personnelle en local, ne t'embête pas avec les droits d'accès aux données.

    Ma fonction te connecte à MySQL et effectivement, tu peux supprimer le 'echo' inutile.

    Ensuite pour interroger la ou les bases de données, aucun problème. Tu peux même faire des requêtes multibases. Un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT t1.nomColonne1, t2.nomColonne2
    FROM nomBase1.nomTable1 t1, nomBase2.nomTable2 t2
    WHERE t1.nomColonne1 = t2.autreColonne

  9. #9
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Points : 243
    Points
    243
    Par défaut
    Tu m'avais dit comment contourner mon problème qui était
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    $lien = mysql_connect( "localhost", "root", "" );
     
      //récupération des valeurs des champs:
      $nombase  = $_GET["base"] ;
      $url      = $_GET["url"] ;
    ...
    Je pense que ton code (mysql.php par exemple) est bien écrit comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql_serveur='localhost';
    $sql_user='root';
    $sql_password='';
    $sql_base='';
     
    $db= mysql_connect($sql_serveur, $sql_user, $sql_password) or die("<strong>Connection au serveur impossible !</strong><br />".mysql_error());
    mysql_select_db($sql_base, $db);

    J'ai essayé mais voilà l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Notice: Undefined variable: lien in g:\siteqi98\exemples_forum\tests\$$$mysql\insertion_complete.php on line 40
     
    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in g:\siteqi98\exemples_forum\tests\$$$mysql\insertion_complete.php on line 40
    Et ça c'est le 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
    <?php
    // appel du script de connexion
    include("mysql.php");
    //$lien = mysql_connect( "localhost", "root", "" );
     
      //récupération des valeurs des champs:
      $nombase  = $_GET["base"] ;
      $url      = $_GET["url"] ;
      $domaine  = $_GET["domaine"] ;
      $rubrique = $_GET["rubrique"] ;
      $motscles = $_GET["motscles"] ;
     
    mysql_select_db($nombase); 
     
    //création de la requête SQL:
    $sql = "INSERT INTO $nombase (id,url,domaine,rubrique,motscles) VALUES ( '','$url','$domaine','$rubrique',' $motscles')";
     
      //exécution de la requête SQL:
      $requete = mysql_query($sql, $lien) or die( mysql_error() ) ;
     
      //affichage des résultats, pour savoir si l'insertion a marchée:
      if($requete)
    C'est au niveau de l'exécution de la requête qu'est cette erreur.
    Je suppose que c'est au niveau de $lien qu'il y a un problème !

    J'ai oublié quelque chose ou je dois ajouter autre chose ?

    Merci vraiment de ton aide.

  10. #10
    Membre confirmé Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Points : 547
    Points
    547
    Par défaut
    montre nous le contenu de mysql.php

  11. #11
    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
    L'erreur est claire :
    Notice: Undefined variable: lien
    Tu veux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //exécution de la requête SQL:
      $requete = mysql_query($sql, $lien)
    Alors qu'il n'y a pas de variable $lien dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    // appel du script de connexion
    include("mysql.php");
    //$lien = mysql_connect( "localhost", "root", "" );
     
      //récupération des valeurs des champs:
      $nombase  = $_GET["base"] ;
      $url      = $_GET["url"] ;
      $domaine  = $_GET["domaine"] ;
      $rubrique = $_GET["rubrique"] ;
      $motscles = $_GET["motscles"] ;

  12. #12
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Points : 243
    Points
    243
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Alors qu'il n'y a pas de variable $lien
    T'as de bons yeux... et une bonne tête !

    J'ai fait les modifications et ça marche OK !

    Merci beaucoup CinePhil.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/05/2010, 17h31
  2. Programme pour faire une connexion Http (HttpURLConnection)
    Par zakaria87 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 15/05/2010, 14h58
  3. Programme pour faire une connexion Http (HttpURLConnection)
    Par zakaria87 dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 14/05/2010, 00h25
  4. [Galerie] Script pour faire une galerie automatiquement
    Par gantec dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 27/01/2008, 02h05
  5. Réponses: 1
    Dernier message: 13/12/2006, 09h04

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