No database selected

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : No database selected

par Sékiltoyai » 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…

par naje83 » 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

par moileraz » 29 déc. 2007, 12:30

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

par naje83 » 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

par moileraz » 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. :)

par naje83 » 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

par moileraz » 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.

No database selected

par naje83 » 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 ;