Je crois que je suis coincé dans ma liste déroulante.
Mais vraiment planté.
Voilà je veux faire un tri de mes maisons par prix
Je n'arrive opas à décoller de ma première page.
Il me manque un truc
Je te passe mon code, ça fait plusieurs jours que j'essaie et je ne débloque pas.
C'est toujours le pb avec moi, il me manque tellement de bases que dès fois je suis bien planté
Philippe
Page d'appel
<link REL="StyleSheet" TYPE="text/css" HREF="../feuille_style/forme.css">
<?php /* Date de création: 21/06/05 */
include_once ("globals.inc.php");
include_once ("fonctions.inc.php");
mysql_connect($serveur,$login,$motpasse) or die ("erreur de connexion au serveur ".mysql_error());
mysql_select_db($base) or die ("erreur de connexion a la base de données ".mysql_error());
Entete();
echo("<table class=\"bord\" width=\"100%\" height=\"100\" border=\"1\" align=\"center\" summary=\"\">");
echo ("<tr class=\"fond\">");
echo ("<td> </td>");
echo ("<td> </td>");
echo ("<td> </td>");
echo ("</tr>");
echo ("<tr>");
echo ("<td> </td>");
echo ("<P CLASS=\"fond\"><td><form action=\"result.php\" method=\"post\">");
echo ("<select name=\"ftot1\">");
echo ("<option value=\"0\" selected=\"selected\"> tous les prix</option>");
echo ("<option value=\"1\"> <50.000 €</option>");
echo ("<option value=\"2\"> 50 -100.000 €</option>");
echo ("<option value=\"3\"> 100 - 150.000 €</option>");
echo ("<option value=\"4\"> > 150.000 €</option>");
echo ("</select>");
echo ("</form><br><form name=\"bt1\">");
echo ("<input type=\"submit\" value=\"alllons y...!\">");
echo ("<td> </td>");
echo ("</tr>");
echo("</table>");
?>
Page de résultat:
<?php /* Date de création: 21/06/05 */
include_once ("globals.inc.php");
include_once ("fonctions.inc.php");
mysql_connect($serveur,$login,$motpasse) or die ("erreur de connexion au serveur ".mysql_error());
mysql_select_db($base) or die ("erreur de connexion a la base de données ".mysql_error());
$que = " SELECT * FROM `biens_fr`" ;
$query = " SELECT * FROM `biens_fr` WHERE (tot1) <= 50000";
$query_1 =" SELECT * FROM `biens_fr` WHERE (tot1) >= 50000 AND (tot1) <= 100000 LIMIT 0 , 30";
$query_2 =" SELECT * FROM `biens_fr` WHERE (tot1) >= 100000 AND (tot1) <= 150000 LIMIT 0 , 30";
$query_3 =" SELECT * FROM `biens_fr` WHERE (tot1) >= 150000";
$result = mysql_query($query_3) or die ("Requête incorrecte ".mysql_error());
// Fermer la connexion
mysql_close();
Entete();
echo("<table summary=\"Table gestion biens\" border=\"0\" cellpadding=\"5\" cellspacing=\"2\">\n");
echo("<tr>\n");
echo("<td class=\"tfc\">ref</td>\n");
echo("<td class=\"tfc\">tit</td>\n");
echo("<td class=\"tfc\">desc</td>\n");
echo("<td class=\"tfc\">tot1</td>\n");
while($row = mysql_fetch_array($result))
{
echo("<tr>\n");
echo("<td class=\"fc\">$row[ref]</td>\n");
echo("<td class=\"fc\">$row[tit]</td>\n");
echo("<td class=\"f\">$row[desc]</td>\n");
echo("<td class=\"fc\">$row[tot1]</td>\n");
}
?>
help
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :
Bonjour Philippe,
D'abord je n'y connais rien en PHP, donc ce qui suit peut etre totalement faux.
Il me semble que tes requetes SQL ne definissent pas les champs à afficher.
Je verrais plutot ceci:
D'autre part dans tes limites si tu mets <=, et >= dans toutes tes requetes les valeurs de 100000 se trouveront dans query_1 et query_2
Enfin un bon moyen d'apprendre des requetes SQL avec P10 est de les écrire en QBE et de les editer en SQL.
Si cela peut etre utile
Régis
D'abord je n'y connais rien en PHP, donc ce qui suit peut etre totalement faux.
Il me semble que tes requetes SQL ne definissent pas les champs à afficher.
Je verrais plutot ceci:
Il me semble que les parentheses devraient etre comme ci-dessus.SELECT tot1, column1,column2
FROM "biens.db" biens
WHERE (tot1 >= 50000)
AND (tot1 <= 100000)
D'autre part dans tes limites si tu mets <=, et >= dans toutes tes requetes les valeurs de 100000 se trouveront dans query_1 et query_2
Enfin un bon moyen d'apprendre des requetes SQL avec P10 est de les écrire en QBE et de les editer en SQL.
Si cela peut etre utile
Régis
-
- Site Admin
- Messages : 855
- Enregistré le : sam. sept. 14, 2002 10:41 pm
- Localisation : Igny (Essonne)
Re: help
Sur le formulaire qui n'a donc rien de dynamique tu as une erreur sur ton bouton submit qui devrait être inclus dans le formulaire , donc avant le </form>.Philippe GUEGAN a écrit :Je crois que je suis coincé dans ma liste déroulante.Mais vraiment planté.[...]
Pour la 2ème partie , la page résultat il vaut mieux écrire :
$query_3 =" SELECT * FROM biens_fr WHERE (tot1 >= '150000')";
En outre il faut fermer ton enregistrement de titre de colonne par un </tr> avant d'entamer la boucle d'affichage while...
De même en fin de ligne détail (donc dans la boucle while) il faut fermer chaque ligne par un </tr> et après la boucle fermer la table par un </table>
Enfin il faut fermer la page html avec un </body></html> ou une fonction BasPage équivalente.
Courage tu vas y arriver et cela vaut le coup !
PS : Et ton code n'exécute que la query_3 pas les autres.
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :
Hier soir le grand désespoir
aujourd'hui la lumière
Je viens de me connecter pour te dire que j'ai réussi.
En fait j'aurais dû me connecter avant ça m'aurait éviter de perdre encore une moitié de ma chevelure
J'avais fini par trouver le pb du bouton submit.
Je te remontre le code final pour que tu jettes vite fait un coup d'oeil pour voir s'il n'y a pas trop de lourdeurs.
Chuis vachement fier, j'arrête pas de faire des essais!!
Page d'appel
<link REL="StyleSheet" TYPE="text/css" HREF="../feuille_style/forme.css">
<?php /* Date de création: 21/06/05 */
include_once ("globals.inc.php");
include_once ("fonctions.inc.php");
mysql_connect($serveur,$login,$motpasse) or die ("erreur de connexion au serveur ".mysql_error());
mysql_select_db($base) or die ("erreur de connexion a la base de données ".mysql_error());
Entete();
?>
<table class="bord" width="100%" height="100" border="1" align="center" summary="">
<tr class="fond">
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<P CLASS="fond"><td>
<form method="post" action="result.php">
<select name="ftot1">
<option value="0" selected="selected"> tous les prix</option>
<option value="1"> <50.000 €</option>
<option value="2"> 50 -100.000 €</option>
<option value="3"> 100 - 150.000 €</option>
<option value="4"> > 150.000 €</option>
</select>
<input type="submit" value="allons y...!">
</form>
<td> </td>
</tr>
</table>
Page Cible
<?php /* Date de création: 21/06/05 */
include_once ("globals.inc.php");
include_once ("fonctions.inc.php");
mysql_connect($serveur,$login,$motpasse) or die ("erreur de connexion au serveur ".mysql_error());
mysql_select_db($base) or die ("erreur de connexion a la base de données ".mysql_error());
echo$_POST['ftot1'];
$que = " SELECT * FROM `biens_fr`" ;
$query = " SELECT * FROM `biens_fr` WHERE (tot1) <= 50000";
$query_1 =" SELECT * FROM `biens_fr` WHERE (tot1) >= 50000 AND (tot1) <= 100000 LIMIT 0 , 30";
$query_2 =" SELECT * FROM `biens_fr` WHERE (tot1) >= 100000 AND (tot1) <= 150000 LIMIT 0 , 30";
$query_3 =" SELECT * FROM `biens_fr` WHERE (tot1) >= 150000";
if ($_POST['ftot1'] == 0)
{
$result = mysql_query($que) or die ("Requête incorrecte ".mysql_error());
}
else
if ($_POST['ftot1'] == 1)
{
$result = mysql_query($query) or die ("Requête incorrecte ".mysql_error());
}
else
if ($_POST['ftot1'] == 2)
{
$result = mysql_query($query_1) or die ("Requête incorrecte ".mysql_error());
}
else
if ($_POST['ftot1'] == 3)
{
$result = mysql_query($query_2) or die ("Requête incorrecte ".mysql_error());
}
else
if ($_POST['ftot1'] == 4)
{
$result = mysql_query($query_3) or die ("Requête incorrecte ".mysql_error());
}
// Fermer la connexion
mysql_close();
Entete();
echo("<table summary=\"Table gestion biens\" border=\"0\" cellpadding=\"5\" cellspacing=\"2\">\n");
echo("<tr>\n");
echo("<td class=\"tfc\">ref</td>\n");
echo("<td class=\"tfc\">tit</td>\n");
echo("<td class=\"tfc\">desc</td>\n");
echo("<td class=\"tfc\">tot1</td>\n");
while($row = mysql_fetch_array($result))
{
echo("<tr>\n");
echo("<td class=\"fc\">$row[ref]</td>\n");
echo("<td class=\"fc\">$row[tit]</td>\n");
echo("<td class=\"f\">$row[desc]</td>\n");
echo("<td class=\"fc\">$row[tot1]</td>\n");
}
?>
aujourd'hui la lumière
Je viens de me connecter pour te dire que j'ai réussi.
En fait j'aurais dû me connecter avant ça m'aurait éviter de perdre encore une moitié de ma chevelure
J'avais fini par trouver le pb du bouton submit.
Je te remontre le code final pour que tu jettes vite fait un coup d'oeil pour voir s'il n'y a pas trop de lourdeurs.
Chuis vachement fier, j'arrête pas de faire des essais!!
Page d'appel
<link REL="StyleSheet" TYPE="text/css" HREF="../feuille_style/forme.css">
<?php /* Date de création: 21/06/05 */
include_once ("globals.inc.php");
include_once ("fonctions.inc.php");
mysql_connect($serveur,$login,$motpasse) or die ("erreur de connexion au serveur ".mysql_error());
mysql_select_db($base) or die ("erreur de connexion a la base de données ".mysql_error());
Entete();
?>
<table class="bord" width="100%" height="100" border="1" align="center" summary="">
<tr class="fond">
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<P CLASS="fond"><td>
<form method="post" action="result.php">
<select name="ftot1">
<option value="0" selected="selected"> tous les prix</option>
<option value="1"> <50.000 €</option>
<option value="2"> 50 -100.000 €</option>
<option value="3"> 100 - 150.000 €</option>
<option value="4"> > 150.000 €</option>
</select>
<input type="submit" value="allons y...!">
</form>
<td> </td>
</tr>
</table>
Page Cible
<?php /* Date de création: 21/06/05 */
include_once ("globals.inc.php");
include_once ("fonctions.inc.php");
mysql_connect($serveur,$login,$motpasse) or die ("erreur de connexion au serveur ".mysql_error());
mysql_select_db($base) or die ("erreur de connexion a la base de données ".mysql_error());
echo$_POST['ftot1'];
$que = " SELECT * FROM `biens_fr`" ;
$query = " SELECT * FROM `biens_fr` WHERE (tot1) <= 50000";
$query_1 =" SELECT * FROM `biens_fr` WHERE (tot1) >= 50000 AND (tot1) <= 100000 LIMIT 0 , 30";
$query_2 =" SELECT * FROM `biens_fr` WHERE (tot1) >= 100000 AND (tot1) <= 150000 LIMIT 0 , 30";
$query_3 =" SELECT * FROM `biens_fr` WHERE (tot1) >= 150000";
if ($_POST['ftot1'] == 0)
{
$result = mysql_query($que) or die ("Requête incorrecte ".mysql_error());
}
else
if ($_POST['ftot1'] == 1)
{
$result = mysql_query($query) or die ("Requête incorrecte ".mysql_error());
}
else
if ($_POST['ftot1'] == 2)
{
$result = mysql_query($query_1) or die ("Requête incorrecte ".mysql_error());
}
else
if ($_POST['ftot1'] == 3)
{
$result = mysql_query($query_2) or die ("Requête incorrecte ".mysql_error());
}
else
if ($_POST['ftot1'] == 4)
{
$result = mysql_query($query_3) or die ("Requête incorrecte ".mysql_error());
}
// Fermer la connexion
mysql_close();
Entete();
echo("<table summary=\"Table gestion biens\" border=\"0\" cellpadding=\"5\" cellspacing=\"2\">\n");
echo("<tr>\n");
echo("<td class=\"tfc\">ref</td>\n");
echo("<td class=\"tfc\">tit</td>\n");
echo("<td class=\"tfc\">desc</td>\n");
echo("<td class=\"tfc\">tot1</td>\n");
while($row = mysql_fetch_array($result))
{
echo("<tr>\n");
echo("<td class=\"fc\">$row[ref]</td>\n");
echo("<td class=\"fc\">$row[tit]</td>\n");
echo("<td class=\"f\">$row[desc]</td>\n");
echo("<td class=\"fc\">$row[tot1]</td>\n");
}
?>
-
- Site Admin
- Messages : 855
- Enregistré le : sam. sept. 14, 2002 10:41 pm
- Localisation : Igny (Essonne)
Super que tu avances
Bon il faudra corriger le html produit car les erreurs que je t'ai signalées sont toujours là. Sinon au lieu de nombreux if sur la même variable il vaut mieux utiliser le switch qui clarifie le code :
switch($mavariableatester)
{
case 1 :
Que faire si elle vaut 1;
break;
case 2 :
Que faire si elle vaut 2;
break;
etc...
}
Enfin tu mélanges 2 types d'accès aux variables de formulaire, par les tableaux globaux ($_POST['MaVariable'] etc...) et l'accès direct par $nomvariable (possible parce que le paramètre Register Global est activé). Il est plutôt recommandé effectivement de passer par les tableaux $_POST , $_GET ou plus universel $_REQUEST
Sur cette grande victoire je te souhaite une bonne soirée !
Bon il faudra corriger le html produit car les erreurs que je t'ai signalées sont toujours là. Sinon au lieu de nombreux if sur la même variable il vaut mieux utiliser le switch qui clarifie le code :
switch($mavariableatester)
{
case 1 :
Que faire si elle vaut 1;
break;
case 2 :
Que faire si elle vaut 2;
break;
etc...
}
Enfin tu mélanges 2 types d'accès aux variables de formulaire, par les tableaux globaux ($_POST['MaVariable'] etc...) et l'accès direct par $nomvariable (possible parce que le paramètre Register Global est activé). Il est plutôt recommandé effectivement de passer par les tableaux $_POST , $_GET ou plus universel $_REQUEST
Sur cette grande victoire je te souhaite une bonne soirée !
-
- Messages : 108
- Enregistré le : jeu. oct. 31, 2002 11:51 am
- Localisation : Breizh
- Contact :
Bonjour Côme
Pour le html, je vais le soigner, en fait ce sont des pages de tests
J'ai réussi a transférer ma base de données, fait des "class" et maintenant mon formulaire.
Je vais faire un switch et étudier les points dont tu me parles.
En fait une fois que j'ai règlé le pb du formulaire j'ai déjà fait un grand pas
Philippe
Pour le html, je vais le soigner, en fait ce sont des pages de tests
J'ai réussi a transférer ma base de données, fait des "class" et maintenant mon formulaire.
Je vais faire un switch et étudier les points dont tu me parles.
En fait une fois que j'ai règlé le pb du formulaire j'ai déjà fait un grand pas
Philippe