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 :

Sort sur une table - erreur stupide pour sort et order [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 6
    Points
    6
    Par défaut Sort sur une table - erreur stupide pour sort et order
    Salut

    je veux trier une table, ma table des donations.
    J'ai entre quelques donations fictives, la table est Ok, les champs aussi, de ce coté là tout va bien

    MAIS,
    Je tourne en rond sur une erreur d'une stupidité affligeante,
    Evidemment un bon codeur, va se taper une tartine de rigolade...

    Soit mon $sort est à RIEN à chaque nouvelle session MAIS mon $order est nickerl,
    Je peux selctionner mon order de tri, class, country, .... c ok

    Soit je file une valeur par default à $sort, ET apres, evidemment, je reste sur mon $sort ="id";
    ET plus moyen de selctionner mon $order

    le bleme doit venir des premieres lignes de mon code, mon option selct doit etre bancal
    + je pense mon test de $sort

    y a t-il un magicien dans la salle ?

    Voici une page de TEST, extraite du contexte de mon site,
    Puisque mon Theme et le reste, c po important, lol ::: http://www.alamandra-team-host.net/d...onatings02.php

    ET le code PHP :::


    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
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    <?php 
    //
    //      MOD ALL CLASS DONATIONS SYSTEM :  Viewdonatings page
    //      
     
    require_once("backend/functions.php"); 
    dbconn(false); 
    $site_config["LEFTNAV"] = false;
     
    // Si la variable $_GET['sort'] existe...
     
    if(!isset($_GET['sort']))	$sort = "id";   
     
    else			$sort=intval($_GET['sort']);
     
    print("$sort");
     
    ?>
    <FORM method="post" action="aTESTviewdonatings02.php">
    <TABLE>
    <tr> 
    <td>Sort by:</td>
    <td><select>
    <OPTION value="">--Any--</OPTION>
    <OPTION value="country">Country</OPTION>
    <OPTION value="class">Class</OPTION>
    <OPTION value="userid">User</OPTION>
    <OPTION value="id">Don id</OPTION>
    </select></td>
    </tr>
    <tr>
    <td><INPUT type="submit" value="Sort now" name="sort"></td> 
    <td></td>
    </tr>
    </TABLE>
    </FORM> 
    <?php
     
     
    echo "<br><B><CENTER>Please <a href=staff.php>contact</a> a member of staff if you would like explanations on making a donation...</CENTER></B><BR><BR>";
     
    $messagesParPage=10;
     
    $retour_total=mysql_query('SELECT COUNT(*) AS total FROM donatings'); //Nous récupérons le contenu de la requête dans $retour_total
     
    $donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
     
    $total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
     
    $nombreDePages=ceil($total/$messagesParPage);
     
     
     
     
    if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
    {
         $pageActuelle=intval($_GET['page']);
     
         if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
         {
              $pageActuelle=$nombreDePages;
         }
    }
    else 
    {
         $pageActuelle=1; // La page actuelle est la n°1    
    }
     
    $premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
     
    $retour_messages=mysql_query('SELECT * FROM donatings ORDER BY '.$sort.' ASC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
     
    print("$retour_messages");
     
    if($nombreDePages == 0)	 {	echo "<BR><B>No Donatings done yet</b><BR>\n";	}
     
    else		        				{
     
    print("<table align=center cellpadding=3 cellspacing=0 class=table_table width=100% border=1>");
     
     
    print("<tr><td  class=table_head align=left>Don ID</td>
    <td  class=table_head align=center>User ID</td>
    <td  class=table_head align=center>Username</td>
    <td  class=table_head align=center>Country</td>
    <td  class=table_head align=center>Class</td>
    <td  class=table_head align=center>Level</td>
    <td  class=table_head align=center>Add</td>
    <td  class=table_head align=center>Duration</td>
    <td  class=table_head align=center>Expiry</td>
    <td  class=table_head align=center>Reason</td>
    <td  class=table_head align=center>Viped by</td>
    <td  class=table_head align=center>Money</td>
    <td  class=table_head align=center>Donated</td>
    <td  class=table_head align=center>Total Donated</td></tr>");
     
     
    while($donnees_messages=mysql_fetch_assoc($retour_messages))			{
     
    $countryname = get_user_country_name($donnees_messages[country]);
     
    $wusername = get_user_name($donnees_messages[vipedby]);
     
    if ($donnees_messages[duration] == '1') { $durationexpressed = "LIFETIME"; }
    else { $durationexpressed = $donnees_messages[duration]; }
     
    print("<tr><td  class=table_col1 align=left>$donnees_messages[id]</td>
    <td  class=table_col2 align=center>$donnees_messages[userid]</td>
    <td  class=table_col1 align=center>$donnees_messages[username]</td>
    <td  class=table_col2 align=center>$countryname</td>
    <td class=table_col1  align=center>$donnees_messages[class]</td>
    <td  class=table_col2 align=center>$donnees_messages[level]</td>
    <td  class=table_col1 align=center>$donnees_messages[added]</td>
    <td  class=table_col2 align=center>$durationexpressed</td>
    <td  class=table_col1 align=center>$donnees_messages[expiry]</td>
    <td  class=table_col2 align=center>".format_comment($donnees_messages['reason'])."</td>
    <td  class=table_col1 align=center>$wusername</td>
    <td  class=table_col2 align=center>$donnees_messages[money]</td>
    <td  class=table_col1 align=center>$donnees_messages[donated]</td>
    <td  class=table_col2 align=center>$donnees_messages[total_donated]</td></tr>\n");
     
     
    																}
    echo "</table>";
     
     
    	}
     
     
     
     
    echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
     
    for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
     
    {
         //On va faire notre condition
     
         if($i==$pageActuelle) //Si il s'agit de la page actuelle...
         {
             echo ' [ '.$i.' ] '; 
         }	
         else //Sinon...
         {
              echo ' <a href="aTESTviewdonatings02.php?page='.$i.'">'.$i.'</a> ';
         }
    }
    echo '</p>';
     
     
     
    ?>

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 281
    Points
    281
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sort=intval($_GET['sort']);
    A moins que toutes les colonnes de ta table aient des valeurs numériques, pas étonnant que t'aies un problème vu que ton $sort sera forcément un nombre

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    salut !
    merci mais ça ne resoud rien,
    ni mon probleme de perte du order pour les pages suivantes,
    ni celui du order par default
    ni celui du choix de order

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    bon voici un changement sur le tout debut de mon 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
     
    // Si la variable $_GET['sort'] existe...
     
    if(isset($_GET['sort']))	$sort = $_GET['sort'];
     
    print("$sort");
     
    ?>
    <FORM method="post" action="viewdonatings02.php">
    <TABLE>
    <tr> 
    <td>Sort by:</td>
    <td><select name="sort">
    <OPTION value="">--Any--</OPTION>
    <OPTION value="country">Country</OPTION>
    <OPTION value="class">Class</OPTION>
    <OPTION value="userid">User</OPTION>
    <OPTION value="id">Don id</OPTION>
    </select></td>
    </tr>
    <tr>
    <td><INPUT type="submit" value="Sort now"></td> 
    <td></td>
    </tr>
    </TABLE>
    </FORM>

    Donc,

    Code de cette façon,
    Le choix du sort fonctionne, MAIS le choix est perdu pour lespages suivantes

    Et bien sur au premier affcihage,
    ben la table est vide,
    puisque $sort n'a pas de valeur si aucun choix n'a encore ete fait...

    Ya vraiment personne qui peux m'aider,
    pour quand meme une fonction vraiment pour "debutants" ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    bon ben jai trouve tout seul finalement, heureusement....allez bonne continuation, quand meme...ha et oui, c sur chacun a sa vie a s'occuper, lol
    yavai plusieures erreurs et oublis, voilà c réglé...

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

Discussions similaires

  1. Pb méthode sort sur une feuille protégée
    Par skan_one dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/04/2009, 11h48
  2. Réponses: 13
    Dernier message: 19/12/2008, 14h32
  3. Erreur Openrecordset sur une table DB2
    Par Aränel dans le forum Access
    Réponses: 7
    Dernier message: 17/01/2007, 13h35
  4. Boucler sur une table pour renommer des valeurs
    Par webwhisky dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 03/01/2006, 14h19
  5. [débutant] Aide pour mettre une FOREIGN KEY sur une table
    Par cauldron dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/11/2004, 17h16

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