No database selected

Résolu/Fermé
ANTHURIUMRE - 1 mai 2011 à 06:35
Lumpy-Rock Messages postés 68 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 19 juillet 2014 - 1 mai 2011 à 19:35
Bonjour,

Après avoir posé ma question par ailleurs sans que d'aucuns ne me viennent en aide je me permets de réitérer ici ma demande concernant le problème suivant.

Bien que fonctionnant correctement en local avec Easyphp lors de mes tests, je constate que sitôt mis sur un serveur distant le script ci-dessous m'affiche l'erreur suivante
"ERREUR SQL : No database selected"
alors même qu'ayant mis dans la rubrique fourni par le formulaire de mon script la base de données avec laquelle je veux travailler.
Quelqu'un pourrait-il m'aider s'il vous plaît car je tourne en rond. Merci pour votre aide. Voici ci-dessous le script :

<html> 
<head> 
<title>Envoi de requêtes SQL</title> 
</head> 
<body> 
<?php 
/*programme:mysqli_envoi.php 
*Description envoi d'une requête SQL au serveur SQL 
* et affichage des résultats. 
*/ 
if(ini_get("magic_quotes_gpc")=="1") 
{ 
$_POST['query']=stripslashes($_POST['query']); 
}
$host="localhost";
$user="Monnomdutilisateur";
$password="Monpasswd";
/*section d'exécution de la requête et afffichage des réultats*/
if(!empty($_POST['form']))
{
$cxn=mysql_connect($host,$user,$password,
				$_POST['database']);    /*22*/
$result=mysql_query($_POST['query'],$cxn);		/*23*/              
echo"Base de données sélectionnée : <b>{$_POST['database']}</b><br>
requête : <b>{$_POST['query']}</b>
<h3>Résultats</h3><hr>";
if($result==false)
{
echo"<h4>ERREUR SQL : ".mysql_error($cxn)."</h4>";      /*29*/             
}
elseif(@mysql_num_rows($result)==0)
{
echo"<h4>Requête exécutée.
	Aucun résultat envoyé.</h4>";
}
else
{
/*Affiche les résultats*/
echo"<table border='1'><thead><tr>";
$finfo=mysql_fetch_fields($result);
foreach($finfo as $field)
{
echo"<th>".$field->name."</th>";
}
echo"</tr></thead>
	<tbody>";
for ($i=0;$i <mysql_num_rows($result);$i++)
{
echo"<tr>";
$row=mysql_fetch_row($result);
foreach($row as $value)
{
echo"<td>".$value."</td>";
}
echo"</tr>";
}
echo"</tbody></table>";
}
/*Affiche le formulaire avec des boutons après les résultats*/
$query=str_replace("'","%&%",$_POST['query']);
echo"<hr><br>
<form action='{$_SERVER['PHP_SELF']}'method='POST'>
<input type='hidden'name='query' value='query'>                      
<input type='hidden' name='database'
value={$_POST['database']}>
<input type='submit' name='queryButton'
value='Nouvelle requête'>
<input type='submit' name='queryButton'
value='Modifier la requête'>
</form>";
exit();
}
/*Affiche le formulaire et saisie de requête*/
if (@$_POST['queryButton']!="Modifier la requête")
{
$query="";
}
else
{
$query=str_replace("%&%","'",$_POST['query']);
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>"
method="POST">
<table>
<tr><td style='text-align:right;font-weight:bold'>
Saisir le nom de la base de données</td>
<td><input type="text" name="database"
value=<?php echo @$_POST['database']?>></td>
</tr>
<tr><td style='text-align:right; font-weight:bold'
valign="top">Saisir la requête SQL</td>
<td><textarea name="query" cols="60"
rows="10"><?php echo $query ?></textarea></td>
</tr>
<tr><td colspan="2" style='text-align:center'>
<input type="submit" value="Valider la requête"><td>
<tr>
</table>
<input type="hidden" name="form" value="yes">
</form>
</body>
</html>




2 réponses

hervé56 Messages postés 269 Date d'inscription lundi 15 novembre 2010 Statut Membre Dernière intervention 25 mars 2017 10
1 mai 2011 à 11:26
fait un print_r de $_post deja pour voir si tout passe bien
0
Bonjour Hervé56 quand je rajoute print_r j'ai ce message d'erreur :

Parse error : syntax error, unexpected T_STRING in /home/clients/Monsite.fr/http/Mondossier/fichier.php

Merci pour ton aide.
0
Lumpy-Rock Messages postés 68 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 19 juillet 2014 1
1 mai 2011 à 13:03
Bonjour :)

Je pense que tu devrais te connecter autrement :
$serveur = "serveur"; 
$login = "login"; 
$motdepasse = "motdepasse"; 
$nom_base = "database"; 

mysql_connect ($serveur,$login,$motdepasse) or die ('ERREUR '.mysql_error()); 
mysql_select_db ($nom_base) or die ('ERREUR '.mysql_error());

Et pour faire un mysql_query(), tu as pas besoin de plusieurs arguments :
$result = mysql_query($requete) or die(mysql_error()); 


Essaie comme ça, ça résoudra peut-être tes problèmes..
0
Bonjour Lumpy-Rock,

J'ai maintenant le message suivant :
Parse error: syntax error, unexpected '}' in /home/clients/site.fr/http/dossier/fichier.php on line 74

Merci pour ton aide.
0
hervé56 Messages postés 269 Date d'inscription lundi 15 novembre 2010 Statut Membre Dernière intervention 25 mars 2017 10
Modifié par hervé56 le 1/05/2011 à 14:56
unexpected = inatendu
0
Lumpy-Rock Messages postés 68 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 19 juillet 2014 1
1 mai 2011 à 15:00
Tu as dû enlever ou ajouter par mégarde un crochet ( { ou } ).

J'ai testé le script sur mon ftp et ça marchait... J'ai juste remplacé la fonction mysql_fetch_fields() par mysql_fetch_fields(). Je te donne le code, tu as juste à remplacer $user et $password pour que ça marche =)
Testes et dis nous ce qui se passe !
<html> 
<head> 
<title>Envoi de requêtes SQL</title> 
</head> 
<body> 
<?php 
/*programme:mysqli_envoi.php 
*Description envoi d'une requête SQL au serveur SQL 
* et affichage des résultats. 
*/ 
if(ini_get("magic_quotes_gpc")=="1") 
{ 
$_POST['query']=stripslashes($_POST['query']); 
}
$host="localhost";
$user="user";
$password="password";
/*section d'exécution de la requête et afffichage des réultats*/
if(!empty($_POST['form']))
{
$base = $_POST['database'];
$cxn=mysql_connect($host,$user,$password) or die ('ERREUR '.mysql_error());   /*22*/
mysql_select_db ($base) or die ('ERREUR '.mysql_error());

$result=mysql_query($_POST['query']);		/*23*/              
echo"Base de données sélectionnée : <b>{$_POST['database']}</b><br>
requête : <b>{$_POST['query']}</b>
<h3>Résultats</h3><hr>";
if($result==false)
{
echo"<h4>ERREUR SQL : ".mysql_error($cxn)."</h4>";      /*29*/             
}
elseif(@mysql_num_rows($result)==0)
{
echo"<h4>Requête exécutée.
	Aucun résultat envoyé.</h4>";
}
else
{
/*Affiche les résultats*/
echo"<table border='1'><thead><tr>";
$finfo=mysql_fetch_field($result);
foreach($finfo as $field)
{
echo"<th>".$field->name."</th>";
}
echo"</tr></thead>
	<tbody>";
for ($i=0;$i <mysql_num_rows($result);$i++)
{
echo"<tr>";
$row=mysql_fetch_row($result);
foreach($row as $value)
{
echo"<td>".$value."</td>";
}
echo"</tr>";
}
echo"</tbody></table>";
}
/*Affiche le formulaire avec des boutons après les résultats*/
$query=str_replace("'","%&%",$_POST['query']);
echo"<hr><br>
<form action='{$_SERVER['PHP_SELF']}'method='POST'>
<input type='hidden'name='query' value='query'>                      
<input type='hidden' name='database'
value={$_POST['database']}>
<input type='submit' name='queryButton'
value='Nouvelle requête'>
<input type='submit' name='queryButton'
value='Modifier la requête'>
</form>";
exit();
}
/*Affiche le formulaire et saisie de requête*/
if (@$_POST['queryButton']!="Modifier la requête")
{
$query="";
}
else
{
$query=str_replace("%&%","'",$_POST['query']);
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>"
method="POST">
<table>
<tr><td style='text-align:right;font-weight:bold'>
Saisir le nom de la base de données</td>
<td><input type="text" name="database"
value=<?php echo @$_POST['database']?>></td>
</tr>
<tr><td style='text-align:right; font-weight:bold'
valign="top">Saisir la requête SQL</td>
<td><textarea name="query" cols="60"
rows="10"><?php echo $query ?></textarea></td>
</tr>
<tr><td colspan="2" style='text-align:center'>
<input type="submit" value="Valider la requête"><td>
<tr>
</table>
<input type="hidden" name="form" value="yes">
</form>
</body>
</html>
0
Bonsoir Hervé56 et Lumpy-Rock.
Hervé56 merci pour ta participation.
Lumpy-Rock ta correction est parfaite. Tu as vu juste. Tout fonctionne correctement. Mille mercis à toi.
Cordialement ANTHURIUMRE
0
Lumpy-Rock Messages postés 68 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 19 juillet 2014 1
1 mai 2011 à 19:35
Mais de rien, c'est Normal =)
0