Connexion BD avec PHP

dmo95

Membre actif
24 Mai 2007
584
14
Bonjour,

Voilà je viens d'installer MAMP sur Leopard, je débute et j'ai un petit problème je ne vois pas du tout d'où cela provient...
Bloc de code:
function afficherCommentaire()
{
		mysql_connect("localhost", "root", ""); //Connection à la base
		
		mysql_selectdb("test"); 		//Selection d'une base
		
		$reponse=mysql_query("select `auteur` from `information`;") or die(mysql_error());
		echo $reponse;
		echo "</br>";
		
		
		$donnees=mysql_fetch_array($reponse);
		
		echo $donnees;
		
		$auteur=$donnees['auteur'];
		$email=$donnees['email'];
		$site=$donnees['site'];
		$message=$donnees['message'];
		
		mysql_close();				//Deconnection
	}

echo $reponse affiche Resource id #3, tandis que echo $donnees affiche Array et un echo $auteur n'affiche rien...

Si quelqu'un à une idée cela ne doit pas être très violent pour quiconque qui touche un peu !!

Merci d'avance.
 
C'est pas simplement que ta requête ne retourne aucune ligne ? ;)

Encore que le résultat ne serait pas tout à fait logique. Tu peux nous ajouter le code d'affichage de $auteur, pour un peu que le problème vienne de là ? Tu l'affiche bien dans la fonction, c'est pas un problème de portée de variable par exemple ?

Eventuellement rajoute MYSQL_ASSOC en paramètre à mysql_fetch_array.
 
J'ai réussi à faire fonctionner le script, mais je ne comprends vraiment pas pourquoi ma première version ne fonctionnait pas... sans doute un problème de compréhension du principe !!!

Voici le nouveau code :
Bloc de code:
<?php
	function afficherCommentaire()
	{
		mysql_connect("localhost", "root", ""); //Connection à la base
		
		mysql_selectdb("test"); 		//Selection d'une base
		
		$reponse=mysql_query("select `auteur` from `information`;") or die(mysql_error());

		while ($donnees = mysql_fetch_array($reponse) )
		{
		?>
		 
			<p>
			Auteur :<?php echo $donnees['auteur'];?><br/>
			</p>
		 
		<?php
		}
		
		mysql_close();				//Deconnection
	}
?>

Si tu te sens de m'éxpliquer pourquoi la première version ne fonctionne-t-elle pas ??

Merci encore ;)
 
Il nous en manque un bout de la première version, alors difficile de te dire ce qui ne va pas. Dans le code que tu nous a copié, je vois rien d'anormal. Alors en vertu de la règle qui dit que quand on trouve pas de problème, c'est qu'on le cherche pas au bon endroit (ou qu'il est particulièrement bête, ça arrive aussi...), je pense qu'il faut l'intégralité du code pour avoir la réponse. ;)
 
Merci encore de te pencher sur mon problème, je vais insérer tout le code comme ca tu pourra m'expliquer pourquoi la première version ne fonctionnait pas !! :p :p

Mais maintenant j'ai un autre problème lors de l'insertion dans la base de donné...

Bloc de code:
<?php
	echo lol;
	
	/*****************
	
	if(isset($_POST['auteur'] and isset($_POST['email'] and isset($_POST['site'] and isset($_POST['message'] )
	{
		mysql_connect("localhost", "root", ""); //Connection à la base	
		mysql_selectdb("test"); 		//Selection d'une base
		
		$auteur=$_POST['auteur'];
		$email=$_POST['email'];
		$site=$_POST['site'];
		$message=$_POST['message'];
		
		$query="INSERT INTO information VALUES('','$auteur','$email','$site','$message')";
		
		mysql_query($query);	
		
		mysql_close(); 
	}
	
	******************/
	
	function afficherMessage()
	{
		mysql_connect("localhost", "root", "");
		mysql_selectdb("test");
		
		$reponse=mysql_query("select * from `information`;") or die(mysql_error());

		while ($donnees = mysql_fetch_array($reponse) )
		{
		?>
		 
			<p>
			Auteur : <?php echo $donnees['auteur'];?><br/>
			E-mail : <?php echo $donnees['email'];?><br/>
			Site : <?php echo $donnees['site'];?><br/>
			Message : <?php echo $donnees['message'];?><br/>
			</p>
		 
		<?php
		}
		
		mysql_close();				//Deconnection
	}
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >

	<head>
		<title>Formulaire PHP</title>
		<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
	</head>
	<body>
	
		<?php afficherMessage(); ?>
		
		<form class ="formulaire" method="POST" action="form.php">
	
			<table>
				<tr>
					<td><label>Auteur :</label></td>
					<td><input type="text" name="auteur" size="20"/></td>
				</tr>
				<tr>
					<td><label>E-mail :</label></td>
					<td><input type="text" name="email" size="20"/></td>
				</tr>
				<tr>	
					<td><label>Site :</label></td>
					<td><input type="text" name="site" size="20" value="http://"/></td>
				</tr>
				<tr>
					<td><label>Message :</label>
					<td><textarea class="zonetext" name="message" rows="5" columns="30">Tappez ici votre texte...
					</textarea></td>
				</tr>
				<tr>
					<td><input type="submit" name="submit" value="Envoyer"/></td>
				</tr>
			</table>
		</form>
	</body>
</html>

L'affichage de donnée fonctionne correctement lorsque la partie pour insérer des données est en commentaire.

Lorsqu'elle n'est pas en commentaire, elle fait tout planter !! même l'instruction echo 'lol'; ne fonctionne pas : Page blanche
:eek: :eek:

Un truc tout bête probablement... et encore un problème de compréhension du concept.

J'ai du mal à me dire que la sortie standard ici c'est le code html, qui est de nouveaux renvoyé après avoir été interprété par le serveur web... C'est vraiment dommage arrivé a bac+2 d'informatique et de ne pas saisir ces concepts de bases !!!
 
Il te fait une page blanche ? Humm, ne voyant pas d'erreur flagrante dans le code, j'opterais avec une forte probabilité pour le coup du caractère invisible qu'est venu se glisser au mauvais endroit... ;)

Fais un more dans le terminal, et regarde si tu vois rien d'anormal. ;)
 
Bah j'ai fait mon petit more... rien d'anormal, mais une telle attention sur le code ma permis de voir une erreur de syntaxe plus que flagrante dans le premier if... au niveau des parenthèses juste après les variables globales !!!

Après correction, toujours cette fameuse page blanche !!!:nailbiting: :nailbiting:

J'ai un ami qui regarde le code avec moi et pareil il n'y voit rien d'anormal (sachant qu'il a le même niveau que moi).

D'autres suggestions ?
 
En dehors des parenthèses mal fermées qui effectivement me sautent aux yeux maintenant que tu le dis, je vois rien d'anormal. Tu peux nous copier le code corrigé ?

Et puis c'est pas normal qu'il fasse une page blanche pour une erreur de syntaxe... Ton serveur est correctement configuré ? Tes retours à la ligne sont au format unix ?