[PHP] Empecher champ "null" de s'afficher
Résolu/Fermé
yrkel
-
5 août 2010 à 22:56
IKILIMI Messages postés 2 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 6 septembre 2010 - 6 sept. 2010 à 14:45
IKILIMI Messages postés 2 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 6 septembre 2010 - 6 sept. 2010 à 14:45
A voir également:
- [PHP] Empecher champ "null" de s'afficher
- Afficher mot de passe wifi android - Guide
- Easy php - Télécharger - Divers Web & Internet
- Afficher appdata - Guide
- Afficher mot de passe - Guide
17 réponses
Breub62
Messages postés
2989
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
17 avril 2014
369
6 août 2010 à 10:51
6 août 2010 à 10:51
Avant de les afficher tu peux les mettre dans des variables puis tester s'il sont vide grâce à empty() ou simplement avec if($var=="")...
Merci de ta réponse. Est-ce que tu pourrais m'expliquer d'avantage, comment utiliser cette formule de variables?
Merci
Merci
Breub62
Messages postés
2989
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
17 avril 2014
369
Modifié par Breub62 le 12/08/2010 à 15:26
Modifié par Breub62 le 12/08/2010 à 15:26
Tu as une variable qu'on peux appeler $var. Ensuite tu fais :
ou bien :
Voilà...
;-)
Windows Vista, c'est comme Paris Hilton: c'est bien joli, mais c'est inutile et ça bouffe trop de bytes.
if($var == "") { echo "la variable $ var est vide"; } else { echo $var; }
ou bien :
if(is_empty($var)) { echo "la variable $ var est vide"; } else { echo $var; }
Voilà...
;-)
Windows Vista, c'est comme Paris Hilton: c'est bien joli, mais c'est inutile et ça bouffe trop de bytes.
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
12 août 2010 à 15:26
12 août 2010 à 15:26
Bonjour :)
Je suppose que tu sort tout dans un array?
Et bien tu peux boulcer sur un array, regarde ce code:
ca te parle un peu?
Je suppose que tu sort tout dans un array?
Et bien tu peux boulcer sur un array, regarde ce code:
foreach($resultat as $valeur) //Pour chaque colonne du tableau $resultat, qu'on appellera à chaque fois "$valeur" { if($valeur != "") //Si $valeur (la colonne en cours) est différente de "null" { echo $valeur; //On l'affiche } }
ca te parle un peu?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En fait, voici mon code. Je suppose qu'il ne sera pas correct, alors n'hésitez pas à me donner des conseils, je suis preneur :)
Je vous ai épargné le reste de la page qui est en html. Petite note, La 4ieme ligne : "" $nom=$_GET["categorie"]; "" me permet d'afficher les résultats selon le lien cliqué dans le menu.
Merci de votre aide.
--------------------------------
<?php
// on se connecte à MySQL
$db = mysql_connect('----', '-----', '-----');
$nom=$_GET["categorie"];
// on sélectionne la base
mysql_select_db('zokac_6027858_fiche',$db);
// on crée la requête SQL
$sql = 'SELECT * FROM fiche WHERE Catégorie="'.$nom.'"';
// 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 '<tr><td class="ficheheader" height="20"><table width="468"><tr> <td width="50%"><b>'.$data['nom'].'</b></td><td width="50%"><b>Ajouté le: </b>'.$data['date'].'</td></tr></table></td></tr>';
echo '<tr> <td class="fichecontentup" height="17"></td></tr>';
echo '<tr> <td class="fichecontentmiddle"><table width="468" ><tr> <td width="100" ><img src=../images/pochettes/'.$data['image'].' width="100" height="141"></td>';
echo '<td valign="top"><b>Région:</b> '.$data['region'].'<br>';
echo '<b>Langue:</b> '.$data['langue'].'<br>';
echo '<b>Catégorie: </b>'.$data['Catégorie'].'<br>';
echo '<b>Description: </b>'.$data['description'].'<br>';
echo '<b>Liens :<br> </b><a href="'.$data['lien1'].'" target="_blank">'.$data['lien1'].'</a><br>';
echo '<a href="'.$data['lien2'].'" target="_blank">'.$data['lien2'].'</a><br>';
echo '<a href="'.$data['lien3'].'" target="_blank">'.$data['lien3'].'</a><br>';
echo '<a href="'.$data['lien4'].'" target="_blank">'.$data['lien4'].'</a><br>';
echo '<a href="'.$data['lien5'].'" target="_blank">'.$data['lien5'].'</a><br>';
echo '<a href="'.$data['lien6'].'" target="_blank">'.$data['lien6'].'</a><br>';
echo '<a href="'.$data['lien7'].'" target="_blank">'.$data['lien7'].'</a><br>';
echo '<a href="'.$data['lien8'].'" target="_blank">'.$data['lien8'].'</a><br>';
echo '<a href="'.$data['lien9'].'" target="_blank">'.$data['lien9'].'</a></td></tr></table></td></tr>';
echo '<tr> <td class="fichecontentbottom" height="19"></td></tr>';
echo '<tr> <td height="10"></td></tr>';
}
// on ferme la connexion à mysql
mysql_close();
?>
----------------------------
Je vous ai épargné le reste de la page qui est en html. Petite note, La 4ieme ligne : "" $nom=$_GET["categorie"]; "" me permet d'afficher les résultats selon le lien cliqué dans le menu.
Merci de votre aide.
--------------------------------
<?php
// on se connecte à MySQL
$db = mysql_connect('----', '-----', '-----');
$nom=$_GET["categorie"];
// on sélectionne la base
mysql_select_db('zokac_6027858_fiche',$db);
// on crée la requête SQL
$sql = 'SELECT * FROM fiche WHERE Catégorie="'.$nom.'"';
// 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 '<tr><td class="ficheheader" height="20"><table width="468"><tr> <td width="50%"><b>'.$data['nom'].'</b></td><td width="50%"><b>Ajouté le: </b>'.$data['date'].'</td></tr></table></td></tr>';
echo '<tr> <td class="fichecontentup" height="17"></td></tr>';
echo '<tr> <td class="fichecontentmiddle"><table width="468" ><tr> <td width="100" ><img src=../images/pochettes/'.$data['image'].' width="100" height="141"></td>';
echo '<td valign="top"><b>Région:</b> '.$data['region'].'<br>';
echo '<b>Langue:</b> '.$data['langue'].'<br>';
echo '<b>Catégorie: </b>'.$data['Catégorie'].'<br>';
echo '<b>Description: </b>'.$data['description'].'<br>';
echo '<b>Liens :<br> </b><a href="'.$data['lien1'].'" target="_blank">'.$data['lien1'].'</a><br>';
echo '<a href="'.$data['lien2'].'" target="_blank">'.$data['lien2'].'</a><br>';
echo '<a href="'.$data['lien3'].'" target="_blank">'.$data['lien3'].'</a><br>';
echo '<a href="'.$data['lien4'].'" target="_blank">'.$data['lien4'].'</a><br>';
echo '<a href="'.$data['lien5'].'" target="_blank">'.$data['lien5'].'</a><br>';
echo '<a href="'.$data['lien6'].'" target="_blank">'.$data['lien6'].'</a><br>';
echo '<a href="'.$data['lien7'].'" target="_blank">'.$data['lien7'].'</a><br>';
echo '<a href="'.$data['lien8'].'" target="_blank">'.$data['lien8'].'</a><br>';
echo '<a href="'.$data['lien9'].'" target="_blank">'.$data['lien9'].'</a></td></tr></table></td></tr>';
echo '<tr> <td class="fichecontentbottom" height="19"></td></tr>';
echo '<tr> <td height="10"></td></tr>';
}
// on ferme la connexion à mysql
mysql_close();
?>
----------------------------
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
Modifié par Apatik le 12/08/2010 à 16:18
Modifié par Apatik le 12/08/2010 à 16:18
Bon, voila. J'ai repris ton code à partir du commentaire "on affiche". Je suppose que c'est les liens qui peuvent être vides, donc j'y ai intégré mon bout de code. Est-ce que tu comprend ce qu'il se passe?
EDIT: Mon code marche mais est faux, j'ai zappé en milieu du tien que tu affichais certaines données suivant un autre format. Il faut faire comme l'a dis plus haut Breub62 pour chaque ligne.
Live free, learn free, help free, Happy Hacking!
Plus que tout en informatique, l'erreur est humaine.
<tr> <td class="ficheheader" height="20"> <table width="468"> <tr> <td width="50%"> <b>'.$data['nom'].'</b> </td>< td width="50%"> <b>Ajouté le: </b>'.$data['date'].' </td>< /tr> </table> </td> </tr>'; foreach($data as $valeur) //Pour chaque colonne du tableau $data, qu'on appellera à chaque fois "$valeur" { if($valeur != "") //Si $valeur (la colonne en cours) est différente de "null" { echo '<a href="$valeur" target="_blank">$valeur</a><br>'; //On l'affiche } } echo '<tr> <td class="fichecontentbottom" height="19"></td></tr>'; echo '<tr> <td height="10"></td></tr>
EDIT: Mon code marche mais est faux, j'ai zappé en milieu du tien que tu affichais certaines données suivant un autre format. Il faut faire comme l'a dis plus haut Breub62 pour chaque ligne.
Live free, learn free, help free, Happy Hacking!
Plus que tout en informatique, l'erreur est humaine.
J'ai modifié mon code. J'y ai ajouté des variables.
Cependant, ce que je voudrais c'est que dès qu'un "lien" est vide. cela arrête de vérifier les autres liens dessous, et que ca aille tout de suite à la ligne sous le lien 9.
Cependant, avec le "break" cela empêche tout le reste de s'afficher, même de faire une autre boucle avec un autre enregistrement...
Vous auriez une solution?
<?php
// on se connecte à MySQL
$db = mysql_connect('------', '--------', '---------');
$nom=$_GET["categorie"];
// on sélectionne la base
mysql_select_db('zokac_6027858_fiche',$db);
// on crée la requête SQL
$sql = 'SELECT * FROM fiche WHERE Catégorie="'.$nom.'"';
// on déclare les variables
$var1=$_GET["lien1"];
$var2=$_GET["lien2"];
$var3=$_GET["lien3"];
$var4=$_GET["lien4"];
$var5=$_GET["lien5"];
$var6=$_GET["lien6"];
$var7=$_GET["lien7"];
$var8=$_GET["lien8"];
$var9=$_GET["lien9"];
// 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 '<tr><td class="ficheheader" height="20"><table width="468"><tr> <td width="50%"><b>'.$data['nom'].'</b></td><td width="50%"><b>Ajouté le: </b>'.$data['date'].'</td></tr></table></td></tr>';
echo '<tr> <td class="fichecontentup" height="17"></td></tr>';
echo '<tr> <td class="fichecontentmiddle"><table width="468" ><tr> <td width="100" ><img src=../images/pochettes/'.$data['image'].' width="100" height="141"></td>';
echo '<td valign="top"><b>Région:</b> '.$data['region'].'<br>';
echo '<b>Langue:</b> '.$data['langue'].'<br>';
echo '<b>Catégorie: </b>'.$data['Catégorie'].'<br>';
echo '<b>Description: </b>'.$data['description'].'<br>';
echo '<b>Liens :<br> </b><a href="'.$data['lien1'].'" target="_blank">'.$data['lien1'].'</a><br>';
if(is_empty($var2))
{
break;
}
else
{
echo '<a href="'.$data['lien2'].'" target="_blank">'.$data['lien2'].'</a><br>';
}
if(is_empty($var3))
{
break;
}
else
{
echo '<a href="'.$data['lien3'].'" target="_blank">'.$data['lien3'].'</a><br>';
}
if(is_empty($var4))
{
break;
}
else
{
echo '<a href="'.$data['lien4'].'" target="_blank">'.$data['lien4'].'</a><br>';
} if(is_empty($var5))
{
break;
}
else
{
echo '<a href="'.$data['lien5'].'" target="_blank">'.$data['lien5'].'</a><br>';
} if(is_empty($var6))
{
break;
}
else
{
echo '<a href="'.$data['lien6'].'" target="_blank">'.$data['lien6'].'</a><br>';
} if(is_empty($var7))
{
break;
}
else
{
echo '<a href="'.$data['lien7'].'" target="_blank">'.$data['lien7'].'</a><br>';
} if(is_empty($var8))
{
break;
}
else
{
echo '<a href="'.$data['lien8'].'" target="_blank">'.$data['lien8'].'</a><br>';
} if(is_empty($var9))
{
break;
}
else
{
echo '<a href="'.$data['lien9'].'" target="_blank">'.$data['lien9'].'</a><br>';
}
echo '</td></tr></table></td></tr>';
echo '<tr> <td class="fichecontentbottom" height="19"></td></tr>';
echo '<tr> <td height="10"></td></tr>';
}
// on ferme la connexion à mysql
mysql_close();
?>
Cependant, ce que je voudrais c'est que dès qu'un "lien" est vide. cela arrête de vérifier les autres liens dessous, et que ca aille tout de suite à la ligne sous le lien 9.
Cependant, avec le "break" cela empêche tout le reste de s'afficher, même de faire une autre boucle avec un autre enregistrement...
Vous auriez une solution?
<?php
// on se connecte à MySQL
$db = mysql_connect('------', '--------', '---------');
$nom=$_GET["categorie"];
// on sélectionne la base
mysql_select_db('zokac_6027858_fiche',$db);
// on crée la requête SQL
$sql = 'SELECT * FROM fiche WHERE Catégorie="'.$nom.'"';
// on déclare les variables
$var1=$_GET["lien1"];
$var2=$_GET["lien2"];
$var3=$_GET["lien3"];
$var4=$_GET["lien4"];
$var5=$_GET["lien5"];
$var6=$_GET["lien6"];
$var7=$_GET["lien7"];
$var8=$_GET["lien8"];
$var9=$_GET["lien9"];
// 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 '<tr><td class="ficheheader" height="20"><table width="468"><tr> <td width="50%"><b>'.$data['nom'].'</b></td><td width="50%"><b>Ajouté le: </b>'.$data['date'].'</td></tr></table></td></tr>';
echo '<tr> <td class="fichecontentup" height="17"></td></tr>';
echo '<tr> <td class="fichecontentmiddle"><table width="468" ><tr> <td width="100" ><img src=../images/pochettes/'.$data['image'].' width="100" height="141"></td>';
echo '<td valign="top"><b>Région:</b> '.$data['region'].'<br>';
echo '<b>Langue:</b> '.$data['langue'].'<br>';
echo '<b>Catégorie: </b>'.$data['Catégorie'].'<br>';
echo '<b>Description: </b>'.$data['description'].'<br>';
echo '<b>Liens :<br> </b><a href="'.$data['lien1'].'" target="_blank">'.$data['lien1'].'</a><br>';
if(is_empty($var2))
{
break;
}
else
{
echo '<a href="'.$data['lien2'].'" target="_blank">'.$data['lien2'].'</a><br>';
}
if(is_empty($var3))
{
break;
}
else
{
echo '<a href="'.$data['lien3'].'" target="_blank">'.$data['lien3'].'</a><br>';
}
if(is_empty($var4))
{
break;
}
else
{
echo '<a href="'.$data['lien4'].'" target="_blank">'.$data['lien4'].'</a><br>';
} if(is_empty($var5))
{
break;
}
else
{
echo '<a href="'.$data['lien5'].'" target="_blank">'.$data['lien5'].'</a><br>';
} if(is_empty($var6))
{
break;
}
else
{
echo '<a href="'.$data['lien6'].'" target="_blank">'.$data['lien6'].'</a><br>';
} if(is_empty($var7))
{
break;
}
else
{
echo '<a href="'.$data['lien7'].'" target="_blank">'.$data['lien7'].'</a><br>';
} if(is_empty($var8))
{
break;
}
else
{
echo '<a href="'.$data['lien8'].'" target="_blank">'.$data['lien8'].'</a><br>';
} if(is_empty($var9))
{
break;
}
else
{
echo '<a href="'.$data['lien9'].'" target="_blank">'.$data['lien9'].'</a><br>';
}
echo '</td></tr></table></td></tr>';
echo '<tr> <td class="fichecontentbottom" height="19"></td></tr>';
echo '<tr> <td height="10"></td></tr>';
}
// on ferme la connexion à mysql
mysql_close();
?>
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
13 août 2010 à 22:58
13 août 2010 à 22:58
Elémentaire mon cher :)
C'est quoi tes "$_GET["lien1"]"? Tu leur donne une valeur où?
Faudrait pas plutôt faire ton "pack de déclaration de variables" après la requête, et sous cette forme?
C'est quoi tes "$_GET["lien1"]"? Tu leur donne une valeur où?
Faudrait pas plutôt faire ton "pack de déclaration de variables" après la requête, et sous cette forme?
$var2=$data["lien2"];
J'avais réalisé ceci plus tôt dans la journée, mais même après avoir essayé, ça ne fonctionne pas plus. Ça n'Affiche que le premier résultat (qui n'est pas en condition IF)
Je crois que le BREAK cause probleme. :S
Je crois que le BREAK cause probleme. :S
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
Modifié par Apatik le 14/08/2010 à 01:11
Modifié par Apatik le 14/08/2010 à 01:11
Bon alors.. petite recherche, et lecture de la doc: http://www.manuelphp.com/php/control-structures.break.php
Ne s'applique donc pas à une structure if
La solution? Faire un adressage de ce type pour pouvoir boucler sur un tableau
Je sais pas si tu connais la commande "foreach". En fait ça veux dire "pour chaque colonne du tableau $var, on l'appellera $lien, et on lui appliquera le traitement entre les crochets". Et le break permet de sortir des crochets. Bien sur, foreach traite les données par ordre croissant :)
Live free, learn free, help free, Happy Hacking!
Plus que tout en informatique, l'erreur est humaine.
L'instruction break permet de sortir d'une structure for , foreach , while , do-while ou switch .
Ne s'applique donc pas à une structure if
La solution? Faire un adressage de ce type pour pouvoir boucler sur un tableau
//adressage type $var['1'] = $data['lien1']; $var['2'] = $data['lien2']; //etc... //boucle d'affichage foreach($var as $lien) { if(!empty($lien)) { echo "tagada tsoin tsoin $lien"; } else { break; } }
Je sais pas si tu connais la commande "foreach". En fait ça veux dire "pour chaque colonne du tableau $var, on l'appellera $lien, et on lui appliquera le traitement entre les crochets". Et le break permet de sortir des crochets. Bien sur, foreach traite les données par ordre croissant :)
Live free, learn free, help free, Happy Hacking!
Plus que tout en informatique, l'erreur est humaine.
J'ai essayé ce que tu m'as dis. J'ai fouillé un peu sur le site que tu m'as fournis, cependant, ca ne fonctionne pas. En fait, la page s'affiche tout correctement, mais les liens n'apparaissent pas.
J'ai enlevé le ! avant le empty, alors là, la phrase "tagada tsoin tsoin" s'affichait, mais pas le lien...
C'est comme si on avait pas réussi à aller chercher les données dans la base de donnée ou si echo "$lien"; ne fonctionne pas :S.
Merci de tout le temps que tu prends pour moi.
J'ai enlevé le ! avant le empty, alors là, la phrase "tagada tsoin tsoin" s'affichait, mais pas le lien...
C'est comme si on avait pas réussi à aller chercher les données dans la base de donnée ou si echo "$lien"; ne fonctionne pas :S.
Merci de tout le temps que tu prends pour moi.
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
16 août 2010 à 08:28
16 août 2010 à 08:28
Je jette un oeil dans la journée..
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
16 août 2010 à 12:08
16 août 2010 à 12:08
Bon alors.. On va commencer par reprendre le coté SQL. Essaie ça:
$db = mysql_connect('------', '--------', '---------'); mysql_select_db('zokac_6027858_fiche',$db); $sql = 'SELECT * FROM fiche WHERE Catégorie="/*remplis ici manuellement */"'; $req = mysql_query($sql) or die(mysql_error()); while($data = mysql_fetch_assoc($req)) { echo $data; }
Salut
Si je mets le code tel quel (en ajoutant les renseignements necessaires")
et pas le reste du code, ce m'indique "arrayarrayarrayarray"
Si je remplace { echo $data; } par le code pour afficher toutes les données, en utilisant la fonction avec le "$var" et le "foreach" tout s'affiche correctement, sauf les liens qui ne s'affiche pas.
Si je mets le code tel quel (en ajoutant les renseignements necessaires")
et pas le reste du code, ce m'indique "arrayarrayarrayarray"
Si je remplace { echo $data; } par le code pour afficher toutes les données, en utilisant la fonction avec le "$var" et le "foreach" tout s'affiche correctement, sauf les liens qui ne s'affiche pas.
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
19 août 2010 à 14:45
19 août 2010 à 14:45
Tu parle du code que t'as mis en haut? C'est tes données "en dur" qui s'affichent.. normal.
remplace le
par
ça te met quoi?
remplace le
while($data = mysql_fetch_assoc($req)) { echo $data; }
par
i = 0; while($data = mysql_fetch_assoc($req)) { echo $data[$i]; $i++; }
ça te met quoi?
ca ne me mets absolument rien.
Est-ce que je dois faire afficher mes données avec la boucle foreach, ou je mets seulement le code que tu m'as indiqué?
Est-ce que je dois faire afficher mes données avec la boucle foreach, ou je mets seulement le code que tu m'as indiqué?
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
19 août 2010 à 14:59
19 août 2010 à 14:59
Bon.. et ça?
Pour le moment, laisse tomber le code du haut, on y reviendra quand on aura réussi à bien récupérer les données de ta db.. Parce que c'est pas folichon pour le moment..
T'es sur que t'as quelque chose dans ta table? Juste comme ça...?
$db = mysql_connect('------', '--------', '---------'); mysql_select_db('zokac_6027858_fiche',$db); $sql = 'SELECT * FROM fiche WHERE Catégorie="/*remplis ici manuellement */"'; $req = mysql_query($sql) or die(mysql_error()); while($data = mysql_fetch_array($req)) { echo $data; }
Pour le moment, laisse tomber le code du haut, on y reviendra quand on aura réussi à bien récupérer les données de ta db.. Parce que c'est pas folichon pour le moment..
T'es sur que t'as quelque chose dans ta table? Juste comme ça...?
il m'affiche seulement arrayarrayarrayarray
Et oui, j'ai des données dans ma table. Car tout s'affiche très bien lorsque je mets le code que j'ai indiqué dans mon premier message.
Le problème est que dans mon code, à chaque data lien, si le lien est vide, il m'affiche un saut de ligne <br> puisque j'ai mis ca dans mon code. Mais je n'ai pas le choix de le mettre, sinon, les liens s'affichent un à la suite de l'autre :S
Et oui, j'ai des données dans ma table. Car tout s'affiche très bien lorsque je mets le code que j'ai indiqué dans mon premier message.
Le problème est que dans mon code, à chaque data lien, si le lien est vide, il m'affiche un saut de ligne <br> puisque j'ai mis ca dans mon code. Mais je n'ai pas le choix de le mettre, sinon, les liens s'affichent un à la suite de l'autre :S
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
19 août 2010 à 15:22
19 août 2010 à 15:22
On parle dans le vide là.. On dirais que j'essaie de résoudre un problème qui n'existe pas, ou plus. Colle moi tout ton code, et dis moi ce qui ne va pas.
<html>
<head>
<link title="feuille" type="text/css" rel="stylesheet" href="feuille.css">
<title>wii-wbi</title>
</head>
<body topmargin="0" leftmargin="0" >
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" width="468" >
<tr>
<td width="468" align="left" valign="top">
<table border="0" cellpadding="0" cellspacing="0">
<?php
// on se connecte à MySQL
$db = mysql_connect('----------', '----------', ------------');
$nom=$_GET["categorie"];
// on sélectionne la base
mysql_select_db('zokac_6027858_fiche',$db);
// on crée la requête SQL
$sql = 'SELECT * FROM fiche WHERE Catégorie="'.$nom.'"';
// 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 '<tr><td class="ficheheader" height="20"><table width="468"><tr> <td width="50%"><b>'.$data['nom'].'</b></td><td width="50%"><b>Ajouté le: </b>'.$data['date'].'</td></tr></table></td></tr>';
echo '<tr> <td class="fichecontentup" height="17"></td></tr>';
echo '<tr> <td class="fichecontentmiddle"><table width="468" ><tr> <td width="100" ><img src=../images/pochettes/'.$data['image'].' width="100" height="141"></td>';
echo '<td valign="top"><b>Région:</b> '.$data['region'].'<br>';
echo '<b>Langue:</b> '.$data['langue'].'<br>';
echo '<b>Catégorie: </b>'.$data['Catégorie'].'<br>';
echo '<b>Description: </b>'.$data['description'].'<br>';
echo '<b>Liens :<br> </b><a href="'.$data['lien1'].'" target="_blank">'.$data['lien1'].'</a><br>';
echo '<a href="'.$data['lien2'].'" target="_blank">'.$data['lien2'].'</a><br>';
echo '<a href="'.$data['lien3'].'" target="_blank">'.$data['lien3'].'</a><br>';
echo '<a href="'.$data['lien4'].'" target="_blank">'.$data['lien4'].'</a><br>';
echo '<a href="'.$data['lien5'].'" target="_blank">'.$data['lien5'].'</a><br>';
echo '<a href="'.$data['lien6'].'" target="_blank">'.$data['lien6'].'</a><br>';
echo '<a href="'.$data['lien7'].'" target="_blank">'.$data['lien7'].'</a><br>';
echo '<a href="'.$data['lien8'].'" target="_blank">'.$data['lien8'].'</a><br>';
echo '<a href="'.$data['lien9'].'" target="_blank">'.$data['lien9'].'</a><br>';
echo '</td></tr></table></td></tr>';
echo '<tr> <td class="fichecontentbottom" height="19"></td></tr>';
echo '<tr> <td height="10"></td></tr>';
}
// on ferme la connexion à mysql
mysql_close();
?>
</table>
</td>
</tr>
</table>
</div>
</body>
</html>
+++++++++++++++++++++++++++++++++
Ça c'est mon code original.
Avec ça tout fonctionne. Tout s'affiche.
$nom=$_GET["categorie"];
$sql = 'SELECT * FROM fiche WHERE Catégorie="'.$nom.'"';
(Dans mon menu, j'ai toutes mes catégories. Lorsque je clique sur l'une d'elles. ça dit a mon code de n'afficher que les données qui sont dans cette catégorie) Tout cela fonctionne.
Le problème est à ce niveau.
echo '<b>Liens :<br> </b><a href="'.$data['lien1'].'" target="_blank">'.$data['lien1'].'</a><br>';
echo '<a href="'.$data['lien2'].'" target="_blank">'.$data['lien2'].'</a><br>';
echo '<a href="'.$data['lien3'].'" target="_blank">'.$data['lien3'].'</a><br>';
echo '<a href="'.$data['lien4'].'" target="_blank">'.$data['lien4'].'</a><br>';
echo '<a href="'.$data['lien5'].'" target="_blank">'.$data['lien5'].'</a><br>';
echo '<a href="'.$data['lien6'].'" target="_blank">'.$data['lien6'].'</a><br>';
echo '<a href="'.$data['lien7'].'" target="_blank">'.$data['lien7'].'</a><br>';
echo '<a href="'.$data['lien8'].'" target="_blank">'.$data['lien8'].'</a><br>';
echo '<a href="'.$data['lien9'].'" target="_blank">'.$data['lien9'].'</a><br>';
Il arrive parfois que les 10 "liens" soient remplis, par contre il se peut que seulement quelques uns soient remplis.
Cependant, si rendu à 5, il n'y a plus rien dans ma table, rien ne s'affiche, avec raison, mais le <br> s'affiche tout de même, ce qui fait que dans la page générée, il y a des espaces vides. Si j'ai 9 liens, ça ne fait pas un grand changement, mais s'il n'y en a qu'un, il y a un grand espace vide...
Je voudrais seulement trouver un moyen afin d'empecher les "echo" de liens vides de s'afficher et que le script se rende immédiatement à
echo '</td></tr></table></td></tr>';
echo '<tr> <td class="fichecontentbottom" height="19"></td></tr>';
echo '<tr> <td height="10"></td></tr>';
}
À noter que s'il n'y a rien dans un lien, tous les liens plus bas sont vides aussi. exemple : Il ne peut rien y avoir dans le code 8 s'il n'y a rien dans le 5-6-7 etc...
<head>
<link title="feuille" type="text/css" rel="stylesheet" href="feuille.css">
<title>wii-wbi</title>
</head>
<body topmargin="0" leftmargin="0" >
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" width="468" >
<tr>
<td width="468" align="left" valign="top">
<table border="0" cellpadding="0" cellspacing="0">
<?php
// on se connecte à MySQL
$db = mysql_connect('----------', '----------', ------------');
$nom=$_GET["categorie"];
// on sélectionne la base
mysql_select_db('zokac_6027858_fiche',$db);
// on crée la requête SQL
$sql = 'SELECT * FROM fiche WHERE Catégorie="'.$nom.'"';
// 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 '<tr><td class="ficheheader" height="20"><table width="468"><tr> <td width="50%"><b>'.$data['nom'].'</b></td><td width="50%"><b>Ajouté le: </b>'.$data['date'].'</td></tr></table></td></tr>';
echo '<tr> <td class="fichecontentup" height="17"></td></tr>';
echo '<tr> <td class="fichecontentmiddle"><table width="468" ><tr> <td width="100" ><img src=../images/pochettes/'.$data['image'].' width="100" height="141"></td>';
echo '<td valign="top"><b>Région:</b> '.$data['region'].'<br>';
echo '<b>Langue:</b> '.$data['langue'].'<br>';
echo '<b>Catégorie: </b>'.$data['Catégorie'].'<br>';
echo '<b>Description: </b>'.$data['description'].'<br>';
echo '<b>Liens :<br> </b><a href="'.$data['lien1'].'" target="_blank">'.$data['lien1'].'</a><br>';
echo '<a href="'.$data['lien2'].'" target="_blank">'.$data['lien2'].'</a><br>';
echo '<a href="'.$data['lien3'].'" target="_blank">'.$data['lien3'].'</a><br>';
echo '<a href="'.$data['lien4'].'" target="_blank">'.$data['lien4'].'</a><br>';
echo '<a href="'.$data['lien5'].'" target="_blank">'.$data['lien5'].'</a><br>';
echo '<a href="'.$data['lien6'].'" target="_blank">'.$data['lien6'].'</a><br>';
echo '<a href="'.$data['lien7'].'" target="_blank">'.$data['lien7'].'</a><br>';
echo '<a href="'.$data['lien8'].'" target="_blank">'.$data['lien8'].'</a><br>';
echo '<a href="'.$data['lien9'].'" target="_blank">'.$data['lien9'].'</a><br>';
echo '</td></tr></table></td></tr>';
echo '<tr> <td class="fichecontentbottom" height="19"></td></tr>';
echo '<tr> <td height="10"></td></tr>';
}
// on ferme la connexion à mysql
mysql_close();
?>
</table>
</td>
</tr>
</table>
</div>
</body>
</html>
+++++++++++++++++++++++++++++++++
Ça c'est mon code original.
Avec ça tout fonctionne. Tout s'affiche.
$nom=$_GET["categorie"];
$sql = 'SELECT * FROM fiche WHERE Catégorie="'.$nom.'"';
(Dans mon menu, j'ai toutes mes catégories. Lorsque je clique sur l'une d'elles. ça dit a mon code de n'afficher que les données qui sont dans cette catégorie) Tout cela fonctionne.
Le problème est à ce niveau.
echo '<b>Liens :<br> </b><a href="'.$data['lien1'].'" target="_blank">'.$data['lien1'].'</a><br>';
echo '<a href="'.$data['lien2'].'" target="_blank">'.$data['lien2'].'</a><br>';
echo '<a href="'.$data['lien3'].'" target="_blank">'.$data['lien3'].'</a><br>';
echo '<a href="'.$data['lien4'].'" target="_blank">'.$data['lien4'].'</a><br>';
echo '<a href="'.$data['lien5'].'" target="_blank">'.$data['lien5'].'</a><br>';
echo '<a href="'.$data['lien6'].'" target="_blank">'.$data['lien6'].'</a><br>';
echo '<a href="'.$data['lien7'].'" target="_blank">'.$data['lien7'].'</a><br>';
echo '<a href="'.$data['lien8'].'" target="_blank">'.$data['lien8'].'</a><br>';
echo '<a href="'.$data['lien9'].'" target="_blank">'.$data['lien9'].'</a><br>';
Il arrive parfois que les 10 "liens" soient remplis, par contre il se peut que seulement quelques uns soient remplis.
Cependant, si rendu à 5, il n'y a plus rien dans ma table, rien ne s'affiche, avec raison, mais le <br> s'affiche tout de même, ce qui fait que dans la page générée, il y a des espaces vides. Si j'ai 9 liens, ça ne fait pas un grand changement, mais s'il n'y en a qu'un, il y a un grand espace vide...
Je voudrais seulement trouver un moyen afin d'empecher les "echo" de liens vides de s'afficher et que le script se rende immédiatement à
echo '</td></tr></table></td></tr>';
echo '<tr> <td class="fichecontentbottom" height="19"></td></tr>';
echo '<tr> <td height="10"></td></tr>';
}
À noter que s'il n'y a rien dans un lien, tous les liens plus bas sont vides aussi. exemple : Il ne peut rien y avoir dans le code 8 s'il n'y a rien dans le 5-6-7 etc...
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
19 août 2010 à 15:44
19 août 2010 à 15:44
Ok. J'ai repris la boucle que je t'avais donné au dessus en modifiant 2-3 bricoles.. Voila ton nouveau code. A priori, tu n'as plus qu'a remettre les identifiants pour te connecter à la db.
<html> <head> <link title="feuille" type="text/css" rel="stylesheet" href="feuille.css"> <title>wii-wbi</title> </head> <body topmargin="0" leftmargin="0" > <div align="center"> <table border="0" cellpadding="0" cellspacing="0" width="468" > <tr> <td width="468" align="left" valign="top"> <table border="0" cellpadding="0" cellspacing="0"> <?php // on se connecte à MySQL $db = mysql_connect('----------', '----------', ------------'); $nom=$_GET["categorie"]; // on sélectionne la base mysql_select_db('zokac_6027858_fiche',$db); // on crée la requête SQL $sql = 'SELECT * FROM fiche WHERE Catégorie="'.$nom.'"'; // 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 '<tr><td class="ficheheader" height="20"><table width="468"><tr> <td width="50%"><b>'.$data['nom'].'</b></td><td width="50%"><b>Ajouté le: </b>'.$data['date'].'</td></tr></table></td></tr>'; echo '<tr> <td class="fichecontentup" height="17"></td></tr>'; echo '<tr> <td class="fichecontentmiddle"><table width="468" ><tr> <td width="100" ><img src=../images/pochettes/'.$data['image'].' width="100" height="141"></td>'; echo '<td valign="top"><b>Région:</b> '.$data['region'].'<br>'; echo '<b>Langue:</b> '.$data['langue'].'<br>'; echo '<b>Catégorie: </b>'.$data['Catégorie'].'<br>'; echo '<b>Description: </b>'.$data['description'].'<br>'; echo '<b>Liens :<br> </b><a href="'.$data['lien1'].'" target="_blank">'.$data['lien1'].'</a><br>'; //adressage type $var['1'] = $data['lien1']; $var['2'] = $data['lien2']; $var['3'] = $data['lien3']; $var['4'] = $data['lien4']; $var['5'] = $data['lien5']; $var['6'] = $data['lien6']; $var['7'] = $data['lien7']; $var['8'] = $data['lien8']; $var['9'] = $data['lien9']; //boucle d'affichage foreach($var as $lien) { if(!empty($lien)) { echo '<a href="'.$lien.'" target="_blank">'.$lien.'</a><br>'; } else { break; } } /* echo '<a href="'.$data['lien2'].'" target="_blank">'.$data['lien2'].'</a><br>'; echo '<a href="'.$data['lien3'].'" target="_blank">'.$data['lien3'].'</a><br>'; echo '<a href="'.$data['lien4'].'" target="_blank">'.$data['lien4'].'</a><br>'; echo '<a href="'.$data['lien5'].'" target="_blank">'.$data['lien5'].'</a><br>'; echo '<a href="'.$data['lien6'].'" target="_blank">'.$data['lien6'].'</a><br>'; echo '<a href="'.$data['lien7'].'" target="_blank">'.$data['lien7'].'</a><br>'; echo '<a href="'.$data['lien8'].'" target="_blank">'.$data['lien8'].'</a><br>'; echo '<a href="'.$data['lien9'].'" target="_blank">'.$data['lien9'].'</a><br>'; echo '</td></tr></table></td></tr>'; echo '<tr> <td class="fichecontentbottom" height="19"></td></tr>'; echo '<tr> <td height="10"></td></tr>'; */ } // on ferme la connexion à mysql mysql_close(); ?> </table> </td> </tr> </table> </div> </body> </html>
Merci beaucoup. Maintenant tout fonctionne à merveille :)
Il y avait 2 erreurs dans ton code, que j'ai pu corriger.
echo '</td></tr></table></td></tr>';
echo '<tr> <td class="fichecontentbottom" height="19"></td></tr>';
echo '<tr> <td height="10"></td></tr>';
Doit être affiché, donc je les ai enlevé d'entre les "commentaires"
Et j'ai aussi enlevé <a href="'.$data['lien1'].'" target="_blank">'.$data['lien1'].'</a><br> puisqu'il se réaffichait dans les liens.
Merci de tout le temps que tu as passé à m'aider, c'est très apprécié.
Il y avait 2 erreurs dans ton code, que j'ai pu corriger.
echo '</td></tr></table></td></tr>';
echo '<tr> <td class="fichecontentbottom" height="19"></td></tr>';
echo '<tr> <td height="10"></td></tr>';
Doit être affiché, donc je les ai enlevé d'entre les "commentaires"
Et j'ai aussi enlevé <a href="'.$data['lien1'].'" target="_blank">'.$data['lien1'].'</a><br> puisqu'il se réaffichait dans les liens.
Merci de tout le temps que tu as passé à m'aider, c'est très apprécié.
Apatik
Messages postés
5304
Date d'inscription
mercredi 28 janvier 2009
Statut
Contributeur
Dernière intervention
29 mai 2016
782
19 août 2010 à 16:06
19 août 2010 à 16:06
C'est avec plaisir ;)
IKILIMI
Messages postés
2
Date d'inscription
lundi 6 septembre 2010
Statut
Membre
Dernière intervention
6 septembre 2010
6 sept. 2010 à 14:45
6 sept. 2010 à 14:45
bonjour yrkel DESOLER DE CETTE INTRUSION JE CONNAIS PAS LE FONCTIONNEMENT DU SITE POUR T ENVOYER UN POSTE EN PRIVER ALORS voila j ai vue dans un poste que tu avais resolu un probleme de fix rutime error 6002 pourais TU sil te plais m envoyer un fix qui resoudra mon petit grand probleme je te remerci par avance voici mon mail K.KILI@VOILA.FR ENCORE PARDON ET MERCI