Moteur de recherche

Eléphant du PHP | 179 Messages

18 oct. 2005, 11:39

tu feras aussi bien que moi ;)
Tu ne sais pas ce que tu dis :lol: Le jour où j'atteindrai ton niveau, je me ferai informaticienne :lol:

Bon, voilà ce que j'ai fait.
<?php
// Récupération des données du formulaire
	$MotRech = $_POST['MotRech'];
?>

<input type="hidden" name="MotRech" value="<? echo $MotRech;?>">

<?php
//Connection à la base//
	$lien = mysql_connect("xx","xx","x");
	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 
				ORDER BY cpt DESC";
	$ResGroupe=mysql_query($ReqGroupe) or die('Il y a eu une erreur : <strong>' . mysql_error() .
'</strong><br>Dans : <br>' . $ReqGroupe); 

//Parcourir le tableau et afficher s'il y a des résultats//
while ($ValGroupe=mysql_fetch_row($ReqGroupe))
	{
	if ($ValGroupe>0)
		{
?>
<a href="zz.php?IdGroupe=<?php echo $IdGroupe; ?>"><?php echo $NomGroupe; ?><br />
<?php 
		}
	}
		
// 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 
				ORDER BY cpt DESC";
	$ResSociete=mysql_query($ReqSociete) or die('Il y a eu une erreur : <strong>' . mysql_error() .
'</strong><br>Dans : <br>' . $ReqSociete); 

while ($ValSociete=mysql_fetch_row($ReqSociete))
	{
	if ($ValSociete>0)
		{
?>
<a href="xx.php?IdSociete=<?php echo $IdSociete; ?>"><?php echo $NomSociete; ?><br />
<?php 
		}
	}

// 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 
				ORDER BY cpt DESC";
	$ResProduit=mysql_query($ReqProduit) or die('Il y a eu une erreur : <strong>' . mysql_error() .
'</strong><br>Dans : <br>' . $ReqProduit); 

while ($ValProduit=mysql_fetch_row($ReqProduit))
	{
	if ($ValProduit>0)
		{
?>
<a href="yy.php?IdProduit=<?php echo $IdProduit; ?>"><?php echo $NomProduit; ?><br />
<?php 
		}
	}
mysql_close($lien);
?>
J'ai l'impression que ce n'est pas la bonne fonction tableau: il m'indique une erreur pour les trois $Val
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in ...
Petit à petit, on devient moins petit... mais qu'est-ce qu'on vieillit!

ViPHP
pjl
ViPHP | 2119 Messages

18 oct. 2005, 11:43

Avant de vouloir exploiter le résultat, il faut vérifier que la requête a bien ramené un résultat.

Eléphant du PHP | 179 Messages

18 oct. 2005, 12:07

Bonjour Pjl,

Euh, j'ai testé d'abord dans MyAdmin pour vérifier préalablement quel nombre et quelles réponses je devais attendre. C'est ce que tu veux me dire?
Petit à petit, on devient moins petit... mais qu'est-ce qu'on vieillit!

ViPHP
pjl
ViPHP | 2119 Messages

18 oct. 2005, 12:12

Non.
Quand tu fais un select, tu doit vérifier qu'il te ramène bien un résultat.
Là, tu pars bille en tête à exploiter des résultats sans savoir s'ils existent.

Eléphant du PHP | 179 Messages

18 oct. 2005, 12:32

Tu veux dire qu'il faut que je fasse qq chose comme:
<?php 
if ($ValGroupe ==0) 
    {
    print "il n'y a pas de résultat";
    }
else
    {
    while ($ValGroupe=mysql_fetch_row($ReqGroupe))
          {
           if ($ValGroupe>0)
              { 
?>
<a href="zz.php?IdGroupe=<?php echo $IdGroupe; ?>"><?php echo $NomGroupe; ?><br />
<?php
              }
          }
      }
mysql_close($lien);
?>
      
Petit à petit, on devient moins petit... mais qu'est-ce qu'on vieillit!

ViPHP
pjl
ViPHP | 2119 Messages

18 oct. 2005, 13:21

tu dois utiliser la fonction PHP mysql_num_rows.

Mammouth du PHP | 19672 Messages

18 oct. 2005, 13:23

Un truc m'échappe un peut: qu'est-ce que fait le champ cché en début de script ? Est-ce que par hasard tu exécutes directement ce script ou tu passes par un vrai formulaire ?

Fais donc un echo() sur tes requêtes, je soupçonne fortement le gag: la variable $MotRech est vide. :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
pjl
ViPHP | 2119 Messages

18 oct. 2005, 13:39

Argh, j'ai en effet oublié de le lui faire remarquer.

Invité
Invité n'ayant pas de compte PHPfrance

18 oct. 2005, 14:31

Un truc m'échappe un peut: qu'est-ce que fait le champ cché en début de script ? Est-ce que par hasard tu exécutes directement ce script ou tu passes par un vrai formulaire ?

Fais donc un echo() sur tes requêtes, je soupçonne fortement le gag: la variable $MotRech est vide.
Je passe vraiment par un formulaire. J'ai un script A où l'utilisateur saisit le mot. Le script B que je suis en train de réaliser est censé effectuer la recherche et faire afficher le résultat. L'echo de la requête me renvoie le mot.
Finalement je garde le WHERE MATCH: il me permet de garder que les réponses supérieures ou égales à 1.

J'ai testé la requête sous myadmin. Elle fonctionne bien (du moins pour ce que j'en attends).

Grâce aux conseils de Pjl, voici mon code:
<?php
// Récupération des données du formulaire
	$MotRech = $_POST['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); 

$IdGroupe = mysql_result($ResGroupe,0,'IdGroupe');
$NomGroupe = mysql_result($ResGroupe,0,'NomGroupe');

//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
    {
    while ($ValGroupe=mysql_fetch_row($ResGroupe))
          {
 ?>
<a href="xx.php?IdGroupe=<?php echo $IdGroupe; ?>"><?php echo $NomGroupe; ?><br />
<?php
              
          }
      }
// 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); 
echo $ResSociete;

$IdSociete = mysql_result($ResSociete,0,'IdSociete');
$NomSociete = mysql_result($ResSociete,0,'NomSociete');

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
    {
	while ($ValSociete=mysql_fetch_row($ResSociete))
		{
	
?>
<a href="yy.php?IdSociete=<?php echo $IdSociete; ?>"><?php echo $NomSociete; ?><br />
<?php 
		}
	}
	
// 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); 

$IdProduit = mysql_result($ResProduit,0,'IdProduit');
$NomProduit = mysql_result($ResProduit,0,'NomProduit');

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
    {
	while ($ValProduit=mysql_fetch_row($ResProduit))
		{
?>
<a href="zz.php?IdProduit=<?php echo $IdProduit; ?>"><?php echo $NomProduit; ?><br />
<?php 
		}
	}
mysql_close($lien);
?>
Mais j'ai encore des erreurs que je ne comprends pas.
Les "Resource" correspondent aux echo $ResGroupe, $ResProduit et $ResSociete. Il m'affiche ceci comme erreur:
Resource id #3Resource id #4
Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 4 in c:\program files\easyphp1-8\www\171005\user\rech2.php on line 56

Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 4 in c:\program files\easyphp1-8\www\171005\user\rech2.php on line 57
Il n'y a pas de résultat pour le(s) mot(s) recherché(s)Resource id #5
Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 5 in c:\program files\easyphp1-8\www\171005\user\rech2.php on line 87

Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 5 in c:\program files\easyphp1-8\www\171005\user\rech2.php on line 88
Il n'y a pas de résultat pour le(s) mot(s) recherché(s)

Eléphant du PHP | 179 Messages

18 oct. 2005, 15:39

Warf, désolée, je pensais que je m'étais connectée... C'est moi qui ait écrit au-dessus, vous vous en doutez :wink:
Petit à petit, on devient moins petit... mais qu'est-ce qu'on vieillit!

Mammouth du PHP | 19672 Messages

18 oct. 2005, 19:32

Tu forces pas trop pour trouver les erreurs je trouve :?

Allez, nouveau test:
<?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);

    $IdGroupe = mysql_result($ResGroupe,0,'IdGroupe');
    $NomGroupe = mysql_result($ResGroupe,0,'NomGroupe');

    //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
    {
        while ($ValGroupe=mysql_fetch_row($ResGroupe))
        {
?>
<a href="xx.php?IdGroupe=<?php echo $IdGroupe; ?>"><?php echo $NomGroupe; ?><br />
<?php

        }
    }
    // 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);
    echo $ResSociete;

    $IdSociete = mysql_result($ResSociete,0,'IdSociete');
    $NomSociete = mysql_result($ResSociete,0,'NomSociete');

    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
    {
        while ($ValSociete=mysql_fetch_row($ResSociete))
        {

?>
<a href="yy.php?IdSociete=<?php echo $IdSociete; ?>"><?php echo $NomSociete; ?><br />
<?php
        }
    }

    // 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);

    $IdProduit = mysql_result($ResProduit,0,'IdProduit');
    $NomProduit = mysql_result($ResProduit,0,'NomProduit');

    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
    {
        while ($ValProduit=mysql_fetch_row($ResProduit))
        {
?>
<a href="zz.php?IdProduit=<?php echo $IdProduit; ?>"><?php echo $NomProduit; ?><br />
<?php
        }
    }
    mysql_close($lien);
}
else
{
?>
<p>Aucun mot clé envoyé.</p>
<?php
}
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 179 Messages

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. :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
// 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
	}
?>
Petit à petit, on devient moins petit... mais qu'est-ce qu'on vieillit!

Mammouth du PHP | 19672 Messages

19 oct. 2005, 10:35

Bon très bien, mais qu'est-ce que tu obtiens.

Méthode de débuggage d'un script: il faut cerner le point où se trouve l'erreur: Il faut faire afficher les variables sur lesquelles on a un doute: si le résultat attendu est correct, alors on peut éliminer ce point et passer à autre chose, mais c'est en principe parce que le script a correctement fonctionné jusqu'à ce point: l'erreur est donc plus loin : Si au contraire l'information affichée est erronée, alors l'erreur est AVANT. Petit à petit, on finit par pointer directement sur le bobo.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 179 Messages

19 oct. 2005, 11:46

J'ai fait le test uniquement sur une seule des trois requêtes. J'ai changé

$ValProduit=mysql_fetch_row($ResProduit)
par
$ValProduit=mysql_fetch_array($ResProduit)

Il me donne trois réponses sur les quatre attendues. Cette fois-ci la première ligne du tableau n'apparaît plus. :shock: Je n'arrive pas à comprendre à quoi c'est dû.
Petit à petit, on devient moins petit... mais qu'est-ce qu'on vieillit!

Eléphant du PHP | 179 Messages

19 oct. 2005, 13:49

Voilà quelque chose d'assez étrange, j'obtiens mes quatres réponses (mais avec deux messages d'erreurs) avec le code suivant:
<?php
// Récupération des données du formulaire
$MotRech = $_POST['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 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,-1,'IdProduit');
	    $NomProduit = mysql_result($ResProduit,-1,'NomProduit');
		while ($ValProduit=mysql_fetch_array($ResProduit))
        	{
?>
<a href="aff_rechproduits.php?IdProduit=<?php print ($ValProduit["IdProduit"]); ?>"><?php print ($ValProduit["NomProduit"]); ?><br /></a>
<?php
  			}
        }
   
mysql_close($lien);
?>
J'ai donc modifié la valeur (0) par la valeur (-1). La modification est considérée comme une erreur mais paradoxalement il me donne toutes les réponses. J'ai du mal à comprendre de telles subtilités. :(

Voici le message d'erreur:
Warning: mysql_result(): Unable to jump to row -1 on MySQL result index 3 in c:\program files\easyphp1-8\www\181005\user\test2.php on line 29

Warning: mysql_result(): Unable to jump to row -1 on MySQL result index 3 in c:\program files\easyphp1-8\www\181005\user\test2.php on line 30
Petit à petit, on devient moins petit... mais qu'est-ce qu'on vieillit!