Page 1 sur 1

Récupération de variables vide et affichage

Posté : 09 avr. 2011, 15:28
par piotrowski-s
Bonjour à tous, j'ai une base de donnée qui contient une table récupérant les pages web pour que l'administrateur puisse les modifier.
elle contient divers enregistrement, dont une id, un titre, un nom de catégorie, et le contenue de la page entre autre.
J'ai un fichier qui génère le menu pour la navigation.
<?
//insertion de fichier de configuration
require("_include/config/config.inc.php");
// connection et selection de la base ce donnée
$connect=mysql_connect($host,$login,$pass) or die ("Connection impossible");
mysql_select_db($base,$connect) or die ("selection impossible");
?>
<?php 
echo "&nbsp;&nbsp;&nbsp;<a href=index.php?page=accueil>Accueil</a><br>";

// on crée la requête SQL
$sql = 'SELECT name_category FROM contenu';

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
    {
    // on affiche les informations de l'enregistrement en cours
echo "&nbsp;&nbsp;&nbsp;<a href='index.php?page=" .$data['name_category']. "'>" .$data['name_category']. "</a><br>";  
    }

// on ferme la connexion à mysql
mysql_close();


 
?>
Or certaines pages ont un nom de catégorie vide et étant donné qu'elles ne doivent pas apparaitre dans le menu car ce sont des sortes de "sous pages".
Mon problème c'est que dans la table, l'enregistrement est vide "ce qui est normal car c'est ce que je veux", mais le menu génère en suivant le code que j'ai fait, cela dit il met des lignes vides et j'aimerais pouvoir les supprimer, cela dit je ne sais pas du tout comment faire.
voila le script en action: http://www.bylucian.com/
comme vous pouvez le constater sous les dernières lignes du menus apparaissent des espaces vide que je souhaiterais supprimer purement et simplement..
Pouvez vous m'aider? d'avance merci

Re: Récupération de variables vide et affichage

Posté : 09 avr. 2011, 16:05
par xTG
Modifier la requête ?
Ajouter un : WHERE categorie IS NOT NULL

Re: Récupération de variables vide et affichage

Posté : 09 avr. 2011, 16:07
par piotrowski-s
Wow, c'étais aussi simple que ça, je connaissais ce type de requête avec le WHERe, mais le débutant que je suis n'y a pas songé, d'avance merci car c'est un vrai casse tête, j'avais songé avec un if isset... enfin une prise de tête depuis ce matin. Merci beaucoup de votre aide... je m'étais inscrit en 2008 sur ce site pour un problème d'include d'un livre d'or déjà tout prêt mais je n'ai débuté à "coder" véritablement que la mois dernier ^^ enfin merci beaucoup.

Re: Récupération de variables vide et affichage

Posté : 09 avr. 2011, 17:13
par piotrowski-s
Avec amertume je ne comprends pas, la requête est pourtant la bonne
$sql = 'SELECT *
           FROM contenu 
           WHERE name_category IS NOT NULL';
Cela dit, il m'affiche quand meme les lignes vides. regardez:
http://www.bylucian.com/fr/

D'avance merci pour votre aide.

Re: Récupération de variables vide et affichage

Posté : 09 avr. 2011, 20:05
par piotrowski-s
Up :?:

Re: Récupération de variables vide et affichage

Posté : 09 avr. 2011, 21:42
par piotrowski-s
Bon après de multiples test, je suis en train de désespérer :s
<meta name="generator" content="Namo WebEditor(Trial)">
<?
//insertion de fichier de configuration
require("_include/config/config.inc.php");
// connection et selection de la base ce donnée
$connect=mysql_connect($host,$login,$pass) or die ("Connection impossible");
mysql_select_db($base,$connect) or die ("selection impossible");
?>
<?php 
echo "&nbsp;&nbsp;&nbsp;<a href=index.php?page=accueil>Accueil</a><br>";

// on crée la requête SQL
$sql = 'SELECT name_category 
           FROM contenu 
           WHERE name_category is not null';

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
    {
    // on affiche les informations de l'enregistrement en cours
echo "&nbsp;&nbsp;&nbsp;<a href='index.php?page=" .$data['name_category']. "'>" .$data['name_category']. "</a><br>";  
    }

// on ferme la connexion à mysql
mysql_close();


 
?>
j'ai essayé avec is null, ca affiche rien. et quand je vais is not null ca sélectionne tout de meme le tout.
après j'ai fais plusieurs autres essais, et comme il s'agit d'une chaine de caractères j'ai fait ça
$sql = "SELECT name_category 
           FROM contenu 
           WHERE name_category != ''";
et la c'est niquel.

Merci à tous

Re: Récupération de variables vide et affichage

Posté : 09 avr. 2011, 23:13
par xTG
Eh beh tout simplement que tes champs ne sont pas null mais vides...
Permettre un null ne mettra nul que si tu ne remplis pas le champs, donc si tu l'insères dans une requête insert avec une autre valeur que la constante null il sera rempli.