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 :

[Tableaux] Problème bizarre de tri d'un tableau


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 261
    Points : 64
    Points
    64
    Par défaut [Tableaux] Problème bizarre de tri d'un tableau
    Bonjour, suite à un probléme avec ma demarche pour trier un tableau jai refait toutes mes fonctions, cependant il y a toujours un probleme.
    Le tableau est affiché grace à une requete et la base est sous mysql
    Le tri se fait grace a l'entete des colonnes du tableau, mon prob est le suivant,je clique une fois sur l'entéte, un message derreur saffiche dans la barre d'adrese:

    http://127.0.0.1/Projet_php/clients.php?tri=d&ord=<br%20/><b>Notice</b>:%20%20Undefined%20index:%20%20tri%20in%20<b>c:\program%20files\easyphp1-8\www\projet_php\clients.php</b>%20on%20line%20<b>82</b><br%20/>asc

    je reclique sur l'entete, plus aucun message, le tri fonctionne
    Je pense à un problème d'initialisation, ou un truc comme ca, je vous donne la partie necessaire 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
    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
    <?php
    include('testeurDeSession.php');
    include('connexion.php');
     
    if (isset($_GET['t']))
    {
    	$t=$_GET['t'];
     
    	if ($t=='a')
    	{
    		$txt="Le client a été ajouté avec succès.";
    	}
    	elseif ($t=='m')
    	{
    		$txt="Le client a été modifié avec succès.";
    	}
    	elseif ($t=='s')
    	{
    		$txt="Le client a été supprimé avec succès.";
    	}
    }
     
    if (isset($_GET['tri']) and !empty($_GET['tri']) and !$_GET['tri']=="")
    { 
     switch($_GET['tri'])
     {
    	case "ti" : $tri = " ORDER BY titre"; break;
    	case  "d" : $tri = " ORDER BY date_publication"; break; 
    	case  "a" : $tri = " ORDER BY attribuee"; break;
      	default : $tri = " ORDER BY no_offre";
     
     }
    }
    else 
    { 
     $tri = " ORDER BY no_offre";
    }
     
    if (isset($_GET['ord']))
    { 
     switch($_GET['ord'])
     {
    	case "asc" : $ord = " ASC"; $ord2 = "desc"; break;
    	case  "desc" : $ord = " DESC"; $ord2 = "asc"; break;
      	default : $ord = " ASC"; $ord2 = "desc";
     }
    }
    else 
    {
     $ord = " ASC"; $ord2 = "desc";
    }
     
    $SQL = "SELECT * FROM offre WHERE supprimee=0".$tri.$ord;
     
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Gestion des offres de stages</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style type="text/css">
    <!--
    .Style2 {color: #33CC99}
    -->
    </style>
    </head>
    <body bgcolor="#99FF99">
    <p align="center" style="font-weight:bold " >Gestion des clients</p>
    <br />
    <a href="Ajout/ajout.php">Ajouter un Client</a>
    <br /><br />
    <?php
    if (!empty($t))
    {
    	?><span class="Style2"><?php echo $txt?> 
    	<br \><br \></span>
    	<?php
    }
    ?>
    	<table border="1">
          <tr align="center">
            <td><a href="clients.php?tri=d&ord=<?php if($_GET['tri'] == "d"){echo $ord2;} else { echo "asc";}?>">Date</a></td>
            <td><a href="clients.php?tri=ti&ord=<?php if($_GET['tri'] == "ti"){echo $ord2;} else { echo "asc";}?>">Titre</a></td>
            <td><a href="clients.php?tri=a&ord=<?php if($_GET['tri'] == "a"){echo $ord2;} else { echo "asc";}?>">Attribu&eacute;e</a></td>
            <td>Formations</td>
            <td colspan="4">Edition</td>
          </tr>
          <?php
    $res = mysql_query($SQL);
    while($rows=mysql_fetch_assoc($res))

    Merci beaucoup

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 386
    Points : 275
    Points
    275
    Par défaut
    c'est laquelle ta ligne 82?

  3. #3
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 261
    Points : 64
    Points
    64
    Par défaut
    bah la ligne 82 c quand je clique sur l'entete date
    c'est celle la : <td><a href="clients.php?tri=d&ord=<?php if($_GET['tri'] == "d"){echo $ord2;} else { echo "asc";}?>">Date</a></td>

    et si je clique en premier sur l'entete titre ca sera la 83 et si je clique en premier sur l'entete attribue ca sera la ligne 84....

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 386
    Points : 275
    Points
    275
    Par défaut
    Pour lui ta variable tri n'est pas initialisé. fait un echo $_GET['tri'] pour tester

  5. #5
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 261
    Points : 64
    Points
    64
    Par défaut
    jai fais un echo ca m'affiche ce message d'erreur
    Notice: Undefined index: tri in f:\easyphp1-8\www\projet_php\clients.php

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 386
    Points : 275
    Points
    275
    Par défaut
    donc elle n'est effectivement pas initialisé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><a href="clients.php?tri=d&ord=<?php if($_GET['tri'] == "d"){echo $ord2;} else { echo "asc";}?>">Date</a></td>
    ton code a besoin qu'elle soit initialisé donc soit tu rajoute un test pour voir si elle est initialisée du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><a href="clients.php?tri=d&ord=<?php if ((isset($_GET['tri']))&&($_GET['tri'] == "d")){echo $ord2;} else { echo "asc";}?>">Date</a></td>
    et donc si $_GET['tri'] n'est pas set ça executera le ELSE, soit tu dois faire en sorte que $_GET['tri'] soit obligatoirement initialisé pour ne plus avoir l'erreur

  7. #7
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 261
    Points : 64
    Points
    64
    Par défaut
    En mettant ton code a la palce du mien cela fonctionne ,je n'ai plus de message. MERCI beaucoup mais es ce que je pe laisser comme ca? cela ne possera pas de problèmes par la suite?
    merci encore

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 386
    Points : 275
    Points
    275
    Par défaut
    C'est à toi de determiner si il est correct d'executer la clause ELSE si cette variable $_GET['tri'] n'est pas initialisé je ne connais pas le fonctionnement de ton site. Mais au niveau du code oui c'est correct.
    Pense au ^^

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

Discussions similaires

  1. [Tableaux] Problème sur le parcours d'un tableau
    Par gregal dans le forum Langage
    Réponses: 2
    Dernier message: 02/04/2007, 12h22
  2. [Tableaux] question recherche et tri dans un tableau
    Par nicopoal dans le forum Langage
    Réponses: 7
    Dernier message: 25/01/2007, 16h41
  3. Réponses: 2
    Dernier message: 10/12/2006, 09h57
  4. Réponses: 1
    Dernier message: 03/09/2006, 18h53
  5. [Tableaux] Problème tri de tableau à deux dimensions
    Par squall62 dans le forum Langage
    Réponses: 21
    Dernier message: 24/05/2006, 18h18

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