|
|
|
|
Posté par
jaybolo, le mercredi 21 avril 2004 à 17:30:58
<?php
DEFINE ('DB_USER', 'root'); //définition des paramètres sous forme de constantes
DEFINE ('DB_PASSWORD' , '');
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_NAME' , 'togoweb');
//Ouvrir la connection et sélectionner la base de données
$dbc = @mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) or die ('Connexion à MySQL impossible :
'.mysql_error(). '<br>');
mysql_select_db (DB_NAME) OR die ('Sélection de la base de données impossible: '.mysql_error(). '<br>');
?>
<br>
<form name="recherche" action="recherchenico.php" method="POST">
<table width="400" border="0" style="border : 1px solid #000000">
<tr>
<td><span class="style2">Votre thème</span></td>
<td>
<select name="theme" onChange="document.recherche.submit();">
<? $sql = "select * from themes";
$req = mysql_query($sql);
while ($res = mysql_fetch_array($req)) { ?>
<option value="<? echo $res["id"];?>"><? echo $res["nom"];?></option>
<? }?>
</select></td>
</tr>
<? if (!empty($_POST["theme"])) { ?>
<tr>
<td class="style2">Votre rubrique</td>
<td>
<select name="rubriques" onChange="document.recherche.submit();">
<? $sql = "select * from rubriques where fk_themes=".$_POST["theme"];
$req = mysql_query($sql);
while ($res = mysql_fetch_array($req)) { ?>
<option value="<? echo $res["id"];?>"><? echo $res["nom"];?></option>
<? } ?>
</select></td>
</tr>
<? } ?>
<tr><td> </td><td><input type="submit" name="submit" value="Lancer la recherche"/></td></tr>
</table>
</form>
Salut!
Ta question est un peu compliquée "ça ne marche pas" soit :-). Peux-tu expliquer, quels sont les messages d'erreur, qu'est ce qui devrait se produire et qui ne se produit pas? Je subodore que tu veux changer les options du menu en fonction du premier choix? Si j'ai bien compris, le mieux ce serait de reposter ta question, détaillée, avec javascript dans le sujet, plutôt que PHP qui ne permet pas, je crois, ce genre de réponse dynamique sans aller-retour avec le serveur. Eric. |
salut merci de m'avoir répondu.
comme je le disias , je suis débutant. mon premier select doit aller chercher tous les themes répertoriés dans ma base En fonction du thème associé, le deuxième select doit aller chercher dans ma base les rubriques associés au thème choisi dans le premier select. Sa ne marche pas:: sur ma page je vois mon menu select mais quand je clique dessus , c'est vide voilà si celka peut t'aider pour m'aider à voir ce qui ne marche pas . jaybolo toujours play |
Les deux select sont vides ou le 1er s'affiche correctement ? |
A première vue, ta syntaxe de deuxième requête risque de poser problème:
$sql = "select * from rubriques where fk_themes=".$_POST["theme"]; Notamment avec tes guillemets. Il en manque et tu déclare ta clef avec des guillemets doubles. Dans les requête le mieux est déja d'éviter d'indenter au maximum les guillemets (quand je fais ça, je me perds tout le temps), et surtout dans les clefs d'éléments array. Je te conseillerais de simplifier par :
$theme=$_POST['theme']; //simple guillemets pour la clef
$query="SELECT * FROM rubriques WHERE fk_themes='$theme'";//simple guillemets pour encadrer la variable, double pour fermer la déclaration
$sql=mysql_query("$query",$dbc);
if (!$sql)
echo "erreur : ".mysql_errno()." : ".mysql_error()."<br/>";
L'affichage des erreurs éventuelles ne mange pas de pain, peut te renseigner quand un truc ne fonctionne pas et peut être supprimé si tu le désires quand ton script sera validé. Eric.
|
fo pas mettre de point virgule a la fin d'une requete en php
ca doit etre pour ca que ca marche pas
|
Il ne "faut" pas gérer les erreurs, mais quand ça ne marche pas voires'afficher la raison, même si elle est cryptique peut te mettre sur la voie des corrections.
De la même façon mysql_query utilise la connection courante par défaut, mais normalement tu la précises en second argument ($dbc). Ca n'est pas obligatoire, ça augmente la lisibilité quand il y a des choses qui ne marchent pas. L'essentiel de ce que je te suggère c'est d'augmenter la lisibilité des opérations pour essayer de voir à quel moment il y a un problème. Il me semble également que tu compliques beaucoup ton code en ouvrant et fermant sans cesse des portions de scripts. Il serait beaucoup plus lisible d'imbriquer plus d'HTML dans ton PHP avec des echos, et de supprimer toutes ces balises <?...?>, on ne sait pas trop où on en est, surtout lorsqu'il s'agit de rajouter un }. Enfin c'est un point de vue d'amateur non programmeur, pour moi c'est vraiment difficile à lire, je suppose que les pros sont plus à l'aise. Eric.
|
Oh ben oui je suis bien d'accord, mais pour la mise au point, j'ai du mal à m'y retrouver. Quitte à après voir où on peut alléger la charge du serveur.
Quand aux messages d'erreur qui permettent de "rapidement" trouver où ça cloche, j'ai des fois du mal :-). Récemment je suis resté 2 jours sur un 1064 : erreur de syntaxe MySql, en étant ben malheureux, parce que franchement ma syntaxe, je voyais pas où était le problème. Motif, le nom du champ (table créée avec PHPMyAdmin) était trop long ('références', soit 10 caractères)... M'a fallu un moment pour trouver. Le pire c'est que dépité je copiais collais des requêtes directes depuis PHPMyAdmin pour essayer de comparer avec ce qui clochait, mais dans mon script ça ne marchait jamais. Si quelqu'un peut m'expliquer ce que j'ai mal configuré... Enfin, bon avec des champs plus courts, ça marche... Eric. |
tu évite les accents dans ta base my SQL pour les noms de champs tu verra que ça ira mieux |
| 20/02 23h23 | Récupérer le style Windows XP | Windows XP |
| 07/03 18h51 | Ajouter un raccourci dans le menu contextuel du poste de travail | Windows |
| 15/07 18h13 | Afficher la commande "Exécuter" du menu Démarrer | Windows Vista |
| 05/01 19h00 | [Spywares] Méthodes de désinfection | Spywares |
| 03/12 23h39 | Télécharger le contenu d'une page web distante | Langage C |
| 12/01 15h33 | MENU DEROULANT php URGENT | 14 |
| 03/05 21h28 | Menu déroulant php, help!!! | 1 |
| 13/04 10h01 | Menu déroulant PHP/MYSQL | 3 |
| 07/04 11h46 | Pb récup donnée d'un menu déroulant PHP | 3 |
| 03/04 11h31 | Affichage menu deroulant PHP decalé sous IE | 1 |
![]() | Daemon Tools Lite - Daemon Tools est un émulateur de lecteur CD/DVD, c'est-à-dire un outil capable de créer un lecteur CD ou un lecteur DVD... | Catégorie: Gravure Licence: Freeware/gratuit |
![]() | HP USB Disk Storage Format Tool - HP USB Disk Storage Format Tool est un petit utilitaire permettant de formater une clé USB ou un lecteur MP4 . Il permet... | Catégorie: Formatage/Partitionnement Licence: Freeware/gratuit |
![]() | PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de... | Catégorie: PHP Licence: Freeware/gratuit |
![]() | WAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de... | Catégorie: Serveurs Licence: Freeware/gratuit |