No database selected

Eléphanteau du PHP | 39 Messages

29 déc. 2007, 12:06

Salut à tous

En cette fin d'année je viens vers vous encore une fois pour un problème que je n'arrive pas à résoudre...Comme dans le titre j'ai ce message lorsque j'essai de me connecter à ma base de données(No database selected).Je comprends que la base n'est pas connectée...mais pourquoi ?
Et bien sur cela fonctionne en interne sur easyphp 1.8 !!!

Donc voici mon connect.php :
<?php
$MySQL_Host="leverseau.le-verseau.net";
$MySQL_User="******";
$MySQL_Passw="******";
$db="leverseau";
$db=mysql_connect($MySQL_Host, $MySQL_User, $MySQL_Passw);
if (! @$cc=mysql_connect($MySQL_Host,$MySQL_User,$MySQL_Passw)) {
   echo "Impossible d'établir de connexion à ",$MySQL_Host,"<br>";
   exit;
}
?>
et le code qui devrait fonctionner :
<?php
include 'connect.php';
$lettre = @$_GET['lettre'];
if ($lettre=="")
              {	
	          $sql = "SELECT * FROM `" . 'livre' . "`";
	          $req = mysql_query($sql) or die(mysql_error());
			  }
			  elseif($lettre=="1")
			          {
			          $sql = "SELECT * FROM `" . 'livre' . "`where titre LIKE '$lettre%' AND LEFT(titre,1)IN('0','1','2','3','4','5','6','7','8','9')";
					  $req = mysql_query($sql) or die(mysql_error());
					   }      
		   
		   else{
		   $sql = "SELECT * FROM `" . 'livre' . "`WHERE titre LIKE '$lettre%'";
	       $req = mysql_query($sql) or die(mysql_error());
		  } 
    mysql_close();
?>
Voila ! en sachant que 'livre' est la table.

D'avance merci du coup de pouce.
@+

Naje83

ps :

Code : Tout sélectionner

-- Structure de la table `livre` -- CREATE TABLE `livre` ( `titre` varchar(50) character set utf8 collate utf8_bin NOT NULL default '', `auteur` varchar(30) character set utf8 collate utf8_bin NOT NULL default '', `editeur` varchar(25) character set utf8 collate utf8_bin NOT NULL default '', `id` int(11) NOT NULL auto_increment, PRIMARY KEY (`id`), KEY `titre` (`titre`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5031 ;

Eléphant du PHP | 248 Messages

29 déc. 2007, 12:12

Salut essaye de changer:
$MySQL_Host="leverseau.le-verseau.net";
en ca:
$MySQL_Host="localhost";

Peut être que ton serveur MySQL est accessible qu'en local. Donc installe l'application sur ton serveur puis change ton host et regarde si ca fonctionne.

Eléphanteau du PHP | 39 Messages

29 déc. 2007, 12:18

Merci de ta réponse si rapide.

Mon hébergement est chez online.net et le host chez eux est bien :
$MySQL_Host="leverseau.le-verseau.net";
tandis que
$MySQL_Host="localhost";
fonctionne bien en interne avec easyphp 1.8

Tu veux que j'essai de mettre sur le serveur online "localhost" ?

@+

Naje83

Eléphant du PHP | 248 Messages

29 déc. 2007, 12:20

oui sur ton serveur online.

J'ai visité ton lien : leverseau.le-verseau.net

et je tombe sur une page phpmyadmin.

Essaye de mettre localhost pour voir car certain hébergeur pour des raisons de sécurité empeche la connexion au serveur MySQL via un lien. :)

Eléphanteau du PHP | 39 Messages

29 déc. 2007, 12:26

Re moi

Voici le message d'erreur que j'obtiens :

Code : Tout sélectionner

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in connect.php on line 7 Impossible d'établir de connexion à localhost
@+

Naje83

Eléphant du PHP | 248 Messages

29 déc. 2007, 12:30

Tu utilise quel version de PHP et quel version de MySQL?

Eléphanteau du PHP | 39 Messages

29 déc. 2007, 12:39

J'ai trouvé !

Le connect.php doit être :
<?php
$MySQL_Host="leverseau.le-verseau.net";
$MySQL_User="******";
$MySQL_Passw="*****";
$base="leverseau";
// connection au serveur
$db=mysql_connect($MySQL_Host, $MySQL_User, $MySQL_Passw);

if(!$db)
{
   print "erreur connection $db";
   exit;
}

// on choisit la bonne base
if(!mysql_select_db($base,$db)){
   print "erreur ".mysql_error()."<br>";
   mysql_close($db);
   exit;
}
?>
Merci moileraz tu m'as mis la puce à l'oreille en parlant des spécificités de certain hébergeur. :D

Passes de bonnes fêtes ainsi que tout le forum

@+

Naje83

ViPHP
ViPHP | 5924 Messages

29 déc. 2007, 15:10

Merci moileraz tu m'as mis la puce à l'oreille en parlant des spécificités de certain hébergeur. :D
Ce n'est pas une spécificité, pour être correct un script doit toujours indiquer sur quelle base de données il fait ses requètes, soit avec mysql_select_db(), soit avec le 3ème argument de mysql_query(). Il y a juste certaines configurations qui précisent les paramètres de connexion par défaut s'il ne sont pas spécifiés, et la base de données fait partie de ces paramètres, c'est pour cette raison que sur certains serveurs, on tolèrera l'oubli de mysql_select_db(), même si pour être rigoureux il faut toujours le mettre…