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 :

Problème avec base de données [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut Problème avec base de données
    Bonjour a tous
    Je suis passé sur ce forum il y a quelques mois pour un problème lié à des tableaux. Aujourd'hui, c'est au sujet des bases de données. J'apprends PHP avec le livre "Maitrisez PHP 4" (Wrox editions), je suis au chapitre des BD et voici le code de l'exercice:

    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
     
    <?php
    $lien = mysql_connect("localhost", "user", "pass");
    $resultat = mysql_list_dbs($lien);
    $nom_ligne = mysql_num_rows($resultat);
     
    while($donnees_bd = mysql_fetch_row($resultat))
            {
             echo $donnees_bd[0] . "<br>";
             $resultat2 = mysql_list_tables($donnees_bd[0]);
             $nom_ligne2 = mysql_num_rows($resultat2);
             while($donnees_table = mysql_fetch_row($resultat2)) echo "--" . 
             $donnees_table[0] . "<br>";
             echo "==> $nom_igne2 table(s) dans " . $donnees_bd[0] . "<p>";
             }
    ?>
    Ce code a pour but de répertorier les bases de données et les tables accessibles à l'utilisateur "user".
    Cependant, quand j'execute ce script rien ne se passe..
    Je ne penses pas que ce soit une erreur de syntaxe au niveau du script, et j'ai essayé de regarder par rapport a mon php.ini, mais je ne trouve pas de solution..Avec les commandes DOS, je parviens a me connecter à la base mais pas avec ce script..
    Quelqu'un pourrait-il m'aider SVP?
    Petite précision (si utile), je tourne sous un serveur web Apache,avec Php5..
    merci d'avance

  2. #2
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    Bonjour,

    question tres bete, as tu mis le bon username et le bon password pour la connexion a ta base?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut
    Oui, la dessus, aucun problème

  4. #4
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    Simple supposition (car je n'ai pas l'habitude d'utiliser num_rows()) mais... est ce que le fait d'utiliser le num_rows n'envoie pas le curseur à la fin de ton tableau d'enregisterement...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $nom_ligne = mysql_num_rows($resultat);
    genre une fois que t'as executée cette ligne, est-ce que t'es pas deja positionné juste apres le dernier enregistrement de $resultat (donc fetch_array() renverrai NULL) ?

    Bref, essaye de mettre cette ligne en commentaire voir ce qui se passe...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut
    J'ai essayé avec "...or die("error_message");"..ca ne marche pas..
    J'ai également changé mon code en utilisant mysqli_connect (et autres fonctions mysqli..) à la place de mysql_connect..mais rien..
    J'ai installé mon serveur et le reste à l'aide du tuto de giminik, c'est donc pour ça que j'ai essayé mysqli...

    gloubi, je vais essayé ce soir ce que tu me dis...
    Merci

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    451
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 451
    Par défaut
    salut, ce code fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $link = mysql_connect('localhost', 'root', '') or die(mysql_error());
    $db_list = mysql_list_dbs($link);
    while ($row = mysql_fetch_row($db_list)) 
    {    
    	echo "<li>BDD : ".$row[0]."</li><ul>";
    	$result = mysql_list_tables($row[0]) or die(mysql_error()); 
    	for ($i=0;$i<mysql_num_rows($result); $i++) 
    	{
    		echo "<li>Table : ".mysql_tablename($result, $i)."</li>";
    	}
    	echo "</ul>";    
    }
    a+

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut résolu
    oui effectivement ton code marche philippe...
    Mais le problème ne venait pas du code. En fait,comme je l'avais ecrit plus haut, j'ai suivi le tuto de giminik pour installer apache, php5 et mysql.
    Lors de la configuration du php.ini, giminik conseille d'enlever le ";" à certaines extensions dont "php5_mysqli.dll". C'est pour ça que j'ai supposé que mon code marcherait si j'utilise les fonctions mysqli (mysqli_connect...) au lieu des fonctions standard mysql (mysql_connect...)...Mais ça ne fonctionnait pas.
    En regardant mon php.ini, je me suis rendu compte que l'extension "php5_mysql.dll" n'etait pas activée... D'où les problèmes que j'avais pour executer mes codes...
    Comme je n'ai pas trop saisi le principe de l'extension mysqli, je vais aller voir le lien donné sur le tuto de giminik...

    En attendant, je vous remercie pour vos réponses.

  8. #8
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Par défaut undiffined mysql_connect()
    Salut,
    Mon probleme est presque similaire, lorsqu'on j'execute ce script, le message "undiffined mysql_connect()" s'affiche dans le navigateur. quel est la solution ?

    Merci

    Guil

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut
    Salut pacototo
    Je ne suis pas expert de PHP, ni de ses messages d'erreur, mais peut etre que ce message signifie que ta fonction mysql_connect() est mal appelé...il manque peut etre un paramètre,où ils ne sont pas dans le bon ordre...
    A voir...


    PS: désolé d'avoir posté dans le mauvais topic

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

Discussions similaires

  1. Problème avec base de données oracle
    Par jonnyboy dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 16/02/2010, 12h10
  2. problème avec base de données attachée
    Par mo5andes dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/11/2009, 15h26
  3. Réponses: 1
    Dernier message: 19/02/2008, 23h05
  4. Plusieurs problèmes avec base de données
    Par mithrendil dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 17/01/2008, 16h23
  5. svp problème avec base de données
    Par midosone dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 26/03/2007, 10h45

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