Eléphant du PHP |
250 Messages
04 mai 2009, 12:13
Bonjour
Ryle
La $nom est le résultat du moteur que voilà:
<form method="post" action="choix-mark.php">
<br />
Sélectionner une marque:
<br />
<select name="mark" class="select-option-menu">
<br />
<?php
$requete = mysql_query("SELECT * FROM mark ORDER BY nom ASC ");
while ($row = mysql_fetch_array($requete)) {
echo "<option value=\"\"></option>";
echo "<option value=\"".$row['nom']."\">" .$row['nom']. "</option>";
}
?>
</select>
<br />
<input type="submit" value="Recherche par marque" class="small-input-menu" />
<br />
</form>
<form method="post" action="choix-fam.php">
ou une famille de pièces:
<br />
<select name="famille" class="select-option-menu">
<br />
<?php
$sql = mysql_query ("SELECT * FROM familles ORDER BY nom_fam ASC");
while ($row = mysql_fetch_array($sql))
{
echo "<option value=\"\"></option>";
echo "<option value=\"".$row['nom_fam']."\">" .$row['nom_fam']. "</option>";
}
?>
</select>
<br />
<input type="submit" value="Recherche par piece" class="small-input-menu" />
</form>
d'où $nom = $_POST ['mark'] (dans cet exemple) que je récupère (bien) en arrivant sur la page 'choix-mark.php'.
J'ai bien le sentiment que c'est elle qui se "perd" dans le passage d'une page à l'autre...
Voici d'ailleurs ce qui apparait dans la barre d'adresse:
il s'agit ici du résultat lorsque je clique sur le lien vers la page 2, ce qui correspond bien (ou presque!) au résultat attendu....sauf que la page présentée n'affiche rien...même le nom de la famille affichée a disparu...
Note: Oupssssssss, bien vu pour le count, je modifie!
Edit: 
Honte...j'ai honte! Merci à
Ryle de m'avoir mis sur la piste!
L'erreur:
Le formulaire du moteur était en _POST et je cherchai la $_GET.....(oui, je sais.....Hououououou

)
ce qui donne donc au final:
$nom = $_GET['mark'];
// comptage du nombre de lignes de la base
$sql = "SELECT count(id_article) FROM stock WHERE marque ='$nom' AND statut = 0";
//éxécution de la requête
$resultat = mysql_query($sql) or die ('Erreur SQL! <br />'.$sql.'<br />'.mysql_error());
//récupération du nombre total à afficher
$nb_total = mysql_fetch_array($resultat);
//test pour vérifier si ce nombre vaut 0
if (($nb_total = $nb_total[0]) == 0) {
echo "Aucun article dans la marque <b>$nom</b>, désolé! Merci de revenir plus tard ou de nous interroger.";
}
else {
echo "Liste des articles de marque <b>$nom</b> en vente";
// sinon, on regarde si la variable $debut (le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on l'initialise à 0
if (!isset($_GET['debut'])) $_GET['debut'] = 0;
$nb_affichage_par_page = 4;
//Préparation de la requête avec le LIMIT
$sql = "SELECT * FROM stock WHERE marque = '$nom' AND statut = 0 ORDER BY id_article ASC LIMIT " .$_GET['debut'].','.$nb_affichage_par_page;
//éxécution de la requête
$req = mysql_query($sql)or die ('Erreur SQL! <br />'.$sql.'<br />'.mysql_error());
echo '<br />';
// on affiche enfin notre barre
print $barre;
echo '<center><span>'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 3).'</span></center>';
echo '<hr />';
while ($pieces = mysql_fetch_array($req))
{
et le form:
Code : Tout sélectionner
<form method="get" action="testbarre.php">
<br />
Sélectionner une marque:
<br />
<select name="mark" class="select-option-menu">
<br />
<?php
$requete = mysql_query("SELECT * FROM mark ORDER BY nom ASC ");
while ($row = mysql_fetch_array($requete)) {
echo "<option value=\"\"></option>";
echo "<option value=\"".$row['nom']."\">" .$row['nom']. "</option>";
}
?>
</select>
<br />
<input type="submit" value="Recherche par marque" class="small-input-menu" />
<br />
</form>
<form method="get" action="choix-fam.php">
ou une famille de pièces:
<br />
<select name="famille" class="select-option-menu">
<br />
<?php
$sql = mysql_query ("SELECT * FROM familles ORDER BY nom_fam ASC");
while ($row = mysql_fetch_array($sql))
{
echo "<option value=\"\"></option>";
echo "<option value=\"".$row['nom_fam']."\">" .$row['nom_fam']. "</option>";
}
?>
</select>
<br />
<input type="submit" value="Recherche par piece" class="small-input-menu" />
</form>
...et là, tout de suite, ça va beaucoup mieux....
Je mets donc [Résolu], et j'en profite pour demander au staff de PhpFrance, si une telle erreur ne mérite pas que je sois rétrogradé au statut d'
embryon ???

"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."