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

Langage PHP Discussion :

[PHP-JS] besoin d'aide, manque d'experience [Fait]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut [PHP-JS] besoin d'aide, manque d'experience
    bonjour.

    voila je suis entrain de developper un site qui servira a ma société d'avoir un intranet.

    il m'a été demandé de faire quelque chose de tres simple et evolutif.

    j'utilise un Bd mysql

    a partir d'une page admin je vois toutes les rubriques ainsi que les menus.

    j'aimerai faire quelque chose mais je ne sais pas comment.

    j'aimerai pouvoir en cliquant sur un bouton changer l'ordre des pages.

    avoir un menu qui resemble a ca



    mais comment coder les fleche, afin que des que je clique ma bd est modifier

    mon code pour generer les rubrique et page(sous rubrique)

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <?
                $sql = "SELECT Idx_Rubrique FROM Rubrique ORDER BY Idx_Rubrique DESC LIMIT 1";                                                           
                $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());                
                $data = mysql_fetch_assoc($req);
                $Nb_Enreg_Rubrique=$data['Idx_Rubrique'];
     
                echo('<table>');
     
                for ($i=1; $i<=$Nb_Enreg_Rubrique; $i++)
                {
                    $sql = "select * from Rubrique where Idx_Rubrique='".$i."'";                                               
                    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());        
                    $data = mysql_fetch_assoc($req);
                    $IdxRubrique = $data['Idx_Rubrique'];
                    $NbrPageRubrique =  $data['Nbr_Page_Rubrique'];
     
                    echo('<tr><td>'.$i.'</td><td></td><td>'.$data['Nom_Rubrique'].'</td><td></td><td></td><td></td></tr>');
     
                    for($j=1; $j<=$NbrPageRubrique ; $j++)    
                    {        
                        $sql = "select * from Page where Rubrique_Idx_Rubrique='".$IdxRubrique."'&& Ordre_Page='".$j."'";                  
                        $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());    
                        $data = mysql_fetch_assoc($req);    
                        // permet l'affichage des rubriques et pages depuis la base .                        
                        $null=('<tr><td></td><td>'.$data['Ordre_Page'].'</td><td>'.$data['Nom_Page'].'</td>');    
     
                            if($NbrPageRubrique>1)
                                {
                                if($data['Ordre_Page']>1 )
                                    {
                                    if($data['Ordre_Page']<$NbrPageRubrique) // si >1 && < maxi
                                        {$null=($null.'<td></td><td>_up_</td><td>down</td></tr>');}
                                    else
                                        {$null=($null.'<td></td><td>_up_</td><td>____</td></tr>');}
                                    }    
                                else
                                    {
                                    if($data['Ordre_Page']=1) //si =1
                                        {$null=($null.'<td></td><td>____</td><td>down</td></tr>');}
                                    }
                                }    
                                else
                                {$null=($null.'<td></td><td>____</td><td>____</td></tr>');}
     
                        echo($null);
                    }
                }
                echo('</table>');    
    ?>

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut !

    Il s'agit d'un problème HTML et Javascript, le plus simple je pense, est de passer par AJAX (tu as un tuto dans la section JavaScript)

    ça te permettra de faire la mise à jour de la base de donnée et du code HTML sans recharger toute la page

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    alors je vais explorer l'ajax..

  4. #4
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    pour découvrir AJAX, je peux t'orienter vers ces deux tutos :

    Initiation, pour bien débuter


    plus compliqué, une auto complétion

    Courage à toi, c'est pas si compliqué que ca en a l'air

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    merci a vous,

    je trouve enorme le partage de connaissance sur ce forum, j'adore j'adere lol

    sans dec merki

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Pourquoi javascript ?
    Pas besoin de javascript pour gérer une action avec un lien sur une image !

    A part besoin spécifique, javascript n'est là que pour améliorer le confort de l'utilisateur. Donc si on arrive pas à faire un developpement sans javascript inutile de rajouter ajax... C'est mettre la charrue devant les boeufs.

    Pour répondre plus simplement à la question :
    Tu as deux actions : up et down
    Donc il suffit de faire deux liens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="?action=up">[up]</a>
    <a href="?action=down">[down]</a>
    du coup le script qui reçoit l'action saura si l'utilisateur a cliqué sur up ou down (à toi de remplacer le texte par l'icone qui va bien)
    Le problème suivant va être de détecter quelle page on veux monter ou descendre... Il suffit alors de rajouter l'id dans le lien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo '<a href="?action=up&amp;id='. $data['Idx_Page'] .'">[up]</a>
    echo '<a href="?action=down&amp;id='. $data['Idx_Page'] .'">[down]</a>
    Voilà. Il suffit ensuite de faire la requête sql qui va bien en fonction de $_GET['action'] et $_GET['id'] pour changer l'ordre des pages, puis de ré-afficher la page...

    Pas de javascript donc on gagne sur deux tableaux :
    - facilité/rapidité de développement (un seul langage, une seule plateforme à maitriser)
    - pas les inconvénients de javascript (activé/désactivé, supporté/non-supporté, différence entre navigateurs, debuggage difficile sur certains, ...)

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    bon je vais tester ta solution Mr N. et si j'y arrive pas je regarderai l'autre

    la fonction sql que tu me dis de créer je dois la mettre ou pour qu'elle soit appellée?

  8. #8
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    On parle de requête et pas de fonctions en sql
    Tu la mets au début de ton script. Regarde les deux premières lignes du bout de code que tu as posté...
    Soit tu as pondu ce code et donc tu sais répondre à ta question, soit tu a repris un code existant et alors il te faut au préalable quelques notions de php/mysql =>
    http://php.developpez.com/cours/

  9. #9
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par budylove
    bon je vais tester ta solution Mr N. et si j'y arrive pas je regarderai l'autre
    Attention, ce n'est pas "ma" solution et ce n'est pas une solution alternative !
    Tu peux très bien faire du javascript, mais il faut déjà que ca marche sans. Javascript ou pas il te faudra de toutes façons faire des requêtes sql. Quand tu construit une maison, tu ne commence pas par le toit, tu poses les fondations puis les murs...

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    non c'est bien mon code et avec un peu de reflexion c'etait tout con.

    mais j'ai un probleme :

    lorsque je clique par exemple sur "up" il doit changer l'ordre des pages.

    donc je lui dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql2 = "UPDATE page SET Ordre_Page ='".$actuel."' WHERE Rubrique_Idx_Rubrique='".$data['Rubrique_Idx_Rubrique']."' && Ordre_Page =".$precedent.""; 
        $req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
        $sql1 = "UPDATE page SET Ordre_Page ='".$precedent."' WHERE Rubrique_Idx_Rubrique='".$data['Rubrique_Idx_Rubrique']."' && Ordre_Page =".$actuel.""; 
        $req1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    afin qu'il modifit le numero de la page à bouger et de celle qui prend ça place, mais quand j'ecris ce code, il ne m'éxecute pas la premiere requette, pourquoi ?

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    :up:

  12. #12
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Qu'est ce qui te dit qu'elle n'est pas executée ?
    Est ce que tu l'as affichée à l'écran pour pouvoir la passer à PhpMyAdmin ou directement à MySQL pour voir si elle fait bien ce que tu veux ?

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    bon j'ai trouvé la source de mon probleme, c'etait tous con. j'ai voulus simplifié ma requette pour tester et c'est ca qui m'a pas aidé lol

    par contre j'ai deux question :

    1) j'ai fait comme ta solution le proposait de mettre un lien avec une image.

    donc quand je veux changer une page de place voila mon lien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://127.0.0.1/Intranet/index2.php?page=Administration/Administration&Action=down&IdPage=12
    par contre quand je charge la page voila mon lien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://127.0.0.1/Intranet/index2.php?page=Administration/Administration
    Donc les variables action et id n'ont pas de valeur.
    Mais dans mon code la ou je gere les modifications apporté j'ai ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if ($_GET['Action']!='')
    {
        $Action=$_GET['Action']; 
        $IdxPage=$_GET['IdPage']; 
     
        $sql = "select * from Page where Idx_Page='".($IdxPage)."'";                  
        $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());    
        $data = mysql_fetch_assoc($req);
     
        $precedent = ($data['Ordre_Page'] - 1);
        $actuel = $data['Ordre_Page'];
        $suivant = ($data['Ordre_Page'] + 1);
        echo($suivant.' '.$Action.'<br/>');
    }
    et donc quand je charge la page sans demander de modif j'ai un message d'erreure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Notice:  Undefined index:  Action in c:\program files\easyphp1-8\www\intranet\Pages\Administration\Administration.php on line 55
    normale puisque il n'est pas cliqué et reconnus, mais comment l'enlever, je vais pas pouvoir laisser ca sur ma page?



    2) comment recharger la page, pour que l'utilisateur puisse voir ses modif sans la lui faire recharger lui meme ?

  14. #14
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    SAlut !

    pour le premier message d'erreur, change ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($_GET['Action']!='')
    en ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_GET['Action']) && $_GET['Action']!='')
    pour ce qui est de la seconde question, il y a 2 solutions :

    la première (la mieux) rafraichissement totalement automatique par meta html :
    dans le <head> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Refresh" content="10; URL=http://127.0.0.1/Intranet/index2.php?page=Administration/Administration">
    le '10' correspond au temps en seconde entre les refresh

    second : la même chose via JavaScript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout(10000, 'window.location.href="http://127.0.0.1/Intranet/index2.php?page=Administration/Administration"');

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    merci pour la reponse a la question N°1 impeccable!

    par contre pour la deuxieme, entant donnée que ma page administration n'est qu'un include de ma page index

    index
    __________
    __________ <--head
    | | |
    | | |
    | | | <---mes includes de fichier( ex : administration )
    | | |
    | | |

    ^
    |_________ mes menus

    comment mettre les metta tag ?
    deplus apres il auront un utilitaire dont j'ai plus le nmo leurs permettant de saisir du text. si je rafraichis toutes les 10 sec ca va peut etre pas le faire

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    j'ai tester de mettre dans les meta ca marche bien mais n'y a t'il pas une solution qui ferrait que lorsque l'utilisateur clique sur le lien il recharge de suite la page avec les modifs prisent en comptes

  17. #17
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Il suffit que le lien pointe sur la page qui affiche les infos...

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    la page sur laquelle je modifie et que j'affiche est la meme

    mon lien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://127.0.0.1/Intranet/index2.php?page=Administration/Administration&Action=up&IdPage=12
    hors je repointe bien sur la bonne page mais elle n'est pas rafraichit je dois le faire manuellement

  19. #19
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Dans ce cas, c'est parce que tu extrais les données avant de les mettre à jour... tu peux toujours faire le traitement dans une autre page qui redirigerait ensuite vers ta page d'affichage (avec un header)

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    Merci de ta lumiere effectivement en placant le traitement des informations apres y'a plus de probleme

    encore merci à ceux qui ce sont penchés sur mon cas!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [PHP-JS] Besoin d'aide sur eval()
    Par KneXtasY dans le forum Langage
    Réponses: 6
    Dernier message: 28/06/2006, 10h35
  2. [php/Mysql] besoin d'aide
    Par Alex35 dans le forum Outils
    Réponses: 15
    Dernier message: 09/06/2006, 17h14
  3. Windows 2003 server et php mysql besoin d'aide ^^
    Par iceje dans le forum Windows Serveur
    Réponses: 47
    Dernier message: 25/03/2006, 09h19
  4. [Conception] BDD & PHP, néophite à besoin d'aide pour un site
    Par Cusack dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 14/02/2006, 20h53
  5. [PHP-JS] besoin d'aide pour menu déroulant avec lien
    Par Damarus dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 18h43

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