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 SHOW TABLE [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 24
    Points
    24
    Par défaut Problème avec SHOW TABLE
    Bonjour

    Petit problème rencontré aujourd'hui :
    voulant tester l'existence d'une table dans une base , je me suis donc orientée vers une syntaxe "SHOW TABLES"

    Via phpmyadmin, tout passe niquel, pas de réponse ou une réponse selon les cas.

    Depuis php , erreur récurrente :
    supplied argument is not a valid MySQL-Link resource in monfichier.php on line 48
    La ligne 48 de mon fichier, c'est celle qui exécute la requête.

    Voilà ce que j'obtiens en écho


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo $sqlcont;
    	$Rssqlcont=mysql_query($sqlcont,$oConn);
    	//$Rssqlcont=mysql_query($sqlcont,$oConn) or die(mysql_error());
    	//die (mysql_error());
    	echo $Rssqlcont;

    J'ai tenté la seconde syntaxe présente dans la FAQ, même résultat. J'ai tenté (voir les commentaires) de mettre un die_error() pour avoir plus d'informations, mais je n'ai rien en retour.

    J'ai aussi contrôlé les autorisations de mon user db, pas de problème de ce côté là.

    Help ?

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Et quel est le texte de la requête $sqlcont soumise à MySQL ?
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Que donne ?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    Avant tout, merci de me consacrer un peu de temps

    Citation Envoyé par Maljuna Kris Voir le message
    Saluton,
    Et quel est le texte de la requête $sqlcont soumise à MySQL ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$sqlcont='SHOW TABLES FROM mabase LIKE \'tlistedossier'.$nomlog.'controle\'';
    Citation Envoyé par Benjamin Delespierre Voir le message
    Que donne ?
    Il renvoie NULL.

    C'est censé être la connexion à ma base, obtenue par la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $oConn=@mysql_connect($db_server, $db_user, $db_pass) or die ('Impossible de se connecter, Problème hébergeur');
    Qui est dans un fichier appelé par require() tout en haut de ma page. (En fait j'ai suivi la technique qu'utilisait mon prédécesseur, pour ne pas trop em***der celui qui prendra ma place dans deux mois...)

  5. #5
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Cela semble donc être la connexion qui déconne. Es-tu sûr de tes variables contenant adresse, user, password de ta base?
    Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

    Linus Torvalds

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    @mysql_connect c'est pas une chose à faire, la preuve: tu n'étais pas au courant (au sens messages d'erreur) que la connexion avait échouée.

    Bref, enlève le @, lis tes erreurs et corriges les

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    Marc3001 : Oui, parce que c'est un fichier inclus dans pas mal de pages du site, et que les autres listings semblent fonctionner sans problèmes.

    Benjamin Delespierre : En effet, ce n'est qu'après les indications qui m'ont été données précédemment que j'ai été fouiner dans le fichier et compris à quoi servaient les @, que j'ai enlevé. Le problème est que je n'ai pas plus d'informations en l'enlevant.

    Et fait étonnant, mes collègues sont actuellement sur d'autres parties du site qui utilisent le même fichier, et ce sans problèmes apparents.

  8. #8
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    T'es sûr que tu t'es pas gourré dans la casse de tes variables? Affiche les pour vérifier.
    Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

    Linus Torvalds

  9. #9
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Benjamin Delespierre : En effet, ce n'est qu'après les indications qui m'ont été données précédemment que j'ai été fouiner dans le fichier et compris à quoi servaient les @, que j'ai enlevé. Le problème est que je n'ai pas plus d'informations en l'enlevant.
    Change le niveau de reporting d'erreurs et valide systématiquement l'exécution de tes requêtes.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Change le niveau de reporting d'erreurs et valide systématiquement l'exécution de tes requêtes.
    Euh ... je suis pas sur de comprendre là ...

  11. #11
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    error_reporting(-1);
    ini_set('display_errors', 1);
     
    if (!$connection = mysql_connect(...)) {
      die("Cannot open database connection");
    }
     
    $query = "SELECT machin FROM truc";
    if (!$results = mysql_query($query, $connection)) {
      $error = mysql_error($connection);
      var_dump($error); // a ne jamais laisser en prod !!
    }

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    Bonjour

    Désolée d'avoir tardé à répondre on m'a fait lacher ce que je faisais pour autre chose.
    J'ai fait quelques tests (merci pour le code), en adaptant à mes besoins, et ça fonctionne parfaitement.

    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
    error_reporting(-1);
    ini_set('display_errors', 1);
     
    if (!$oConn=@mysql_connect($db_server, $db_user, $db_pass)) {
      die("Cannot open database connection");
    }
     
     
    $sql='SHOW TABLES FROM test LIKE \'tlistedossier'.$nomlog.'controle\'';
    if (!$Rssqlcont = mysql_query($sql, $oConn)) {
      $error = mysql_error($oConn);
      var_dump($error); // a ne jamais laisser en prod !!
    }
     
    if (mysql_num_rows($Rssqlcont)==1)
    {
    //un affichage
    }
    else
    {
    //un autre affichage
    }
    Et dès que je remets mon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require('../../_conf/ouvre_base.php');
    avec le code d'ouvre_base.php qui a un code de connexion basique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @session_start();
    set_magic_quotes_runtime();
    $db_server	='localhost';
    $db_user	='chris';
    $db_pass	='pass';
    $db_name	='test';
     
    $oConn=mysql_connect($db_server, $db_user, $db_pass) or die ('Impossible de se connecter, Problème hébergeur');
    mysql_select_db($db_name);
     
    $RepertoireUpload='../../upload/';
    j'ai la même erreur qui revient.

  13. #13
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Est ce que l'user 'chris' à les droits d'accès pour 'test' sur le serveur MySQL au moins ?

  14. #14
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Tu pourrais filer le code complet des 2 fichiers?
    Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

    Linus Torvalds

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    Benjamin : oui, parce que c'est le fichier d'ouverture base qui sert pour tout le site dont les tables sont sur la même base que celles auxquelles je cherche à accéder. Si ce fichier fonctionnait pas, on aurait plus de site... Ni en ligne, ni sur le serveur de test.

    Marc : ouvre_base est dans mon message précédent. Pour le fichier qui l'utilise, voilà comment je l'avais conçu à minima

    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
    65
    66
    67
    68
    <?
    require('../../_conf/ouvre_base.php');
     
    function affichage($log,$image)
    {
    	echo '<li>'.$log.'</li>';
    	if ($log=='log1')
    	{$nomlog='';}
    	elseif($log=='log2')
    	{$nomlog='pac';}
    	else
    	{$nomlog=$log;}
     
    	$sql='SHOW TABLES FROM test LIKE \'tlistedossier'.$nomlog.'controle\'';
    	$Rssqlcont=mysql_query($sql,$oConn) or die(mysql_error());
    	if (mysql_num_rows($Rssqlcont)==1)
    	{
    		echo '<br>';
    		echo '<img src="../../internet/images/logos/'.$image.'" width="50" height="50" style="border:5px solid orange"> ';
    		echo 'Attention! Une opération de controle est déjà en cours sur les listings de ce logiciel.';
    		echo 'Lancer archivage';
    		echo '<br>';
    	}
    	else
    	{
    		echo '<br>';
    		echo '<img src="../../internet/images/logos/'.$image.'" width="50" height="50" style="border:5px solid green"> ';
    		echo 'lancer Controle des listings pour les techniciens';
    		echo '<br>';
    	}
     
    	?> <br>Liste des tables déjà archivées <br><br><?
     
    	$sqlliste='SHOW TABLES FROM test LIKE \'tlistedossier'.$nomlog.'2%\'';
    	$Rssql = mysql_query($sqlliste, $oConn);
    	while ($archive=mysql_fetch_array($Rssql))
    	{
    		echo $archive[0].'<br>';	
    	}
     
    }
    ?>
     
    <html>
    <head>
    	<title>Sans titre</title>
    <link rel="STYLESHEET" type="text/css" href="../../_conf/admin.css">
    <script src="../../_conf/functions.js" type="text/javascript"></script>
    <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
    </SCRIPT>
    </head>
     
    <body>
    <ul>
     
    <?
    affichage('log1','log1.jpg');
    affichage('log2','log2.jpg');
    affichage('log3','log3.jpg');
    ?>
    </ul>
     
    </body>
    </html>
     
    <?
    require('../../_conf/ferme_base.php');
    ?>

  16. #16
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Ton set_magic_quotes_runtime() n'ajouterait pas des \ en plus de ceux que tu ajoutes déjà dans ta requête?

    Essaie en enlevant les \ de tes 2 requêtes.
    Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

    Linus Torvalds

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    J'ai pense avoir essayé toutes les configurations possibles à ce niveau là : quotes simples, guillemets, et même backquotes en désespoir de cause...Rien ne fonctionne.

    (J'ai revérifié, quand même, au cas où)

  18. #18
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    T'as essayé sans rien échapper du tout?

    Comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql="SHOW TABLES FROM test LIKE 'tlistedossier".$nomlog."controle'";
    Sinon, t'as tenté d'afficher ta requête pour vérifier que son format était bon?
    Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

    Linus Torvalds

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    Oui, et oui... Aucun résultat.

  20. #20
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    C'est ptet ton require qui fonctionne pas.

    Si tu tentes d'afficher tes variables de connexion à la BDD juste avant le mysql_query, elles valent quoi?
    Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

    Linus Torvalds

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. checksum avec SHOW TABLE STATUS
    Par bunam dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 22/03/2006, 10h29
  2. [JSTL] Problème avec une table
    Par lionelh dans le forum Taglibs
    Réponses: 3
    Dernier message: 22/02/2006, 21h26
  3. [MySQL] Problème avec TRUNCATE TABLE
    Par philippef dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/01/2006, 14h41
  4. Problème avec une table
    Par Paulinho dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 15/12/2005, 10h17
  5. Problème avec mes tables de relation...
    Par mmike dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/06/2003, 15h16

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