Lecture des valeurs dans ma BDD foireuse

Eléphant du PHP | 109 Messages

20 août 2009, 15:35

Bonjour à tous.

J'ai un problème de lecture des valeurs dans ma BDD. En effet, quand je veux lire ces valeurs et les afficher, rien ne s'affiche.
J'ai donc retourner dans tous les sens possibles mon code, ma requête SQL, mais rien.
<?php
$request = $_GET['request'];
$mode = $_GET['seach_mode'];

mysql_connect("", "", "") or die(mysql_error());
mysql_select_db("") or die(mysql_error());
?>

<html><head><title>Recherche : <?php echo $request; ?> - Bsea</title></head>
<body>
<p align="right"><a href="account.htm">S'identifier ou s'inscrire</a></p>
<img src="image/bsea_logo_search.png" alt="Bsea - search"><form method="GET" action="search.php">
<input type="text" size="50" name="request" value="<?php echo $request; ?>"> &nbsp;&nbsp; &nbsp; Mode de recherche : <font color="blue"><?php echo $mode; ?></font>
<input type="hidden" name="seach_mode" value="<?php echo $mode; ?>"> </form>

<hr>
<?php

$reponse = mysql_query("SELECT * FROM requete");

while($donnee == mysql_fetch_array($reponse))
{
$flag = 0;
?>

<font size="4"> <a href="<?php echo $donnee['url']; ?>"><?php echo $donnee['name']; ?></a></font><br><br>
<?php
$flag++;
}


if($flag == 0)
{
  ?>
  <font size="5" color="red">Il n'y a pas de résultat corresondant à "<?php echo $request; ?>"</font>
  <br><br>
  }
  ?>
 }
?>
J'ai fait exprès de mettre ma requête SQL a SELECT * ... pour qu'il me sélectionne tout dans ma base, mais il n'affiche quand même rien provenant de ma base
Quand je tape n'importe quoi, il me met "Il n'y a pas de résultat corresondant à ..." correctement.
Il y a des entrées dans ma base.
Mes identifiants de base de donnée sont corrects, donc que se passe t'il? :(
ANSI <font> <font> <font> <li> <p> <title> Mar I/O .NET

Eléphant du PHP | 199 Messages

20 août 2009, 15:47

Je pense que ton erreur se situe ici:
mysql_connect("", "", "") or die(mysql_error());
mysql_select_db("") or die(mysql_error());
En effet normalement quand on sélectionne une db on met entre parenthèse le nom de la base
et la connexion.
Normalement on le fait comme ca:
$c=mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("essai","$c") or die(mysql_error());

Avatar du membre
ViPHP
ViPHP | 3008 Messages

20 août 2009, 16:50

Que te donne ce code :
<?php
$reponse = mysql_query("SELECT * FROM requete");
while($donnee = mysql_fetch_array($reponse))
{
	echo '<p><a href="'.$donnee['url'].'">'.$donnee['name'].'</a></p>';
}
?>
oups en effet pas vu les ==
Modifié en dernier par charabia le 21 août 2009, 09:10, modifié 2 fois.

Mammouth du PHP | 568 Messages

20 août 2009, 16:57

Que te donne ce code :
<?php
$reponse = mysql_query("SELECT * FROM requete");
while($donnee == mysql_fetch_array($reponse))
{
	echo '<p><a href="'.$donnee['url'].'">'.$donnee['name'].'</a></p>';
}
?>
Effectivement, le == à la ligne while($donnee == mysql_fetch_array($reponse)) n'est pas utile...

Eléphant du PHP | 109 Messages

20 août 2009, 19:28

J'ai donc modifié mon code.
J'ai remplacer mon mysql_select_db(); comme toi. (il fallait pas les guillemets autour de la variable qui contient le mysql_connect)

J'ai aussi remplacer la partie de code que tu m'a dit.
J'ai également remplacer les == par = dans la fonction while().
Mais rien ne change. Toujours pas de résultat quand je vais sur la page.

Le script actuel :
<?php
$request = $_GET['request'];
$mode = $_GET['seach_mode'];

$paf = mysql_connect("", "", "") or die(mysql_error());
mysql_select_db("", $paf) or die(mysql_error());
?>

<html><head><title>Recherche : <?php echo $request; ?> - Bsea</title></head>
<body>
<p align="right"><a href="account.htm">S'identifier ou s'inscrire</a></p>
<img src="image/bsea_logo_search.png" alt="Bsea - search"><form method="GET" action="search.php">
<input type="text" size="50" name="request" value="<?php echo $request; ?>"> &nbsp;&nbsp; &nbsp; Mode de recherche : <font color="blue"><?php echo $mode; ?></font>
<input type="hidden" name="seach_mode" value="<?php echo $mode; ?>"> </form>

<hr>
<?php


$reponse = mysql_query("SELECT * FROM requete");
while($donnee = mysql_fetch_array($reponse))
{
        $flag = 0;
        echo '<p><a href="'.$donnee['url'].'">'.$donnee['name'].'</a></p>';
       $flag++;
}



if($flag == 0)
{
  ?>
  <font size="5" color="red">Il n'y a pas de résultat corresondant à "<?php echo $request; ?>"</font>
  <br><br>
  }
  ?>
 }
?>
ANSI <font> <font> <font> <li> <p> <title> Mar I/O .NET

Avatar du membre
ViPHP
ViPHP | 3008 Messages

21 août 2009, 09:19

Relis bien ton code, tu as une accolade fermante en trop et du PHP non entouré de <?php ?> en bas de ton code.

Mammouth du PHP | 568 Messages

21 août 2009, 09:25

Je viens de faire un copier coller de ton code, tu n'a pas d'erreur?

Pour moi direct l'erreur
Parse error: syntax error, unexpected $end in D:\www\GestionFacture\testDB.php on line 38
, je te laisse chercher au niveau de la balise ouvrante PHP (tu a mis une balise fermante).

Ensuite, en créant une base test et en utilisant ton code tout fonctionne chez moi (enfin autant que faire se peux, parceque j'ai pas très bien compris ce que tu voulais faire, un moteur de recherche d'url?),
<?php
$request = $_GET['request'];
$mode = $_GET['seach_mode'];

$paf = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("testDB", $paf) or die(mysql_error());
?>

<html><head><title>Recherche : <?php echo $request; ?> - Bsea</title></head>
<body>
<p align="right"><a href="account.htm">S'identifier ou s'inscrire</a></p>
<img src="image/bsea_logo_search.png" alt="Bsea - search"><form method="GET" action="testDB.php">
<input type="text" size="50" name="request" value="<?php echo $request; ?>"> &nbsp;&nbsp; &nbsp; Mode de recherche : <font color="blue"><?php echo $mode; ?></font>
<input type="hidden" name="seach_mode" value="<?php echo $mode; ?>"> </form>

<hr>
<?php


$reponse = mysql_query("SELECT * FROM requete");
while($donnee = mysql_fetch_array($reponse))
{
        $flag = 0;
        echo '<p><a href="'.$donnee['url'].'">'.$donnee['name'].'</a></p>';
       $flag++;
}



if($flag == 0)
{
  ?>
  <font size="5" color="red">Il n'y a pas de résultat corresondant à "<?php echo $request; ?>"</font>
  <br><br>
  }
  <?php
 }
?>

Eléphant du PHP | 109 Messages

21 août 2009, 11:25

Effectivement, il y avait un souci au niveau des balises. Mais c'est corriger 8-)

Mais j'avais fait une bête erreur que j'ai trouvé en me relisant pour la x³ ème fois.

J'avais ceci :
while(condition)
{
$flag = 0;
//affichage
$flag++;
}
Ma variable $flag se remettait à 0 a chaque fois que ma boucle se répétait.
Bref, maintenant sa marche. merci a tous.

*Résolu*
ANSI <font> <font> <font> <li> <p> <title> Mar I/O .NET