non affichage du titre lorsque champ mysql vide

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : non affichage du titre lorsque champ mysql vide

[RESOLU] Re: non affichage du titre lorsque champ mysql vide

par amonite » 23 févr. 2012, 08:50

Bonjour,

Merci beaucoup à Thibaud, xTG et shenryu pour votre aide précieuse. Ca fonctionne nikel.

Bonne journée.

A bientôt pour d'autres problème :wink:

Re: non affichage du titre lorsque champ mysql vide

par Shenryu » 20 févr. 2012, 18:37

Salut,

Je pense que Thibaud et xTG ont réglé ton problème mais je tenais à te souligner quelques petites choses supplémentaires.

Tu exécutes deux fois la même requête lignes 12 et 19.. Ca te fera une erreur de moins dans le code :D

Je te conseille d'utiliser les adapters fournis par oscommerce plutôt que d'utiliser le mysql_query classique. Ils sont très en retard là-dessus par rapport à leurs concurrents mais ceux pour mysql sont fonctionnels si tu utilises la V3.

++

Re: non affichage du titre lorsque champ mysql vide

par xTG » 20 févr. 2012, 18:31

Si tu veux utiliser les résultats de la requête faut travailler dans la boucle :
<?php
$sql = 'SELECT * FROM porcelet ORDER BY nom_pct ';

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$affichage_titre = false; // un drapeau pour détecter l'affichage du titre
?>  
 
<table width="100%"><tr><td>

<?php
$req = mysql_query($sql); // exécution de la requête

// Nota : on pourrait tout aussi bien parcourir les éléments d'un tableau ou les fichiers d'un dossier

while ($data = mysql_fetch_assoc($req)) { // parcours des résultats
    if( $affichage_titre === false ){
?>
<table align="center">
<tr><td><center><font size="48px" style="font-family:Vijaya; font-size:100px"><?php if (tep_not_null ($data['nom_pct'])) {echo 'Le porcelet';} ?></font></center></td></tr>
<td><img src="../images/porc.gif" width="400px" /></td>
</tr></table>
<?php
    $affichage_titre = true;
    }
    // début d'une ligne
?>
   
<table class="bgcolor a" ><tr><td>
<table border="0" width="100%">
        <tr>
                <td width="550px" height="30px"><?php echo htmlentities($data['nom_pct']); ?></td>
                <td width="150px"><?php echo htmlentities($data['prix_pct']).'&nbsp;€ <tr>'; ?></td>
        </tr>
    </table>
<table  width="100%">
        <tr>
                <td width="700px"><?php echo htmlentities($data['comm_pct']); ?></td>
        </tr>
</table>

</td></tr></table>

<table border="0" width="100%" class="bord">
        <tr>
                <td height="1px"></td>
        </tr>
</table>

<?php

}

?>


</table>

Re: non affichage du titre lorsque champ mysql vide

par Thibaud C » 20 févr. 2012, 18:25

<table align="center">
<tr><td><center><font size="48px" style="font-family:Vijaya; font-size:100px"><?php if (tep_not_null ($data['nom_pct'])) {echo 'Le porcelet';} ?></font></center></td></tr>
<td><img src="../images/porc.gif" width="400px" /></td>
</tr></table>

Dans ce bout de code, tu fermes deux fois un TR, alors que tu n'en ouvres qu'un seul. Je ne sais pas si ca arrangera tes problèmes d'affichage, mais tu peux commencer par tester ceci :).

Re: non affichage du titre lorsque champ mysql vide

par amonite » 20 févr. 2012, 18:14


<?php
 function tep_not_null($value) {

   if (is_array($value)) {

     if (sizeof($value) > 0) {

       return true;

     } else {

       return false;

     }

   } else {

     if (($value != '') && ($value != 'NULL') && (strlen(trim($value)) > 0)) {

       return true;

     } else {

       return false;

     }

   }

 }
?>

Re: non affichage du titre lorsque champ mysql vide

par Thibaud C » 20 févr. 2012, 18:06

Bonjour,
Pourrais-tu mettre le code de ta fonction tep_not_null($param); ?

non affichage du titre lorsque champ mysql vide

par amonite » 20 févr. 2012, 17:41

Bonjour, j'ai fais ce bout de code pour ne pas afficher un titre lorsque le champ est vide, mais j'ai un soucis, si je mets les requetes au dessus, il me fais des bugs d'affichages.

Si quelqu'un sait comment remplacer cette commande, ou la faire fonctionner, je suis preneur.

Merci d'avance.

Bonne journée

<table align="center">
<tr><td><center><font size="48px" style="font-family:Vijaya; font-size:100px"><?php if (tep_not_null ($data['nom_pct'])) {echo 'Le porcelet';} ?></font></center></td></tr>
<td><img src="../images/porc.gif" width="400px" /></td>
</tr></table>


<?php
$sql = 'SELECT * FROM porcelet ORDER BY nom_pct ';

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

?>  
 
<table width="100%"><tr><td>

<?php 
$req = mysql_query($sql); // exécution de la requête 

// Nota : on pourrait tout aussi bien parcourir les éléments d'un tableau ou les fichiers d'un dossier

while ($data = mysql_fetch_assoc($req)) { // parcours des résultats 
    // début d'une ligne 
?>
   
<table class="bgcolor a" ><tr><td>
<table border="0" width="100%">
	<tr>
		<td width="550px" height="30px"><?php echo htmlentities($data['nom_pct']); ?></td>
		<td width="150px"><?php echo htmlentities($data['prix_pct']).'&nbsp;€ <tr>'; ?></td>
	</tr>
    </table>
<table  width="100%">
	<tr>
		<td width="700px"><?php echo htmlentities($data['comm_pct']); ?></td>
	</tr>
</table>

</td></tr></table>

<table border="0" width="100%" class="bord">
	<tr>
		<td height="1px"></td>
	</tr>
</table>

<?php

}

?>


</table>