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 :

Convertir en PDO [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut Convertir en PDO
    Bonjour.

    J'ai besoin d'aide pour convertir la parti mysql en version PDO de ceci :
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <?php
    if($_POST['page'])
    {
    $page = $_POST['page'];
    $cur_page = $page;
    $page -= 1;
    $per_page = 1;
    $previous_btn = true;
    $next_btn = true;
    $first_btn = true;
    $last_btn = true;
    $start = $page * $per_page;
    include"db.php";
     
    $query_pag_data = "SELECT * from crud_categorie LIMIT $start, $per_page";
    $result_pag_data = mysql_query($query_pag_data) or die('MySql Error' . mysql_error());
    $msg = "";
    while ($row = mysql_fetch_array($result_pag_data)) {
    $htmlmsg=htmlentities($row['categorie']);
        $msg .= "<li><b>" . $row['id'] . "</b> " . $htmlmsg . "</li>";
    }
    $msg = "<div class='data'><ul>" . $msg . "</ul></div>"; // Content for Data
     
     
    /* --------------------------------------------- */
    $query_pag_num = "SELECT COUNT(*) AS count FROM crud_categorie";
    $result_pag_num = mysql_query($query_pag_num);
    $row = mysql_fetch_array($result_pag_num);
    $count = $row['count'];
    $no_of_paginations = ceil($count / $per_page);
     
    /* ---------------Calculating the starting and endign values for the loop----------------------------------- */
    if ($cur_page >= 7) {
        $start_loop = $cur_page - 3;
        if ($no_of_paginations > $cur_page + 3)
            $end_loop = $cur_page + 3;
        else if ($cur_page <= $no_of_paginations && $cur_page > $no_of_paginations - 6) {
            $start_loop = $no_of_paginations - 6;
            $end_loop = $no_of_paginations;
        } else {
            $end_loop = $no_of_paginations;
        }
    } else {
        $start_loop = 1;
        if ($no_of_paginations > 7)
            $end_loop = 7;
        else
            $end_loop = $no_of_paginations;
    }
    /* ----------------------------------------------------------------------------------------------------------- */
    $msg .= "<div class='pagination'><ul>";
     
    // FOR ENABLING THE FIRST BUTTON
    if ($first_btn && $cur_page > 1) {
        $msg .= "<li p='1' class='active'> << </li>";
    } else if ($first_btn) {
        $msg .= "<li p='1' class='inactive'> << </li>";
    }
     
    // FOR ENABLING THE PREVIOUS BUTTON
    if ($previous_btn && $cur_page > 1) {
        $pre = $cur_page - 1;
        $msg .= "<li p='$pre' class='active'> < </li>";
    } else if ($previous_btn) {
        $msg .= "<li class='inactive'> < </li>";
    }
    for ($i = $start_loop; $i <= $end_loop; $i++) {
     
        if ($cur_page == $i)
            $msg .= "<li p='$i' style='color:#fff;background-color:#000;' class='active'>{$i}</li>";
        else
            $msg .= "<li p='$i' class='active'>{$i}</li>";
    }
     
    // TO ENABLE THE NEXT BUTTON
    if ($next_btn && $cur_page < $no_of_paginations) {
        $nex = $cur_page + 1;
        $msg .= "<li p='$nex' class='active'> > </li>";
    } else if ($next_btn) {
        $msg .= "<li class='inactive'> > </li>";
    }
     
    // TO ENABLE THE END BUTTON
    if ($last_btn && $cur_page < $no_of_paginations) {
        $msg .= "<li p='$no_of_paginations' class='active'> >> </li>";
    } else if ($last_btn) {
        $msg .= "<li p='$no_of_paginations' class='inactive'> > </li>";
    }
    $goto = "<input type='text' class='goto' size='1' style='margin-top:-1px;margin-left:60px;'/><input type='button' id='go_btn' class='go_button' value='Go'/>";
    $total_string = "<span class='total' a='$no_of_paginations'>Page <b>" . $cur_page . "</b> / <b>$no_of_paginations</b></span>";
    $msg = $msg . "</ul>" . $goto . $total_string . "</div>";  // Content for pagination
    echo $msg;
    }
    Ce qui m'intéresse particulièrement, c'est la partie MYSQL pour avoir en PDO. J'apprécie.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Montre nous ce que tu as fait et on pourra t'aider a le corriger.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut
    ok. Tien, j'ai converti en PDO mais je ne suis pas sur que
    c'est tout correcte:

    Y'a peut-être place à amélioration au niveau PDO.

    Le résultat est la et fonctionne.

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    <?php
    if($_POST['page'])
    {
    $page = $_POST['page'];
    $cur_page = $page;
    $page -= 1;
    $per_page = 1;
    $previous_btn = true;
    $next_btn = true;
    $first_btn = true;
    $last_btn = true;
    $start = $page * $per_page;
    include"db.php";
     
     
    // TUTO suivi sur : query http://www.phpeveryday.com/articles/PDO-Prepared-Statement-and-Bound-Values-P553.html
     
    $query_pag_data = "SELECT * from crud_categorie LIMIT $start, $per_page";
    $result_pag_data = $con->prepare($query_pag_data );
    $result_pag_data->execute();
    $result_pag_data->bindColumn(1, $id);
    $result_pag_data->bindColumn(2, $categorie);
    $result_pag_data->bindColumn(3, $description);
     
    $msg = "";
     
    while($result_pag_data->fetch()) {
     
        $msg .= "<li><b>" . $id . "</b> " . $categorie . "</li>";
     
    }
    $msg = "<div class='data'><ul>" . $msg . "</ul></div>"; // Content for Data
     
    /* --------------------------------------------- */
     
    $query_pag_num = "SELECT * FROM crud_categorie";
    $result_pag_num = $con->prepare( $query_pag_num );
    $result_pag_num->execute();
    $count = $result_pag_num->rowCount();
    echo $count;
     
    $no_of_paginations = ceil($count / $per_page);
     
    /* ---------------Calculating the starting and endign values for the loop----------------------------------- */
    if ($cur_page >= 7) {
        $start_loop = $cur_page - 3;
        if ($no_of_paginations > $cur_page + 3)
            $end_loop = $cur_page + 3;
        else if ($cur_page <= $no_of_paginations && $cur_page > $no_of_paginations - 6) {
            $start_loop = $no_of_paginations - 6;
            $end_loop = $no_of_paginations;
        } else {
            $end_loop = $no_of_paginations;
        }
    } else {
        $start_loop = 1;
        if ($no_of_paginations > 7)
            $end_loop = 7;
        else
            $end_loop = $no_of_paginations;
    }
    /* ----------------------------------------------------------------------------------------------------------- */
    $msg .= "<div class='pagination'><ul>";
     
    // FOR ENABLING THE FIRST BUTTON
    if ($first_btn && $cur_page > 1) {
        $msg .= "<li p='1' class='active'> << </li>";
    } else if ($first_btn) {
        $msg .= "<li p='1' class='inactive'> << </li>";
    }
     
    // FOR ENABLING THE PREVIOUS BUTTON
    if ($previous_btn && $cur_page > 1) {
        $pre = $cur_page - 1;
        $msg .= "<li p='$pre' class='active'> < </li>";
    } else if ($previous_btn) {
        $msg .= "<li class='inactive'> < </li>";
    }
    for ($i = $start_loop; $i <= $end_loop; $i++) {
     
        if ($cur_page == $i)
            $msg .= "<li p='$i' style='color:#fff;background-color:#000;' class='active'>{$i}</li>";
        else
            $msg .= "<li p='$i' class='active'>{$i}</li>";
    }
     
    // TO ENABLE THE NEXT BUTTON
    if ($next_btn && $cur_page < $no_of_paginations) {
        $nex = $cur_page + 1;
        $msg .= "<li p='$nex' class='active'> > </li>";
    } else if ($next_btn) {
        $msg .= "<li class='inactive'> > </li>";
    }
     
    // TO ENABLE THE END BUTTON
    if ($last_btn && $cur_page < $no_of_paginations) {
        $msg .= "<li p='$no_of_paginations' class='active'> >> </li>";
    } else if ($last_btn) {
        $msg .= "<li p='$no_of_paginations' class='inactive'> > </li>";
    }
    $goto = "<input type='text' class='goto' size='1' style='margin-top:-1px;margin-left:60px;'/><input type='button' id='go_btn' class='go_button' value='Go'/>";
    $total_string = "<span class='total' a='$no_of_paginations'>Page <b>" . $cur_page . "</b> / <b>$no_of_paginations</b></span>";
    $msg = $msg . "</ul>" . $goto . $total_string . "</div>";  // Content for pagination
    echo $msg;
    }

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    As-tu un peu potassé la doc PDO parce que vu le code que tu montres, je ne le crois pas.

    Dans ce bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $query_pag_data = "SELECT * from crud_categorie LIMIT $start, $per_page";
    $result_pag_data = $con->prepare($query_pag_data );
    $result_pag_data->execute();
    $result_pag_data->bindColumn(1, $id);
    $result_pag_data->bindColumn(2, $categorie);
    $result_pag_data->bindColumn(3, $description);
    Je voudrais savoir où sont présentes dans le SQL les colonnes auxquelles tu rattaches des valeurs ?

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ca ne sert à rien d'utiliser la préparation des requêtes quand elles n'ont pas de paramètres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query($query_pag_data)
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $con->query($query_pag_data)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $query_pag_num = "SELECT * FROM crud_categorie";
    $result_pag_num = $con->prepare( $query_pag_num );
    $result_pag_num->execute();
    $count = $result_pag_num->rowCount();
    echo $count;
    c'est pas optimisé, pour faire un simple comptage

    =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $query_pag_num = "SELECT count(*) FROM crud_categorie";
    $result_pag_num = $con->query($query_pag_num);
    $count = $result_pag_num->fetchColumn();
    echo $count;

  7. #7
    Membre éclairé Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Par défaut
    Merci pour l'aide.

    J'ai approfondie mes connaissances générale en PDO.

    C'est vrai que c'est plutôt agréable son utilisation.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/06/2004, 12h07
  2. [QuickReport] convertir les états en RAVE
    Par El blérot dans le forum Rave
    Réponses: 5
    Dernier message: 18/03/2004, 17h05
  3. Réponses: 3
    Dernier message: 02/07/2003, 16h24
  4. [TP]Convertir Delphi en BP7
    Par Christophe Fantoni dans le forum Turbo Pascal
    Réponses: 28
    Dernier message: 19/11/2002, 17h30
  5. convertir un nom long (win32) en format dos (8+3)
    Par kylekiller dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2002, 13h34

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