Bsr
En clair PHP t'indique que tu as passé à la fonction mysql_num_rows() un argument (un paramètre si tu préfères) qui ne correspond pas à une ressource MySQL.
Qu'est-ce qu'une ressource MySQL ?
C'est une variable d'un type bien particulier que créé PHP afin de
pouvoir identifier et manipuler des objets de différentes natures : fichiers ouverts, connexion à MySQL, résultats d'une requête etc ...
C'est la fonction mysql_query() qui te retourne normalement une ressource MySQL : attention cependant si la requête échoue mysql_query() ne retourne plus une ressource mais une FALSE donc une variable booléenne.
Et c'est ce qui se produit ici : $cherchePrix ne contient pas une ressource MySQL mais bien FALSE !!!!
Jusqu'ici ce n'est pas trop gênant.
Cependant lorsqu'ensuite PHP appelle la fonction mysql_num_rows($cherchePrix) : il se produit alors l'erreur à laquelle tu es confrontée .
L'origine de l'erreur est donc à rechercher dans l'instruction :
$cherchePrix = mysql_query("select prix, compresseur from matable where compresseur = $compresseur");
Bref en gros tu executes une requête non valide.
En effet si le champ compresseur est de type chaîne (string) dans ta table alors ajoute des apostrophes et écrit ceci :
$cherchePrix = mysql_query("select prix, compresseur from matable where compresseur = '".$compresseur."'");
j'espère aussi qu'avant d'utiliser $compresseur tu as bien pensé à écrire en PHP :
$compresseur = "";
if (isset($_POST["compresseur"])) $compresseur =$_POST["compresseur"] ;
En effet toutes les variables passées par des formulaires via la méthodes "post" se retrouve dans le tableau $_POST[] prédéfini.
En aucun cas PHP n'initialisera directement pour toi la variable $compresseur ni aucune autre variable passée par POST : tu dois mettre le code ci-dessus.
Syntaxe pour for
Ex :
var $i;
for($i=0; $i <10; $i++)
{
// Instructions ...
}
Ce qui peut se traduire par : pour i de 0 à 9 par pas de 1 effectue toutes les instructions.
1 : $i=0
Signifie initialise la variable $i à zéro : n'est effectué qu'une seule fois au départ
2 : $i < 10
l'expression est évaluée à TRUE ou FALSE
si c'est vrai alors les instructions sont toutes exécutées
si c'est faux alors on sort de la boucle et le for est terminé
3 : $i++
cette expression est évaluée
normalement ici il faut faire varier $i sans quoi la boucle ne s'arrête jamais
$i++ est équivalent à $i=$i+1 donc on ajoute 1 à $i
Ensuite on retourne à l'étape 2 et ainsi de suite d'où le terme de boucle.
Est-ce plus clair ?