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

PHP & Base de données Discussion :

Incrémenter les pages suivante d'un livre si une page change [MySQL]


Sujet :

PHP & Base de données

  1. #1
    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 Incrémenter les pages suivante d'un livre si une page change
    Bonjour,

    Je m'énerve depuis une heure sur un problème qui pourtant me parait simple, donc la solution va surement vous sauter aux yeux.

    Voilà:
    Imaginons que j'ai 100 pages pour un livre.
    Je change le numéro de la page 50.
    Je lui donne le numéro 49.
    Donc toutes les pages à compter de la numéro 49 doivent être incrémentées de 1.

    Sauf erreur de ma part, jusque là c'est bon.

    Donc, pour ce faire, j'utilise la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // si le nouveau numéro de page est inférieur à l'ancien, alors on update toutes les pages de numéro supérieur au nouveau, en les incrémentants de 1
    if ($_POST["numeroPageAncien"]>$_POST["numeroPage"])
    {$U="UPDATE  `page` SET  numeroPage='numeroPage+1' WHERE numeroPage >'".$numeroPage."'";
    mysql_query($U)
    ;
     
    // ici on modifie les champs titre et contenu et on attribu à la page son nouveau numéro
    $U="UPDATE  `page` SET titre='".$titre."',contenu='".$contenu."', numeroPage='".$numeroPage."' WHERE id='".$id."'";
    mysql_query($U);
    ;}
    Le résultat est le suivant :

    La page à modifier prend bien le nouveau numéro qui lui est attribué, par contre toutes les autres passent à 0, quand ce n'est pas un résultat plus exotique.


    Votre avis sur la question ?

  2. #2
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $U="UPDATE  `page` SET  numeroPage='numeroPage+1' WHERE numeroPage >'".$numeroPage."'"
    $numeropage n'est pas défini, utilise $_POST['numeropage']

    idem pour l'autre requête

    Enfin à mon sens

  3. #3
    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
    En fait je viens de résoudre le problème, les '' autour du nombrePage +1 faisait que ça ne fonctionnait pas.

    Sinon t'as remarque est juste pourtant ce n'était pas cela qui génait. Mais je vais quand même corriger cela, pour plus d'homogénéité.

    Je te remercie pour ta réponse et laisse le post ouvert, car la suite est un peu plus compliquée, j'aurais peut être besoin d'y revenir.

    Merci

  4. #4
    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
    Cette question n'a rien à voir avec la précédente, mais je profite de ce post ouvert pour vous la poser (je ne vais tout de même pas ouvrir un post que pour cela).

    Voilà, comment récupérer le résultat de la requête suivante, sans faire de boucle WHILE puisqu'il n'y a de toute façon qu'un seul résultat retourné ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $affiche="SELECT MAX numeroPage  FROM page ";
    $resultat = mysql_query("$affiche");
    while($R=mysql_fetch_array("$resultat"){
    $numeroPage=$R[numeroPage];
    //on crée une nouvelle variable pour attribuer un numéro à la page que l'on insère.
    $numeroPage=$numeroPage+1
     ;
     }

  5. #5
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    $affiche="SELECT MAX numeroPage FROM page ";
    $resultat = mysql_query("$affiche");
    $R=mysql_fetch_array("$resultat")
    $numeroPage=$R[numeroPage];
    //on crée une nouvelle variable pour attribuer un numéro à la page que l'on insère.
    $numeroPage=$numeroPage+1
    Il y a aussi mysq_result

  6. #6
    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
    Vu comme cela, ça parait évident

    merci

  7. #7
    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
    ça ne fonctionne pas en fait :
    mysql is not a valid .................. on line $R=mysql_fetch_array($resultat);

  8. #8
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Si je me souviens bien, avec MAX il faut utiliser GROUP BY

    mais c'est sans certitudes

  9. #9
    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
    Bon ça ne fonctionne pas, ça m'énerve. Merci à celui qui saura me dire ce qui cloche avec ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $affiche="SELECT MAX(numeroPage) AS bob FROM page "; 
    $resultat = mysql_query("$affiche"); 
    while($R=mysql_fetch_array($resultat)){ 
    $numeroPage=$bob;
    //on crée une nouvelle variable pour attribuer un numéro à la page que l'on insère. 
    $numeroPage=$numeroPage+1 
     ; 
     }
    mysql_free_result($resultat);
    ça ne retourne pas de message d'erreur, mais pas non plus de valeur pour bob. La page insérée comporte toujours le numéro 1.


    Qu'est ce qui ne va pas ?

  10. #10
    Membre éprouvé
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Points : 959
    Points
    959
    Par défaut
    Salut je n'ai pas tester mais bon quand tu défini le nom d'un champ dans une requete et tu veux aller le chercher par la suite
    il me semble qu'il faut que tu fasses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $affiche="SELECT MAX(numeroPage) AS bob FROM page "; 
    $resultat = mysql_query("$affiche"); 
     
    $R=mysql_fetch_array($resultat)
     
    //Utilisant le nom de la variable bob redéfini
    $numeroPage=$R['bob']; 
     
    //on crée une nouvelle variable pour attribuer un numéro à la page que l'on insère. 
    $numeroPage=$numeroPage+1; 
     
    mysql_free_result($resultat);

  11. #11
    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
    Comment ai-je pu le rater ça ?

    Bon, merci à toi Ozzmax, de m'avoir éclairé.

    Comme quoi il faut savoir faire une pause.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/03/2014, 11h03
  2. Réponses: 2
    Dernier message: 15/05/2013, 18h19
  3. Lire les mails d'un serveur Exchange dans une page php
    Par ljonathan dans le forum Langage
    Réponses: 2
    Dernier message: 18/08/2008, 11h48
  4. Incrémenter les lignes d'un tableau excel par une variable
    Par lucien(67) dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/02/2008, 18h10
  5. Réponses: 2
    Dernier message: 15/05/2007, 15h43

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