[PHP] trouve pas la table alors qu'elle existe

trouve pas la table alors qu'elle existe [PHP] - PHP - Programmation

Marsh Posté le 01-06-2004 à 16:17:11    

bonjour,
 
g un petit pb de requete sql. Voici mon script:

Code :
  1. <?php
  2. // Script de Connection à la base de données
  3. // Parametres de connection a la Base de Données
  4. $dbhost = "localhost";
  5. $user = "consept";
  6. $password = "";
  7. $usebdd = "consept";
  8. // Script de connnection
  9. $connexion = mysql_connect("$dbhost","$user","$password" ) or die("Connexion impossible" );
  10. // Sélection de la BDD
  11. $db = mysql_select_db("$usebdd" ) or die("base invalide" );
  12. $request = mysql_query("SELECT id FROM intrandf" );
  13. echo mysql_error();
  14. ?>


 
il me retourne Table 'consept.intrandf' doesn't exist
Pourtant ma table existe et je peux la consulter sous phpMyadmin.
 
Merci
 

Reply

Marsh Posté le 01-06-2004 à 16:17:11   

Reply

Marsh Posté le 01-06-2004 à 16:35:33    

Berk berk berk ton code  :kaola:  
 
c'est un plus propre ci-dessous.

Code :
  1. <?php
  2.  
  3.   // Script de Connection à la base de données  
  4.   // Parametres de connection a la Base de Données  
  5.  
  6.   $dbhost = "localhost"; 
  7.   $user = "consept";
  8.   $password = "";
  9.   $usebdd = "consept";
  10.  
  11.   // Script de connnection  
  12.   $connexion = mysql_connect($dbhost,$user,$password) or die("Connexion impossible" );
  13.  
  14.   // Sélection de la BDD  
  15.   $db = mysql_select_db($usebdd, $connexion) or die("base invalide" );
  16.  
  17.   $request = mysql_query("SELECT id FROM intrandf" ); 
  18.   echo mysql_error(); 
  19. ?>


Il se pourrait que la fonction mysql_select_db est besoin quand meme de ton deuxieme parametre meme si celui-ci est facultatif.


Message édité par Berceker United le 01-06-2004 à 16:37:25
Reply

Marsh Posté le 01-06-2004 à 16:37:42    

Salut  :)  
 
j'ai regardé vite fait. Enlèves les guillemets, comme ceci :
 

Code :
  1. mysql_connect($dbhost,$user,$password) or die("Connexion impossible" );


   
 
et comme ça :
 

Code :
  1. $db = mysql_select_db($usebdd) or die("base invalide" );

 
 
de plus, mets un point virgule pour terminer ta requete :
 

Code :
  1. mysql_query("SELECT id FROM intrandf;" );


 
Y a peut être autre chose, faut voir

Reply

Marsh Posté le 01-06-2004 à 16:39:47    

juanetfanny a écrit :

Salut  :)  
 
j'ai regardé vite fait. Enlèves les guillemets, comme ceci :
 

Code :
  1. mysql_connect($dbhost,$user,$password) or die("Connexion impossible" );


   
 
et comme ça :
 

Code :
  1. $db = mysql_select_db($usebdd) or die("base invalide" );

 
 
de plus, mets un point virgule pour terminer ta requete :
 

Code :
  1. mysql_query("SELECT id FROM intrandf;" );


 
Y a peut être autre chose, faut voir


heuu j'ai pas testé mais le point virgule à la fin d'un requete je crois pas que ça soit cela. mais en tous cas ça fonctionne sans, garantie sur facture!...

Reply

Marsh Posté le 01-06-2004 à 16:52:53    

ouais, mais ça fait plus propre quand même  :D  :D  
 
 ;)

Reply

Marsh Posté le 01-06-2004 à 16:58:04    

Note: The query string should not end with a semicolon.  
(source www.php.net)
Encore une fois RTFM :)
 
Sinon pour la question d'origine, l'erreur est sans doute du à la casse : en effet sous MySQL le nom des tables et des bases sont sensibles à la casse (pas le nom des champs).
Cette remarque est valable uniquement sous Linux (pas sensible à la casse sous Windows).
 

Reply

Marsh Posté le 01-06-2004 à 17:03:04    

juanetfanny a écrit :

ouais, mais ça fait plus propre quand même  :D  :D  
 
 ;)


mmmhh!... je doute , tu sais au moin dans quel cas exactement il faut mettre le point virgule en sql ;) heinn!...

Reply

Marsh Posté le 01-06-2004 à 17:11:15    

Je suis sous Windows donc pas de pb de casse. J'ai enleve les quotes et rajouter le deuxieme parametre ds mysql_select_db.
Mais toujours le meme message....

Reply

Marsh Posté le 01-06-2004 à 17:13:45    

bobbyz a écrit :

Je suis sous Windows donc pas de pb de casse. J'ai enleve les quotes et rajouter le deuxieme parametre ds mysql_select_db.
Mais toujours le meme message....


regarde les fonction permettant de lister les tables present dans ta base de données.

Reply

Marsh Posté le 01-06-2004 à 17:32:29    

j'ai listé mes tables de ma base avec SHOW TABLE STATUS.
G bien la table sur laquelle je veux executer la requete.

Reply

Marsh Posté le 01-06-2004 à 17:32:29   

Reply

Marsh Posté le 01-06-2004 à 18:12:54    

berceker united a écrit :

mmmhh!... je doute , tu sais au moin dans quel cas exactement il faut mettre le point virgule en sql ;) heinn!...


 
Bin, en sql pur j'en mets toujours à la fin de mes requêtes  :??:  
Faut pas ?
 
En tout cas, j'ai appris un truc aujourd'hui  ;)  :jap:  
 
 :hello:

Reply

Marsh Posté le 01-06-2004 à 18:18:21    

en SQL oui, avec la fonction mysql query, non !
 
http://ch2.php.net/mysql_query
 

Citation :


Note :  La requête ne doit pas être terminée par un point-virgule.

Reply

Marsh Posté le 01-06-2004 à 18:30:37    

T'aurais pas un espace juste devant le nom de ta table ? Ca se voit direct avec l'ordre alphabétique sur la partie gauche de PhpMyAdmin.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 01-06-2004 à 19:35:07    

Pour ton problème, c'est vraiment un truc tout bête, j'ai eu ça plusieurs fois mais je me souviens jamais pourquoi !
 
Et si déjà tu remplaces les guillements par des ' ici :

Code :
  1. $dbhost = "localhost"; 
  2. $user = "consept"; 
  3. $password = ""; 
  4. $usebdd = "consept";


 
Non ?
 
 
et vérifie que ton id est bien orthographié de cette Façon dans ta bdd (et non Id ni ID) :
 

Code :
  1. $request = mysql_query("SELECT id FROM intrandf" );


Message édité par juanetfanny le 01-06-2004 à 19:40:15
Reply

Marsh Posté le 01-06-2004 à 20:07:59    

Sielfried a écrit :

T'aurais pas un espace juste devant le nom de ta table ? Ca se voit direct avec l'ordre alphabétique sur la partie gauche de PhpMyAdmin.


haaa ouais ouais ouais ! je confirme haut et fort si tu as éditer le nom de ta table via phpmyadmin car ce dernier ne fait pas de controle sur les espaces devant et (peut être) et c'est souvent les erreur commune.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed