par
Elisa » 19 oct. 2005, 09:59
Bonjour,
Tu forces pas trop pour trouver les erreurs je trouve Confused
Je te trouve assez injuste étant donné que j'atteignais ma 10e heure de boulot et que ça fait plusieurs jours que j'y travaille exclusivement. Parfois, ce qui paraît élémentaire ne l'est plus passé un certain nombre d'heures de travail.
Par ailleurs j'avais déjà fait le test puisque tu me l'avais conseillé précédemment. J'avais effectivement vérifié si le mot recherché était correctement transmis ce qui était le cas.
Le type d'erreur que j'avais n'apparaissait que lorsque la condition n'était pas remplie, c'est-à-dire lorsqu'il n'y avait pas de résultat. Sinon il m'affichait normalement les noms lorsqu'il y avait des réponses. C'était donc la condition qui posait problème. Cette erreur est résolue.
Le souci que j'ai désormais, c'est l'affichage des réponses. Il m'affiche seulement la première réponse du tableau. Lorsque sous MyAdmin j'ai quatre réponses, il m'affiche seulement la première qu'il duplique plusieurs fois. Est-ce que ça peut être un problème de requête?
Voici mon code tel qu'il se présente désormais.
<?php
// Récupération des données du formulaire
$MotRech = $_POST['MotRech'];
if(!empty($MotRech))
{
?>
<input type="hidden" name="MotRech" value="<? echo $MotRech;?>">
<?php
//Connection à la base//
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
//Requête pour rechercher dans les champs de la table groupes//
$ReqGroupe = "SELECT IdGroupe, NomGroupe,
MATCH (NomGroupe, AutreNomGroupe, Presentation, InfCompl)
AGAINST ('".$MotRech."'IN BOOLEAN MODE) AS cpt
FROM groupes
WHERE MATCH (NomGroupe, AutreNomGroupe, Presentation, InfCompl)
AGAINST ('".$MotRech."'IN BOOLEAN MODE)
ORDER BY cpt DESC ";
$ResGroupe=mysql_query($ReqGroupe) or die('Il y a eu une erreur : <strong>' . mysql_error() .
'</strong><br>Dans : <br>' . $ReqGroupe);
//S'il n'y a pas de résultat//
if(mysql_num_rows($ResGroupe) == 0)
{
echo "Il n'y a pas de résultat pour le(s) mot(s) recherché(s)";
}
//Sinon on parcourt le tableau de résultats//
else
{
$IdGroupe = mysql_result($ResGroupe,0,'IdGroupe');
$NomGroupe = mysql_result($ResGroupe,0,'NomGroupe');
while ($ValGroupe=mysql_fetch_row($ResGroupe))
{
?>
<a href="xx.php?IdGroupe=<?php echo $IdGroupe; ?>"><?php echo $NomGroupe; ?><br /></a>
<?php
}
}
mysql_close($lien);
?>
<?php
//Connection à la base//
$lien = mysql_connect("localhost","admin","JPLsin05");
mysql_select_db("sinbad", $lien);
// Requête pour rechercher dans les champs de la table societes//
$ReqSociete = "SELECT IdSociete, NomSociete,
MATCH (NomSociete, AutreNomSociete, Presentation, InfCompl)
AGAINST ('".$MotRech."'IN BOOLEAN MODE) AS cpt
FROM societes
WHERE MATCH (NomSociete, AutreNomSociete, Presentation, InfCompl)
AGAINST ('".$MotRech."'IN BOOLEAN MODE)
ORDER BY cpt DESC ";
$ResSociete=mysql_query($ReqSociete) or die('Il y a eu une erreur : <strong>' . mysql_error() .
'</strong><br>Dans : <br>' . $ReqSociete);
if(mysql_num_rows($ResSociete) == 0)
{
echo "Il n'y a pas de résultat pour le(s) mot(s) recherché(s)";
}
//Sinon on parcourt le tableau de résultats//
else
{
$IdSociete = mysql_result($ResSociete,0,'IdSociete');
$NomSociete = mysql_result($ResSociete,0,'NomSociete');
while ($ValSociete=mysql_fetch_row($ResSociete))
{
?>
<a href="xx.php?IdSociete=<?php echo $IdSociete; ?>"><?php echo $NomSociete; ?></a><br />
<?php
}
}
mysql_close($lien);
?>
<?php
//Connection à la base//
$lien = mysql_connect("localhost","admin","JPLsin05");
mysql_select_db("sinbad", $lien);
// Requête pour rechercher dans les champs de la table produits//
$ReqProduit = "SELECT IdProduit, NomProduit,
MATCH (NomProduit, Presentation)
AGAINST ('".$MotRech."'IN BOOLEAN MODE) AS cpt
FROM produits
WHERE MATCH (NomProduit, Presentation)
AGAINST ('".$MotRech."'IN BOOLEAN MODE)
ORDER BY cpt DESC ";
$ResProduit=mysql_query($ReqProduit) or die('Il y a eu une erreur : <strong>' . mysql_error() .
'</strong><br>Dans : <br>' . $ReqProduit);
if(mysql_num_rows($ResProduit) == 0)
{
echo "Il n'y a pas de résultat pour le(s) mot(s) recherché(s)";
}
//Sinon on parcourt le tableau de résultats//
else
{
$IdProduit = mysql_result($ResProduit,0,'IdProduit');
$NomProduit = mysql_result($ResProduit,0,'NomProduit');
while ($ValProduit=mysql_fetch_row($ResProduit))
{
?>
<a href="xx.php?IdProduit=<?php echo $IdProduit; ?>"><?php echo $NomProduit; ?><br /></a>
<?php
}
}
mysql_close($lien);
?>
<?
}
else
{
?>
<p>Aucun mot clé envoyé.</p>
<?php
}
?>
Bonjour,
[quote]Tu forces pas trop pour trouver les erreurs je trouve Confused [/quote]
Je te trouve assez injuste étant donné que j'atteignais ma 10e heure de boulot et que ça fait plusieurs jours que j'y travaille exclusivement. Parfois, ce qui paraît élémentaire ne l'est plus passé un certain nombre d'heures de travail. :wink:
Par ailleurs j'avais déjà fait le test puisque tu me l'avais conseillé précédemment. J'avais effectivement vérifié si le mot recherché était correctement transmis ce qui était le cas.
Le type d'erreur que j'avais n'apparaissait que lorsque la condition n'était pas remplie, c'est-à-dire lorsqu'il n'y avait pas de résultat. Sinon il m'affichait normalement les noms lorsqu'il y avait des réponses. C'était donc la condition qui posait problème. Cette erreur est résolue.
Le souci que j'ai désormais, c'est l'affichage des réponses. Il m'affiche seulement la première réponse du tableau. Lorsque sous MyAdmin j'ai quatre réponses, il m'affiche seulement la première qu'il duplique plusieurs fois. Est-ce que ça peut être un problème de requête?
Voici mon code tel qu'il se présente désormais.
[php]
<?php
// Récupération des données du formulaire
$MotRech = $_POST['MotRech'];
if(!empty($MotRech))
{
?>
<input type="hidden" name="MotRech" value="<? echo $MotRech;?>">
<?php
//Connection à la base//
$lien = mysql_connect("xx","xx","xx");
mysql_select_db("xx", $lien);
//Requête pour rechercher dans les champs de la table groupes//
$ReqGroupe = "SELECT IdGroupe, NomGroupe,
MATCH (NomGroupe, AutreNomGroupe, Presentation, InfCompl)
AGAINST ('".$MotRech."'IN BOOLEAN MODE) AS cpt
FROM groupes
WHERE MATCH (NomGroupe, AutreNomGroupe, Presentation, InfCompl)
AGAINST ('".$MotRech."'IN BOOLEAN MODE)
ORDER BY cpt DESC ";
$ResGroupe=mysql_query($ReqGroupe) or die('Il y a eu une erreur : <strong>' . mysql_error() .
'</strong><br>Dans : <br>' . $ReqGroupe);
//S'il n'y a pas de résultat//
if(mysql_num_rows($ResGroupe) == 0)
{
echo "Il n'y a pas de résultat pour le(s) mot(s) recherché(s)";
}
//Sinon on parcourt le tableau de résultats//
else
{
$IdGroupe = mysql_result($ResGroupe,0,'IdGroupe');
$NomGroupe = mysql_result($ResGroupe,0,'NomGroupe');
while ($ValGroupe=mysql_fetch_row($ResGroupe))
{
?>
<a href="xx.php?IdGroupe=<?php echo $IdGroupe; ?>"><?php echo $NomGroupe; ?><br /></a>
<?php
}
}
mysql_close($lien);
?>
<?php
//Connection à la base//
$lien = mysql_connect("localhost","admin","JPLsin05");
mysql_select_db("sinbad", $lien);
// Requête pour rechercher dans les champs de la table societes//
$ReqSociete = "SELECT IdSociete, NomSociete,
MATCH (NomSociete, AutreNomSociete, Presentation, InfCompl)
AGAINST ('".$MotRech."'IN BOOLEAN MODE) AS cpt
FROM societes
WHERE MATCH (NomSociete, AutreNomSociete, Presentation, InfCompl)
AGAINST ('".$MotRech."'IN BOOLEAN MODE)
ORDER BY cpt DESC ";
$ResSociete=mysql_query($ReqSociete) or die('Il y a eu une erreur : <strong>' . mysql_error() .
'</strong><br>Dans : <br>' . $ReqSociete);
if(mysql_num_rows($ResSociete) == 0)
{
echo "Il n'y a pas de résultat pour le(s) mot(s) recherché(s)";
}
//Sinon on parcourt le tableau de résultats//
else
{
$IdSociete = mysql_result($ResSociete,0,'IdSociete');
$NomSociete = mysql_result($ResSociete,0,'NomSociete');
while ($ValSociete=mysql_fetch_row($ResSociete))
{
?>
<a href="xx.php?IdSociete=<?php echo $IdSociete; ?>"><?php echo $NomSociete; ?></a><br />
<?php
}
}
mysql_close($lien);
?>
<?php
//Connection à la base//
$lien = mysql_connect("localhost","admin","JPLsin05");
mysql_select_db("sinbad", $lien);
// Requête pour rechercher dans les champs de la table produits//
$ReqProduit = "SELECT IdProduit, NomProduit,
MATCH (NomProduit, Presentation)
AGAINST ('".$MotRech."'IN BOOLEAN MODE) AS cpt
FROM produits
WHERE MATCH (NomProduit, Presentation)
AGAINST ('".$MotRech."'IN BOOLEAN MODE)
ORDER BY cpt DESC ";
$ResProduit=mysql_query($ReqProduit) or die('Il y a eu une erreur : <strong>' . mysql_error() .
'</strong><br>Dans : <br>' . $ReqProduit);
if(mysql_num_rows($ResProduit) == 0)
{
echo "Il n'y a pas de résultat pour le(s) mot(s) recherché(s)";
}
//Sinon on parcourt le tableau de résultats//
else
{
$IdProduit = mysql_result($ResProduit,0,'IdProduit');
$NomProduit = mysql_result($ResProduit,0,'NomProduit');
while ($ValProduit=mysql_fetch_row($ResProduit))
{
?>
<a href="xx.php?IdProduit=<?php echo $IdProduit; ?>"><?php echo $NomProduit; ?><br /></a>
<?php
}
}
mysql_close($lien);
?>
<?
}
else
{
?>
<p>Aucun mot clé envoyé.</p>
<?php
}
?>[/php]