[php] liste non correcte ?

Résolu/Fermé
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 10 févr. 2007 à 19:46
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 11 févr. 2007 à 01:05
Salut à tous,

Je suis en train de développer un catalogue affichant une liste de logiciels. Bon jusque là, OK.
PB: ma liste n'affiche pas dans l'ordre que je lui indique à savoir par catégories. Ca démarre avec un logiciel qui, dans la base, n'a que 2 renseignements parmi les 23 champs de la table "catalogue".
Si vous regardez le source (lien ci-dessous) c'est un peu bizarre.
Il devrait m'afficher la categorie la plus proche de la lettre A non ?

Autre chose: j'ai créé un .htaccess pour le formulaire (seuls quelques personnes autorisées doivent y avoir accès) mais ça ne fonctionne pas.
J'ai utilisé la hachage ( exe trouvé ici posté par jeff je crois...)
et surtout en local il m'interdit l'accès donc je suis obligé de mettre le "root et '' (2 ') sans pass quoi !
Y-a-t-il une config a faire dans easyPHP 1.8 ?

Merci d'avance pour votre aide !


http://txiki.free.fr/liste.php

10 réponses

Si on voyait le code php de ta page non? ^^
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
10 févr. 2007 à 20:29
<?
//=========================================
// includes du fichier fonctions
//=========================================

require 'fonctions.php';

//=========================================
// information pour la connection à le DB
//=========================================
$host = 'localhost';
$user = '***';
$pass = '****';
$db = 'catalogue';

//=========================================
// initialisation des variables 
//=========================================

$nombre = 10;  // on va afficher 10 résultats par page.
$limite = 0;
if (!$limite);  // si limite n'existe pas on l'initialise à zéro

$path_parts = pathinfo($_SERVER['PHP_SELF']);  // on cherche le nom de la page.

$page = $path_parts["basename"];

//======================
// connection à la DB
//======================
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // connection à la base
mysql_select_db($db) or die ('Impossible de se connecter à la base'); // sélection de la table

//==========================================================================    
// requête SQL qui compte le nombre total d'enregistrements dans la table.
//==========================================================================

$select = 'SELECT count(id) FROM catalogue';

$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );

$row = mysql_fetch_row($result);

$total = $row[0];

//===================================================
// vérifier la validité de notre variable $limite;
//===================================================
$verifLimite = verifLimite($limite,$total,$nombre);

// si la limite passée n'est pas valide on la remet à zéro
if(!$verifLimite)  {

    $limite = 0;
}

//=========================================
// requête SQL qui ne prend que le nombre d'enregistrement necessaire à l'affichage.
//=========================================

$select = 'select categorie,nom,editeur FROM catalogue ORDER BY categorie ASC limit '.$limite.','.$nombre;

$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );


//=========================================    
// si on a récupéré un resultat on l'affiche.
//=========================================

if($total) {
  echo '<table width="50% bgcolor="#FFFFFF" align="center">'."\n";
// première ligne on affiche les titres Accès et Logiciels dans 2 colonnes
        echo '<tr text-align="center" padding="3px" class="blanc">';
        echo '<td bgcolor="#669999"><strong> Accès </strong></td>';
        echo '<td bgcolor="#669999"><strong> Logiciels </strong></td>';
        echo '</tr>'."\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par lot de 3 lignes.    
    while($row = mysql_fetch_array($result)) {
  echo '<tr>';
  echo '<td rowspan="3"  bgcolor="#FF9900" align="center" width="10%">'; // largeur de la première colonne (fusion de 3 lignes) 
  echo '<p><a href="fiche.php?id=$ID"> Editer </a></p>'; // <P> pour 1 saut plus important entre les 2 liens
  echo '<p><a href="fiche.php?id=$ID"> supprimer </a></p>';
  echo '</td>';
  echo '<td bgcolor="#F0F0F0"><strong> Catégorie:      </strong>'.$row['categorie'].'</td>'; // affiche la catégorie à laquelle appartient le logiciel
  echo '</td>';
  echo '</tr>'."\n";
  echo '<td bgcolor="#F0F0F0"><strong> Nom du logiciel:      </strong>'.$row['nom'].'</td>'; // affiche le nom du logiciel dans la 2eme cellule de droite
  echo '</td>';
  echo '</tr>'."\n";
  echo '<tr>';
  echo '<td bgcolor="#F0F0F0"><strong> Editeur du logiciel:      </strong"'.$row['editeur'].'</td>'; // affiche le nom de l'éditeur dans la 3eme cellule
  echo '</td>';
  echo '</tr>'."\n";
 }
  echo '</table>'."\n";
    // fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table';

// on libère le résultat
mysql_free_result($result);

//=========================================    
// si le nombre d'enregistrement à afficher est plus grand que $nombre 
//=========================================

if($total > $nombre) {

    affichePages($nombre,$page,$total);  // affichage des liens vers les pages

    displayNextPreviousButtons($limite,$total,$nombre,$page);  // affichage des boutons
}

?>

C'est un peu long mais... j'espere que tu pourra y deceler quelque chose...

Merci !


Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
10 févr. 2007 à 21:00
Ah !
je viens de me rendre compte que dans le fichier csv qui me sert pour remplir la table via Myadmin, il y a des " (guillemets) dans certaines cellules.

Comment je pourrais faire pour les rechercher dans le XLS d'origine et les supprimer sachant qu'on ne les voient pas. Ils correspondent, je crois, a des retours de ligne dans la cellule en question.

Ou les supprimer au moment de l'import.
Je n'ai pas vu d'option sur Excel, ni dans word pad (en plus c'est très difficile de les voir.....)

Merci a tous ceux qui maitrise Excel surement mieux que moi.

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
ludd Messages postés 36 Date d'inscription mardi 12 décembre 2006 Statut Membre Dernière intervention 12 avril 2015 8
10 févr. 2007 à 21:09
regarde dans ta table si le champ categorie est bien renseignée car visiblement il a l'air d'être vide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ludd Messages postés 36 Date d'inscription mardi 12 décembre 2006 Statut Membre Dernière intervention 12 avril 2015 8
10 févr. 2007 à 21:25
dsl j'ai pas vu ton dernier message, excel désolé je n'y connais pas grand chose
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
10 févr. 2007 à 21:27
regarde le début de la table (c'est une image).

C'est ce qu'il devrait afficher en premier (heuuuu peut-etre pas, il doit y avoir une catégorie commençant avant la lettre C (CFAO).

http://txiki.free.fr/table-catalogue.gif

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
ludd Messages postés 36 Date d'inscription mardi 12 décembre 2006 Statut Membre Dernière intervention 12 avril 2015 8
10 févr. 2007 à 21:36
je vois pas trop ou est le soucis ...


Juste apres ta requete pour aller chercher tes champs

cette requette la :$select = 'select categorie,nom,editeur FROM catalogue ORDER BY categorie ASC limit '.$limite.','.$nombre;

Fais un echo $select et relance ta page.

execute cette requette dans phpmyadmin et vois si le résultat obtenu est bon ou pas déjà ça permettra d'élliminer une partie du code

Tu recup bien sur la requette dans ta page html suite au echo elle devrait s'afficher
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
10 févr. 2007 à 22:22
Voici ce que ça donne (???)

MySQL a répondu:Documentation
#1064 - Erreur de syntaxe pr�s de 'echo $select`categorie``nom``editeur`' � la ligne 1

D'abord c'est quoi ces back slash ?
je ne comprends plus rien....
0
ludd Messages postés 36 Date d'inscription mardi 12 décembre 2006 Statut Membre Dernière intervention 12 avril 2015 8
10 févr. 2007 à 23:53
on ne s'est pas compris ^^

remplace le code suivant :
$select = 'select categorie,nom,editeur FROM catalogue ORDER BY categorie ASC limit '.$limite.','.$nombre;

$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );



par celui-ci
$select = 'select categorie,nom,editeur FROM catalogue ORDER BY categorie ASC limit '.$limite.','.$nombre;

echo "ma requette:[".$select."]";

$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );


tu rafraichis ta page : http://txiki.free.fr/liste.php

tu devrai avoir à l'ecran ta requette sql entre 2 crochets.
Copie/colle cette requette dans phpmyadmin afin de voir si le resultat obtenu correspond à ce que tu attends.
Si c'est le cas on avisera et si ce n'est pas le cas ton soucis est au niveau de ta requette.
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
11 févr. 2007 à 01:05
Merci encore ludd mais voici 2 aptures:

http://txiki.free.fr/requete (en lançant la requete directement dans "requete". Le résultat semble beaucoup mieux ici.
puis l'autre, à ta manière:

Clique sur les mots en rouge dans l'image
.
http://txiki.free.fr/requete_1

Merci encore pour ta patience.
0