Je ne comprend pas la requête

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Je ne comprend pas la requête

Merci

par stefane321 » 11 janv. 2006, 22:30

Merci, enfin sa fonctionne!

par Truc » 11 janv. 2006, 20:29

mysql_num_rows() attend une resource et non un string contenant la requete, tu as oublié l'étape d'exécution de la requete => mysql_query()

Ça ne fonctionne toujours pas

par stefane321 » 11 janv. 2006, 16:36

Ça ne fonctionne toujours pas.

J'ai bien regardé la page contenant le code php et les requête mysql et je me demande si je ne devrais pas mettre une condition sur :

Code : Tout sélectionner

/* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */ if(isset($idr) && $idr != -1) { // Cération de la requête pour avoir les départements de cette région $sql2 = "SELECT `id`, `nom` FROM `sous_categories_formations` WHERE `categorie_id` = ". $idr ." ORDER BY `id`;"; $nbsc = mysql_num_rows($sql2); if($connexion != false) { $rech_sous_categorie = mysql_query($sql2, $connexion); // Un petit compteur pour les départements $nd = 0; // On crée deux tableaux pour les numéros et les noms des départements $code_sous_categorie = array(); $nom_sous_categorie = array(); // On va mettre les numéros et noms des départements dans les deux tableaux while($ligne_sous_categorie = mysql_fetch_assoc($rech_sous_categorie)) { array_push($code_sous_categorie, $ligne_sous_categorie['id']); array_push($nom_sous_categorie, $ligne_sous_categorie['nom']); $nd++; } //Maintenant on peut construire la liste déroulante echo "<tr>"; echo "<td><B>Sous-cat&eacute;gorie:</B></td>\n"; echo "<td class=\"etoile\">\n"; echo "<select name=\"sous_categorie_id\" id=\"sous_categorie_id\">\n"; for($d = 0; $d<$nd; $d++) { echo "<option value=\"".($code_sous_categorie[$d])."\" ".((isset($sous_categorie_selectionne) && $sous_categorie_selectionne == $code_sous_categorie[$d])?" selected=\"selected\"":null).">\n"; echo($nom_sous_categorie[$d]." (". $code_sous_categorie[$d] .")"); echo "</option>\n"; } echo "</select>\n"; } // Un petit coup de balai mysql_free_result($rech_sous_categorie); }
Comme tu peux voir sous la requête mysql j'ai mis

Code : Tout sélectionner

$nbsc = mysql_num_rows($sql2);
Je me servirais de ce résultat pour faire exécuter le code php si $nbsc est supérieur ou égale à 1.

Mais j'obtien l'erreur suivante:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\communauweb\web\liens_educatifs\test.php on line 67

par Truc » 09 janv. 2006, 23:38

rajoute un else pour vider le contenu du div:
if(cpt==1) // affichage de la liste que s'il y a au moins un élément
    document.getElementById("blocDepartements").innerHTML = form_d;
else
    document.getElementById("blocDepartements").innerHTML = "";

Merci beaucoup mais ....

par stefane321 » 09 janv. 2006, 23:15

Merci,

Mais sa n'a fait aucun changement.

Si je regarde dans le code source pour la seconde liste déroulant, j'ai toujours

Code : Tout sélectionner

<select name="sous_categorie_id" id="sous_categorie_id"> </select>
qui reste affiché.

Merci en espérant que tu pourra m'aider à nouveau!

par Truc » 09 janv. 2006, 21:30

le plus simple est de ne pas afficher la liste s'il n'y a pas d'options (logique 8) )

suffit de verifier si au moins 1 élément (option) est présent dans la liste avec un compteur(cpt) , dans le fichier changeDept.js:
/* On crée la fonction qui va construire la seconde liste déroulante */
function changeDept(tab,idr)
{
    var cpt=0;
    if(idr != "vide")
    {
    /* On compte les départements de cette région */
    var nbd = tab[idr][1].length;
    var form_d  = '<select name="departement" id="departement">';
    for(var j = 0;  j < nbd; j++)
    {
        form_d += '  <option value="'+ tab[idr][1][j] +'">'+ tab[idr][2][j] +" ("+ tab[idr][1][j] +')<\/option>';
        cpt=1; // ici au moins un élément
    }
    form_d += '<\/select>';
    }
    else
    {
        form_d = "";
    }
    if(cpt==1) // affichage de la liste que s'il y a au moins un élément
       document.getElementById("blocDepartements").innerHTML = form_d;
}

Salut Cyrano

par stefane321 » 09 janv. 2006, 20:39

Oui, j'ai regardé ce tuto.

En fait c'est ce tuto que j'ai utiliser.

Pour que tu comprenne bien mon problème visite s.v.p.

http://www.lacstjeanouest.qc.ca/formati ... s/test.php

Tu verra que j'ai des catégorie qui ont des sous-catégorie et d'autres non.

Le tuto de la façon dont il est fait il fait afficher une seconde liste déroulante vide lorsque qu'il n'y a pas de sous-catégorie.

J'aimerais qu'il n'y ai pas de seconde liste déroulante vide lorsque qu'il n'y a pas de sous-catégorie.

Merci!

par Cyrano » 05 janv. 2006, 21:52

Tu as regardé le tuto sur les listes déroulantes dynamiques dans la FAQ du forum ?

J'ai besoin d'aide

par stefane321 » 05 janv. 2006, 21:35

Bon, me voulois de retour au boulot après une belle période des fête.

Finalement, je n'y arrive pas seul.

J'ai besoin de votre aide pour pour que la seconde liste déroulante n'aparaisse seulement lorsque qu'il y a des sous-catégories attaché à la catégorie.

Merci!

Re: OK!

par Cyrano » 21 déc. 2005, 18:51

Si je buche trop ...
Sous-titrage pour les non-québecois : "Si j'ai trop de difficultés" ;)

OK!

par stefane321 » 21 déc. 2005, 18:46

Bon alors merci beaucoup de ton aide.

Je vais prendre la journée pour essayer d'y arriver seul.

Si je buche trop je reviendrai demander de l'aide.

Bonne Journée!

par Cyrano » 21 déc. 2005, 18:38

Bon alors ne mélangeons pas : tu as d'une part les données récupérées de la base;
D'autre part, tu as la construction de ta liste déroulante.

À toi d'effectuer les tests sur le contenu présent ou non afin d'ajouter (ou non) une balise <option> : PHP peut très bien faire ça, JavaScript aussi pour la génération dynamique à la volé au changement dans la première liste

Le JAVASCRIPT

par stefane321 » 21 déc. 2005, 18:30

La requête que tu m'as faites affiche en effet les sous-catégories quand il y en a pas et les catégorie qui n'ont pas de sous-catégorie.

Je crois que ce que je demande pour finir est en rapport au javascript.

Je je sélectionne une catégorie qui n'a pas de sous-catégorie j'ai une liste déroulante vide qui apparait et j'aimerais qu'elle n'apparaisse pas s'il n'y a pas de sous-catégorie.

Merci!

par Cyrano » 21 déc. 2005, 18:20

La précédente requête faisait ça et n'affichait que pour les catégories ayant des sous-catégories... ce me semble :-k

Merci sa fonctionne

par stefane321 » 21 déc. 2005, 18:11

Merci sa fonctionne.

Maintenant, est-il possible que plutôt que d'afficher une liste de sélection "NULL" qu'il n'y ai tout simplement pas de liste de sélection qui apparaisse quand il n'y a pas de sous-categorie.

TK merci infiniment!!