probleme d'affichage if/else conflit?

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 : probleme d'affichage if/else conflit?

Re: probleme d'affichage if/else conflit?

par graffx » 07 juil. 2011, 00:03

bon alors juste pour dire que j' ai trouvé:

il ne fallait pas include une condition dans la boucle mais en dehors, ce qui je ne sais pour quelle raison en toute honneteté faisait bugguer le bazar.

Merci a tous pour votre aide.

Re: probleme d'affichage if/else conflit?

par graffx » 06 juil. 2011, 23:38

petit up, je suis dans la panade :priere:

Re: probleme d'affichage if/else conflit?

par graffx » 05 juil. 2011, 23:23

Bon ben j' ai encore essayé de simplifié, aucun changement sur ma page et aucune erreur, je vois pas, un indice? :?


<?php session_start(); ?>
<?php $vendeur = $_GET['idv']; ?>
<?php $cat = $_GET['c']; ?>
<?php
            $messagesParPage=5; //Nous allons afficher 5 messages par page.


$retour_total=mysql_query('SELECT COUNT(*) AS id FROM vente WHERE vendeur = "'.mysql_real_escape_string($vendeur).'"'); //Nous r&eacute;cup&eacute;rons le contenu de la requ&ecirc;te dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['id']; //On r&eacute;cup&egrave;re le total pour le placer dans la variable $total.

//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);

if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
{
     $pageActuelle=intval($_GET['page']);
     
     if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le num&eacute;ro de la page) est plus grande que $nombreDePages...
     {
          $pageActuelle=$nombreDePages;
     }
}
else // Sinon
{
     $pageActuelle=1; // La page actuelle est la n&deg;1    
}

$premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la premi&egrave;re entr&eacute;e &agrave; lire


			
			if(isset($cat)&&($cat =='shop'))
			{
			$vente2 = mysql_query('SELECT * FROM vente WHERE vendeur = "'.mysql_real_escape_string($vendeur).'" ORDER BY id DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
			}				
			
			
			
			while ($vente = mysql_fetch_array($vente2))
			{
			?>
            
            
            
            
            
            
<table width="770" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="773" height="10" background="images/menus/780h.png" style="background-repeat:no-repeat;"></td>
            </tr>
          <tr>
            <td height="35" align="center" valign="top"  background="images/menus/780m.png"><table width="770" border="0" align="center" cellpadding="0" cellspacing="0">
              <tr>
                <td height="35"><table width="701" border="0" align="center" cellpadding="0" cellspacing="0">
                  <tr>
                    <td height="35"   background="images/titres/v.png" title="'.stripslashes($vente['cat']).'"">
                   
                      
                      
                     <table width="680" border="0" align="center" cellpadding="0" cellspacing="0">
                      <tr>
                        <td align="left" valign="top" class="rougeg"><img src="images/blank.gif" width="30" height="1" /><span class="rougeg"><a href="index.php?c=vte&id=<?php echo bbcode(stripslashes($vente['id'])); ?>"><?php echo bbcode(stripslashes($vente['nom'])); ?></a></span></td>
                        </tr>
                      </table>
                      

                      

                      
                      </td>
                    </tr>
                </table></td>
                </tr>
              </table></td>
            </tr>
          <tr>
            <td height="10" background="images/menus/780b.png" style="background-repeat:no-repeat;"></td>
            </tr>
        </table>
        
        
        
        
        
        <br />
<?php
 
 
			} 
			
			echo '<table width="100% border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td height="20" class="gh">&nbsp;</td>
  </tr>
  <tr>
    <td height="19" align="center" valign="top" class="gm">'; //Pour l'affichage, on centre la liste des pages
	
	
for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
     //On va faire notre condition
     if($i==$pageActuelle) //Si il s'agit de la page actuelle...
     {
         echo 'Page : [ '.$i.' ] '; 
     }	
     else //Sinon...
     {
          echo '<a href="index.php?page='.$i.'">'.$i.'</a>';
     }
}

echo '</td>
  </tr>
  <tr>
    <td height="20" class="gb">&nbsp;</td>
  </tr>
</table>';
?>

Re: probleme d'affichage if/else conflit?

par graffx » 05 juil. 2011, 19:34

t'es serieux pour les injections sql? :shock: Bon je vais poser cette fonction de suite! merci pour ce precieux conseil!

Macgawel, mais dans ce cas, il devrait quand meme m' afficher mon bazar non? puisque justement je lui demande "si il n' y a rien".

Re: probleme d'affichage if/else conflit?

par Gofromiel » 05 juil. 2011, 15:23

Un peu hors sujet, mais ce qui me saute aux yeux c'est : WHERE vendeur = "'.$vendeur.'"'

Sacré invitation aux injections SQL ! Je te conseille d'utiliser la fonction mysql_real_escape_string() sur $vendeur.

Re: probleme d'affichage if/else conflit?

par macgawel » 05 juil. 2011, 11:23

Et ... $total il est égal à combien
Ce n'est pas parce que ça semble fonctionner dans certains cas que c'est bon. La preuve :mrgreen:

Une petite question au passage :
Pourquoi effectuer la requête qui va te chercher les ventes quand tu n'en as pas ?
Je dirais que le problème vient de là :
Pas de vente => $vente2 est un tableau vide => tu ne passes pas dans ta boucle while (tu peux mettre un echo pour tester, voire afficher avant le contenu de $vente)...

Re: probleme d'affichage if/else conflit?

par graffx » 04 juil. 2011, 23:12

personne n'aurait une idée? je crois que c'est la premiere fois que je suis confronté a ce genre de probleme avec une condition aussi simple, les variables sont bien declarées puisque qu' elles fonctionnent dans la condition positive...

Re: probleme d'affichage if/else conflit?

par graffx_au_boulot » 04 juil. 2011, 12:04

bonjour et merci de votre reponse!

hé bien si je vais sur ma boutique (car cette page est inclue):

index.php?c=shop=&idv=graffx

il m' affiche bien mes articles en liste

index.php?c=shop=&idv=autre_membre_sans_article


il y a 0 article dans la bdd pour ce membre, mais absolument rien ne s'affiche. Je suis au boulot, je regarderai un peu mieux devant mon pc.

Cdt

Re: probleme d'affichage if/else conflit?

par devlop78 » 04 juil. 2011, 03:07

Et ... $total il est égal à combien

probleme d'affichage if/else conflit?

par graffx » 03 juil. 2011, 23:34

Salut a tous! Je vais vous presenter mon code deg*ulasse :D

Enfin il l' est car je simplifie partout pour trouver une erreur que je ne comprend pas.

J' aimerai que dans la base de données, si l' utilisateur a mis un article dans sa boutique, ca affiche les article en boucle, ca pas de souci. La ou ca cloche c'est que si il n' a rien mis encore, on ai droit a une phrase du genre "le membre n' a encore pas mis d'articles".

Mais absolument rien ne s'affiche quand l' utilisateur n' a rien mis. ni la phrase, ni son tableau.


Merci pour votre aide, ca depasse mes compétences et sincerement excusez la malpropreté du code, je suis vraiment en plein travaux dessus:
<?php session_start(); ?>
<?php $vendeur = $_GET['idv']; ?>
<?php $cat = $_GET['cat']; ?>
<?php
            $messagesParPage=5; //Nous allons afficher 5 messages par page.


$retour_total=mysql_query('SELECT COUNT(*) AS id FROM vente WHERE vendeur = "'.$vendeur.'"'); //Nous r&eacute;cup&eacute;rons le contenu de la requ&ecirc;te dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['id']; //On r&eacute;cup&egrave;re le total pour le placer dans la variable $total.

//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);

if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
{
     $pageActuelle=intval($_GET['page']);
     
     if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le num&eacute;ro de la page) est plus grande que $nombreDePages...
     {
          $pageActuelle=$nombreDePages;
     }
}
else // Sinon
{
     $pageActuelle=1; // La page actuelle est la n&deg;1    
}

$premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la premi&egrave;re entr&eacute;e &agrave; lire


			
			if(isset($_GET['c'])&&!isset($_GET['cat']))
			{
			$vente2 = mysql_query('SELECT * FROM vente WHERE vendeur = "'.$vendeur.'" ORDER BY id DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
			}
			elseif(isset($_GET['cat'])&&($_GET['cat']=='$cat'))
			{
			$vente2 = mysql_query('SELECT * FROM vente WHERE cat="'.$cat.'" AND WHERE vendeur = "'.$vendeur.'" ORDER BY id DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
			}						
			
			
			
			while ($vente = mysql_fetch_array($vente2))
			{
			?>
            
            
            
            
            
            
<table width="770" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="773" height="10" background="images/menus/780h.png" style="background-repeat:no-repeat;"></td>
            </tr>
          <tr>
            <td height="35" align="center" valign="top"  background="images/menus/780m.png"><table width="770" border="0" align="center" cellpadding="0" cellspacing="0">
              <tr>
                <td height="35"><table width="701" border="0" align="center" cellpadding="0" cellspacing="0">
                  <tr>
                    <td height="35"   background="images/titres/v.png">
                    
                    
                    <?php
                    if($total < '1')
					{
						?>
                    <table width="680" border="0" align="center" cellpadding="0" cellspacing="0">
                      <tr>
                        <td align="left" valign="top" class="rougeg"><img src="images/blank.gif" width="30" height="1" /><span class="rougeg">AUCUN ARTICLE POUR LE MOMENT</span></td>
                        </tr>
                      </table>
                      <?php
					}
					else
					{
						?>
                      
                      
                     <table width="680" border="0" align="center" cellpadding="0" cellspacing="0">
                      <tr>
                        <td align="left" valign="top" class="rougeg"><img src="images/blank.gif" width="30" height="1" /><span class="rougeg"><a href="index.php?c=vte&id=<?php echo bbcode(stripslashes($vente['id'])); ?>"><?php echo bbcode(stripslashes($vente['nom'])); ?></a></span></td>
                        </tr>
                      </table>
                      
                      <?php
					}
					?>
                      

                      
                      </td>
                    </tr>
                </table></td>
                </tr>
              </table></td>
            </tr>
          <tr>
            <td height="10" background="images/menus/780b.png" style="background-repeat:no-repeat;"></td>
            </tr>
        </table>
        
        
        
        
        
        <br />
<?php
 
 
			} 
			
			echo '<table width="100% border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td height="20" class="gh">&nbsp;</td>
  </tr>
  <tr>
    <td height="19" align="center" valign="top" class="gm">'; //Pour l'affichage, on centre la liste des pages
	
	
for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
     //On va faire notre condition
     if($i==$pageActuelle) //Si il s'agit de la page actuelle...
     {
         echo 'Page : [ '.$i.' ] '; 
     }	
     else //Sinon...
     {
          echo '<a href="index.php?page='.$i.'">'.$i.'</a>';
     }
}

echo '</td>
  </tr>
  <tr>
    <td height="20" class="gb">&nbsp;</td>
  </tr>
</table>';
?>