IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

[SGBD] Probleme menu css /php / mysql / javascript


Sujet :

Administration MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut [SGBD] Probleme menu css /php / mysql / javascript
    Bonjour voila je souhaite réaliser 1 menu css à l'aide de jeux d'enregistrements.

    je veux simplement créer des grandes rubriques à partir d'enregistrement d'une table, et les sous rubriques a partir d'une autres, le tout dans un menu css qui me semble le mieux adapté ici .

    Cepandant j'ai une fatal erreur qui provient de ma boucle "while" grr


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Maximum execution time of 30 seconds exceeded in C:wampwwwrbdctestmenu3.php on line 31


    voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <dl id="menu1"> 
    <?php 
    include ("mysqlconnect.php"); 
    $comptcat=1; 
    $comptsouscat=1; 
    //requete grandes rubriques 
    $sql = "SELECT applicationModM, nomProjet 
    FROM modulemis 
    WHERE nomProjet = 'MIS'"; 
    $requete = mysql_query($sql); 
    $nombrelignessql1=mysql_num_rows($requete); 
     
    while( $comptcat <= $nombrelignessql1)?> 
        { 
        <?php $comptcat++; ?> 
                <dt onclick="javascript:montre('smenu1');">Menu 1</a></dt> 
            <dd id="smenu1"> 
                    <ul> 
                    <?php 
                    //requete sous rubrique => enregistrements 
                    $sql2 = "SELECT numFiche, nomFiche 
                    FROM fiches 
                    WHERE enseigne ='$result->applicationModM.'"; 
                    $requete2 = mysql_query($sql2); 
                    $nombrelignessql2=mysql_num_rows($requete2); 
                    while( $comptsouscat <= $nombrelignessql2) ?> 
                        { 
                        <?php $comptsouscat++; ?> 
                        <li><a href="#">Sous-Menu 1.1</a></li> 
                        } 
                    </ul> 
                </dd> 
        }             
    </dl>


    j'effectue donc ma 1ere requete permettant d'extraire les catégories d'une table 'applicationModM', je compte le nombre d'enregistrement afin de fixer un nombre de catégorie de menu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nombrelignessql1=mysql_num_rows($requete);

    et donc tant que le nombre de rubrique cf: $comptcat n'atteint pas le nombre d'enregistrement, les catégories s'ajoute:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while( $comptcat <= $nombrelignessql1)


    La fonction:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    window.onload=montre; 
    function montre(id) { 
    var d = document.getElementById(id); 
        for (var i = 1; i<=20; i++) { 
            if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';} 
        } 
    if (d) {d.style.display='block';} 
    }
    Donc voila , je vois pas si ma boucle est bonne a mon avis non vu l'erreur, comment boucler et
    comment incrémenter correctement dans la boucle les lignes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <dt onclick="javascript:montre('smenu1');">Menu 1</a></dt> 
            <dd id="smenu1">

    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li><a href="#">Sous-Menu 1.1</a></li>
    merci aux courageux

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut
    j'ai modifié mon code:
    voici la nouvelle erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\rbdc\testmenu3.php on line 41
    je suis perdu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <body>
    <dl id="menu1">
    <?php
    include ("mysqlconnect.php");
    $comptcat=1;
    $comptsouscat=1;
    //requete grandes rubriques
    $sql = "SELECT applicationModM, nomProjet 
    FROM modulemis 
    WHERE nomProjet = 'MIS'";
    $requete = mysql_query($sql);
    $nombrelignessql1=mysql_num_rows($requete);
     
    while( $comptcat <= $nombrelignessql1)?>
    	{
    	<?php $comptcat++; ?>
    			<dt onclick="javascript:montre('smenu1');">Menu 1</a></dt>
    		<dd id="smenu1">
    				<ul>
    				<?php 
    				//requete sous rubrique => enregistrements
    				$sql2 = "SELECT numFiche, nomFiche
    				FROM fiches
    				WHERE enseigne = "$requete['applicationModR']"";
    				$requete2 = mysql_query($sql2);
    				$nombrelignessql2=mysql_num_rows($requete2);
    				while( $comptsouscat <= $nombrelignessql2) ?>
    					{
    					<?php $comptsouscat++; ?>
    					<li><a href="#">'$requete2['nomFiche']'</a></li>
    					}
    				</ul>
    			</dd>
    	}			
    </dl>
    ligne 41 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE enseigne = "$requete['applicationModR']"";

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Points : 131
    Points
    131
    Par défaut
    Il y a surement plus simple !
    Pourquoi ne pas passer par une seule requete avec une jointure propre ?

    Dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    while( $comptcat <= $nombrelignessql1)?> // <= Pourquoi fermer ?
       {                                                         // <= l'accolade n'est pas dans le PHP
       <?php $comptcat++; ?>                       // <= Pourquoi ouvrir ?
             <dt onclick="javascript:montre('smenu1');">Menu 1</a></dt> 
          <dd id="smenu1"> 
                <ul> 
                <?php 
                //requete sous rubrique => enregistrements 
                $sql2 = "SELECT numFiche, nomFiche 
                FROM fiches 
                WHERE enseigne = "$requete['applicationModR']""; //<= 3 " pas bon ! les " vont Toujours par paire !!
                $requete2 = mysql_query($sql2);

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut
    pour répondre a tout les pourquoi, tout simplement parce que je suis 1 boulet en php . j'vais étudier tout ca merci

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut
    Je pense qu'il faut bien 2 requetes, car en faite meme les titres des catégories, doivent etre dynamique, car on aura la posibilité dans rajouté donc par la suite directement avec phpmyadmin 8) .

    voici mon code modifié donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <dl id="menu1">
    <?php
    include ("mysqlconnect.php");
    $comptcat=1;
    $comptsouscat=1;
    //requete grandes rubriques
    $sql = "SELECT applicationModM, nomProjet 
    FROM modulemis 
    WHERE nomProjet = 'MIS'";
    $requete = mysql_query($sql);
    $nombrelignessql1=mysql_num_rows($requete);
     
    while( $comptcat <= $nombrelignessql1)
    	{
    	$comptcat++;
    			<dt onclick="javascript:montre('smenu1');">Menu 1</a></dt>
    		<dd id="smenu1">
    				<ul>
    				//requete sous rubrique => enregistrements
    				$sql2 = "SELECT numFiche, nomFiche
    				FROM fiches
    				WHERE enseigne = "$requete['applicationModR']"";
    				$requete2 = mysql_query($sql2);
    				$nombrelignessql2=mysql_num_rows($requete2);
    				while( $comptsouscat <= $nombrelignessql2) 
    					{
    					 $comptsouscat++;
    					<li><a href="#">'$requete2['nomFiche']'</a></li>
    					} 
    				</ul>
    			</dd>
    	}
    ?>	
    </dl>
    pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "$requete['applicationModR']"";
    je suis d'accord ca fonctionne par paire, mais la derniere referme la requete " ouvert en début de requete.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Points : 131
    Points
    131
    Par défaut
    ba non .. la t'as pas teste le code que tu nous montre ca peux pas marcher ...

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Points : 131
    Points
    131
    Par défaut
    Pour le "melange" HTML et PHP .. va falloir que tu comprenne comment ca marche ..
    Il faut pas enlever toutes les balises php ! Ton code HTML n'est pas du php !

    Boulet !!.. desole .. OK pour le nombre de " ! ... c'est que c'est pas bien indenté ... j'avais mal lu !

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut
    j'ai donc opter pour l'echo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <body>
    <dl id="menu1">
    <?php
    include ("mysqlconnect.php");
    $comptcat=1;
    $comptsouscat=1;
    //requete grandes rubriques
    $sql = "SELECT applicationModM, nomProjet 
    FROM modulemis 
    WHERE nomProjet = 'MIS'";
    $requete = mysql_query($sql);
    $nombrelignessql1=mysql_num_rows($requete);
     
    while( $comptcat <= $nombrelignessql1)
    	{
    	$comptcat++;
    			echo("<dt onclick="javascript:montre('smenu1');">Menu 1</dt>\n");
    			echo("<dd id="smenu1">\n");
    			echo("<ul>\n");
    			//requete sous rubrique => enregistrements
    			$sql2 = 
    			"SELECT numFiche, nomFiche
    			FROM fiches
    			WHERE enseigne = "$requete['applicationModR']"";
    			$requete2 = mysql_query($sql2);
    			$nombrelignessql2=mysql_num_rows($requete2);
    			while( $comptsouscat <= $nombrelignessql2) 
    				{
    				$comptsouscat++;
    				echo("<li><a href="#">'$requete2['nomFiche']'</a></li>\n");
    				} 
    			echo("</ul>\n");
    			echo("</dd>\n");
    	}
    ?>	
    </dl>
    seulement j'ai l'erreur suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected T_STRING in C:\wamp\www\rbdc\testmenu3.php on line 34
    qui correspond au 1er écho

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo("<dt onclick="javascript:montre('smenu1');">Menu 1</dt>\n");

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Points : 131
    Points
    131
    Par défaut
    Erreur qui arrive tout le temps..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo("<dt onclick=\"javascript:montre('smenu1');\">Menu 1</dt>\n");
    Il faut proteger les " qui seront utilisees par le HTML pour lancer ta fonction javascript.
    Cela ce fait avec \
    Sinon on retourne dans le cycle ouvrir/fermer .. ouvrir/ fermer..

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Points : 131
    Points
    131
    Par défaut
    Ce code est maintenant beaucoup plus propre et clair 8)

    Tu devrais remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    .
    ..
    ...
    $sql2 = "SELECT numFiche, nomFiche 
             FROM fiches 
             WHERE enseigne = "$requete['applicationModR']""; 
    ...
    ..
    .
    Par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    .
    ..
    ...
    $sql2 = "SELECT numFiche, nomFiche FROM fiches";
    $sql2 .= " WHERE enseigne = ". $requete['applicationModR']. " "; 
    ...
    ..
    .
    C'est plus lisible
    Remarque : J'ai rajoute un point avant et apres $requete['applicationModR'] pour concatener la chaine de caratere.
    Ce que fait aussi .=

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut
    Erreur sur la ligne du dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    while( $comptcat <= $nombrelignessql1)
    	{
    	$comptcat++;
    			echo("<dt onclick=\"javascript:montre('smenu1');\">Menu 1</dt>; 
    			<dd id="smenu1">;
    			<ul>\n");
    			//requete sous rubrique => enregistrements
    			$sql2 = 
    			"SELECT numFiche, nomFiche
    			FROM fiches
    			WHERE enseigne = "$requete['applicationModR']"";
    			$requete2 = mysql_query($sql2);
    			$nombrelignessql2=mysql_num_rows($requete2);
    			while( $comptsouscat <= $nombrelignessql2) 
    				{
    				$comptsouscat++;
    				echo("<li><a href="#">'$requete2['nomFiche']'</a></li>\n");
    				} 
    			</ul>;
    			</dd>\n");
    	}
    ?>	
    </dl>
    c bien comme ca pour pas ouvrir fermer

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Points : 131
    Points
    131
    Par défaut
    Je vais pas le faire pour toi ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    while( $comptcat <= $nombrelignessql1) 
       { 
       $comptcat++; 
           echo("<dt onclick=\"javascript:montre('smenu1');\">Menu 1</dt>"); 
           echo("<dd id="smenu1">"); 
           echo("<ul><br>"); 
             //requete sous rubrique => enregistrements 
             $sql2 ="SELECT numFiche, nomFiche ";
             $sql2 .="FROM fiches ";
             $sql2 .="WHERE enseigne = '".$requete['applicationModR']."'"; 
             $requete2 = mysql_query($sql2); 
             $nombrelignessql2=mysql_num_rows($requete2); 
             while( $comptsouscat <= $nombrelignessql2) 
                { 
                $comptsouscat++; 
                echo("<li><a href=\"#\">".$requete2['nomFiche']."</a></li><br>"); 
                } 
             echo("</ul></dd><br></dl>"); 
       } 
    ?>
    Bha si .. apres s'il y a des erreurs... il faut que tu y arrrives seul ...

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Points : 131
    Points
    131
    Par défaut
    AARRGG... j'ai oublie celui la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo("<dd id=\"smenu1\">");
    Bon courage pour la suite

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Salut, je ne voudrais pas dévier du sujet, mais je reprend cette phrase :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Je pense qu'il faut bien 2 requetes, car en faite meme les titres des catégories, doivent etre dynamique, car on aura la posibilité dans rajouté donc par la suite directement avec phpmyadmin
    J'avais eu la même chose et j'avais créé un menu dynamique, connecté à la base de donnée donc. Je pouvais y ajouter des catégories directement depuis mon admin perso. J'avais fait cela parce que cela me semblait plus efficace, plus "pro", en évitant notamment d'aller trifouiller le code.

    Mais en pratique, des catégories j'en ajoutais une par semaine.
    Alors au lieu d'avoir un menu statique hyper rapide à charger, j'avais un gros menu qui mangeait beaucoup de ressource pour le même résultat offert au visiteur.
    Maintenant je préfère passer 2 min dans le code et alléger le chargement des pages.

    Voilà, c'était la pause méditation spirituelle.
    C'est pas parce que j'ai tort que vous avez raison.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Menu hierarchique php mysql javascript
    Par ideal23 dans le forum Langage
    Réponses: 14
    Dernier message: 21/11/2011, 11h01
  2. [Mission/Télétravail] [TOULOUSE] Création de Sites Vitrines, Développeur HTML/CSS, PHP/MySQL, JavaScript, Flex
    Par arnaud.tlse dans le forum Demandes
    Réponses: 0
    Dernier message: 05/08/2009, 13h39
  3. [DOM] menu dynamique php mysql javascript
    Par maxland dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/03/2009, 14h02
  4. [SGBD] [Problème insertion variable php/mysql]
    Par vincedjs dans le forum Installation
    Réponses: 20
    Dernier message: 08/02/2006, 16h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo