Probleme connection base de donnée

Fermé
ouissler - 2 avril 2008 à 17:42
 ouissler - 4 avril 2008 à 18:01
Bonjour,

Je crée un formulaire pour intéragir avec une base de donnée (ajout/suppresion de table, affichage des champs d'une table etc...).

Mon script commence par un test, pour savoir si une base de données à été selectionnée. Si non, on tombe sur une liste qui affiche les base de données disponibles. Si oui, on a un formulaire présentant les différentes options mentionnées plus haut.

Mon problème, c'est que, une fois le test passé, je me connecte à la base de donnée, en utilisant la valeur de la base de donnée selectionnée récupérer en post, mais la connection échoue dés que je lance une fonction.

Voici mon code simplifié(Je ne laisse qu'une fonction):
<?php

	$strHost = "localhost";

	$strLogin = "root";

	$strPassword = "";

	$connection;

	$connection = mysql_connect($strHost, $strLogin, $strPassword) or die("connection impossible");
	

?>

<?php  
if(!isset($_POST['select_base'])){ ?>
	<form action="" method="post">
	<div id="structure">
		<p>STRUCTURE DE LA BASE</p>
		<select name="select_base">
			<option value="selectionnez une base">selectionnez une base</option>
			<?php 
			$query = "SHOW DATABASES";
			$result = mysql_query($query, $connection);
			while ($res = mysql_fetch_row($result)) {
			echo '<option value="'.$res[0].'">'.$res[0].'</option>';
			}
			?>
		</select>
		<input type="submit" value="Valider" />
	</div>
</form>

<?php 
}
else {

	//JE RECUPERE LE NOM DE LA BDD CHOISIE
	$strBase = $_POST['select_base'];

	mysql_select_db($strBase, $connection) or die("connection impossible 3");

?>

<form action="" method="post">

     <input type="submit" name="table" value="Afficher les tables" />

</form>

<?php
if(!empty($_POST)){

	if(isset($_POST['table'])){
	
		$query = "SHOW TABLES FROM ";
		$query .= $strBase;

		$result = mysql_query($query, $connection);
		
		while($res = mysql_fetch_row($result)){
		echo $res[0]."<br />";		
		}	
	}
}



Donc, lorsque je clique sur le bouton "afficher les tables", je me prend l'erreur "connexion impossible 3" dans la tête.
Si je met le nom de la base désirée dans la variable $strBase (ex: $strBase = "maBase") la connexion passe. Et pourtant si j'affiche $_POST['select_base'] je récupère bien la valeur "maBase".

Pourquoi ca ne fonctionne pas avec le $_POST['select_base']

Merci pour votre aide ^^

1 réponse

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
2 avril 2008 à 20:28
Bonsoir,

ce n'est pas un pb de connexion, mais ton script se déroule en plusieurs aapples et qd tu appelle pour afficher les tables tu n'a plus la sélection de la base c'est le coup d'avant.

essayes en modifiant ainsi

.......
//JE RECUPERE LE NOM DE LA BDD CHOISIE
	$strBase = $_POST['select_base'];

	

?>

<form action="" method="post">
	<input type="hidden" name="select_base" value="<?php echo $strBase; ?>">
     <input type="submit" name="table" value="Afficher les tables" />

</form>

<?php
if(!empty($_POST)){

	if(isset($_POST['table'])){
		$strBase=$_POST['select_base'];
		mysql_select_db($strBase, $connection) or die("connection impossible 3");
		$query = "SHOW TABLES FROM ";
		$query .= $strBase;

		$result = mysql_query($query, $connection);

.....................
0
Merci pour ton aide. Je vois bien le problème maintenant ;)
0