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 :

Tableau MYSQL Ajax


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 148
    Par défaut Tableau MYSQL Ajax
    Bonjour,

    Besoin de vous

    J'ai actuellement un code qui me permet d'avoir un tableau sous plusieurs pages ... et je voudrais que quand on clique sur le n° de la page, il charge les 100 données suivantes en AJAX ... pour ne pas avoir à recharger la page

    Merci d'avance !


    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
    <?php
    // On met dans une variable le nombre de messages qu'on veut par page
    $nombreDeMessagesParPage = 100;
    // On récupère le nombre total de messages
    $retour = mysql_query("SELECT COUNT(*) AS nb FROM ".$_GET['monde']."_players");
    $donnees = mysql_fetch_array($retour);
    $totalDesMessages = $donnees['nb'];
    // On calcule le nombre de pages à créer
    $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
     
    if (isset($_GET['page']))
    {
            $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
    }
    else // La variable n'existe pas, c'est la première fois qu'on charge la page
    {
            $page = 1; // On se met sur la page 1 (par défaut)
    }
     
    // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
    $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
     
    $reponse = mysql_query('SELECT p.id AS id,
    	p.name, 
    	a.id AS alliance_id, 
    	a.alliance_name AS alliance_name,
    	p.points, 
    	p.rank, 
    	p.towns
    FROM '.$_GET['monde'].'_players p
    LEFT JOIN '.$_GET['monde'].'_alliances a ON a.id = p.alliance_id
    ORDER BY rank ASC 
    LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage) or die ('Erreur : '.mysql_error() );
     
    	echo '<table id=mytable width="700px">'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
            echo '<tr>';
            echo '<th style="width="10%" font-size: 11px;"><b><u>Rang</u></b></th>' ;
            echo '<th style="width="30%" font-size: 11px;"><b><u>Joueur</u></b></th>';
    		echo '<th style="width="30%" font-size: 11px;"><b><u>Alliance</u></b></th>';
            echo '<th style="width="15%" font-size: 11px;"><b><u>Points</u></b></th>';
            echo '<th style="width="15%" font-size: 11px;"><b><u>Villes</u></b></th>';
          echo '</tr>'."\n";
    	  echo '</table>';
     
    	  	echo '<div style="overflow: auto;height: 500px; width: 720px;">';
    	echo '<table style="width: 700px;">';
     
    while ($donnees = mysql_fetch_array($reponse))
    {
     
    $select = mysql_query("SELECT numero, name FROM infos WHERE name= '".$_GET['monde']."'");
    $total = mysql_num_rows($select);
     
    if($total) {
        while($row = mysql_fetch_array($select)) {
    $monde=$row["name"];
    $numero_monde=$row["numero"];
        }
    }
    mysql_free_result($select);
     
    $select2 = mysql_query("SELECT * FROM phpbb_users WHERE user_id = '".$userid."'");
    $total2 = mysql_num_rows($select2);
     
    while($row = mysql_fetch_array($select2)) {
    $select3 = mysql_query("SELECT id FROM ".$_GET['monde']."_players WHERE id = '".$row["".$numero_monde.""]."'");
     
    if ($donnees["id"] == $row["".$numero_monde.""]){
     
    	echo '<tr>';
        echo '<td width="10%" style="background-color: yellow;">'.$donnees["rank"].'</td>';
        echo '<td width="35%" style="background-color: yellow;"><img src="http://cdn.grepolis.com/images/game/temp/player.png"</img><a href="'.append_sid(''.$monde.'/player/'.$donnees["id"]).'">'.urldecode($donnees["name"]).'</a></td>';
    	echo '<td width="35%" style="background-color: yellow;"><img src="http://cdn.grepolis.com/images/game/temp/ally.png"</img><a href="'.append_sid(''.$monde.'/alliance/'.$donnees["alliance_id"]).'">    '.urldecode($donnees["alliance_name"]).'</a></td>';
        echo '<td width="10%" style="background-color: yellow;">'.$english_format_number = number_format($donnees["points"]).'</td>';
        echo '<td width="10%" style="background-color: yellow;">'.$donnees["towns"].'</td>';
        echo '</tr>'."\n";
    }
    else
     {
    	echo '<tr>';
        echo '<td width="10%">'.$donnees["rank"].'</td>';
        echo '<td width="35%"><img src="http://cdn.grepolis.com/images/game/temp/player.png"</img><a href="'.append_sid(''.$monde.'/player/'.$donnees["id"]).'">'.urldecode($donnees["name"]).'</a></td>';
    	echo '<td width="35%"><img src="http://cdn.grepolis.com/images/game/temp/ally.png"</img><a href="'.append_sid(''.$monde.'/alliance/'.$donnees["alliance_id"]).'">    '.urldecode($donnees["alliance_name"]).'</a></td>';
        echo '<td width="10%">'.$english_format_number = number_format($donnees["points"]).'</td>';
        echo '<td width="10%">'.$donnees["towns"].'</td>';
        echo '</tr>'."\n";
        }
    	}}
        echo '</table>'."\n";
    	echo '</div>';
     
    // Puis on fait une boucle pour écrire les liens vers chacune des pages
    echo 'Page : ';
    for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
        echo '<a href="/stats/'.$_GET['monde'].'/'.$i.'">'.$i.'</a> ';
    }
     
    mysql_close();
    ?>
    Je sais ce qu'il faut faire (avec le LIMIT je pense) mais je ne vois pas comment le coder ...

    Merci d'avance !

  2. #2
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut,

    ça m'a pas l'air trop mal...

    sauf que si tu fais de l'ajax c'est pas des simples liens qui faut mettre mais des liens avec des commandes ajax ou un formulaire avec chaque numéro de page qui est un bouton mettant à jour la valeur page et déclenche la validation du formulaire... bref de l'ajax...


  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 148
    Par défaut
    N'aurais-tu pas un exemple ?

  4. #4
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    tu en trouveras plein dans le sous forum ajax...

    ça dépend de ce que tu utilises pour faire ta connexion ajax (javascript, un framework javascript style jquery)

    en gros tu définis ta connexion ajax avec l'url de contact sur ton script php...
    tu fais ta demande de données à vide pour avoir ta première page de tableau, tu insères le résultat dans un div cible avec un id (facile à retrouver avec le dom ou jquery)

    ta liste de page va appeler ta fonction javascript qui lancera la récupération des données et le remplacement du code html dans le div cible

    si tu te sens javascript pur... mais faut implémenté les différents appels pour ajax selon chaque moteur de navigateur...

    le plus simple jquery qui te demande peu de ligne de code mais alourdi fortement ta page...

Discussions similaires

  1. [AJAX] Tableau dynamique [AJAX/MySql]
    Par benoit63 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/10/2008, 19h52
  2. [AJAX] Php/MySQL + AJAX : est ce possible
    Par johan06 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/10/2006, 09h58
  3. Dreamweaver, JSP, Servlet, mySQL, AJAX
    Par vinceLeBarbare dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 12/08/2006, 01h55
  4. Réponses: 1
    Dernier message: 21/06/2006, 14h10

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