bizarrerie condition !

Eléphant du PHP | 299 Messages

23 oct. 2009, 00:12

Salut a tous,

bon, je vais perdre le spedales, j' ai tout trifouillé, je trouve pas le binz.

Je fais uen condition dans une boucle, si aucune donnée, il devrait y avoir "non", mais y' a rien, par contre peu importe le sens, ca marche toujours pour le "oui".

              <?php
			$com2 = mysql_query('SELECT * FROM news_commentaires WHERE id_de_news=\'' . $_GET['id'] . '\'');
			while($com = mysql_fetch_array($com2))
			
			
			{	
			
			
			?>
			<?php
			if ($com['id'] == 0)
{
                        echo 'non';
}
else
{
                        echo 'oui';
}

			{
Je comprend vraiment pas ce qui peut deconner, j' ai tout essayer, avec isset, empty, d' autres tests aussi, toujours pareil, le "non" refuse de s' afficher!

Merci parce que la je desespere :(

ViPHP
ViPHP | 1136 Messages

23 oct. 2009, 07:51

Salut ,

Fait un
vardump($com['id']); 
Voir un peu ce qu'il retourne comme valeur et comme type .

Pour agir en conséquence .
Sinon, pour tester si l'enregistrement existe , tu peux simplement compter dans ta requête .

SELECT VOUNT(id) AS nbres , champ2,champ3 FROM tatable WHERE tes cond GROUP BY id;

Good luck , ch.

Eléphanteau du PHP | 27 Messages

23 oct. 2009, 19:10

Juste quelques remarques en passant... (inclues dans le code)
<?php
// ton code :
// ##########
                        $com2 = mysql_query('SELECT * FROM news_commentaires WHERE id_de_news=\'' . $_GET['id'] . '\'');
                        while($com = mysql_fetch_array($com2))
                        
                        
                        {       
                        
                        
                        ?> 
                        <?php  //  Pourquoi fermer la partie de code côté server pour la réouvir tout de suite après ?
                        if ($com['id'] == 0)
{
                        echo 'non';
}
else
{
                        echo 'oui';
}

                        { //  <= ici, il me semble que cette accolade est sensée fermer le while... et non pas ouvrir... rien
							

// suggestion de présentation :
// ############################							
<?php
	$com2 = mysql_query('SELECT * FROM news_commentaires WHERE id_de_news=\'' . $_GET['id'] . '\'');
	while($com = mysql_fetch_array($com2)) {       
		if ($com['id'] == 0) echo 'non';
		else echo 'oui';
	}
?>
Et je pense, sans vouloir m'immiscer, que stopher voulait dire SELECT COUNT et non SELECT VOUNT !

Eléphant du PHP | 299 Messages

23 oct. 2009, 21:24

je vais essayer d' etre le moins stupides possible dans mes reponses:

j' ai bien fait un vardump():

Fatal error: Call to undefined function vardump()

j' ai essayé la solution de Kran, meme resultat, pas de 'rien'.

Sinon pour le COUNT, je pense que c' est pas necessaire car j' ai la bdd sous les yeux (bonne reponse?)




edit: var_dump est mieux :)


voila ce que j' obtiens sur le oui:

string(2) "19"


si y' a rien, ben rien de rien.

ViPHP
ViPHP | 1136 Messages

24 oct. 2009, 08:53

vount ... vardump .. afff .. il ne faut pas m'en vouloir , mais le vendredi , je commence déjà à basculer en mode week end ...

Bon, sinon , je pense qu'il faut continuer du coté du COUNT() pour compter le nombre de commentaires , et faire un teste sur le résultat de celui-ci ,
if( $nb_new > 0 ){
 // il y a des commentaires
}else{
 // pas de commentaire
}
Ch.

ViPHP
ViPHP | 1996 Messages

24 oct. 2009, 19:55

Essaye de voir si il y a des resultats avant ton tests :
<?php
$requete = "'SELECT * FROM news_commentaires WHERE id_de_news='". $_GET['id'];
$com2 = mysql_query($requete);
if (mysql_num_rows($com2) != 0)
{
  while($com = mysql_fetch_assoc($com2))
  {      
     if ($com['id'] == 0)
    {
       echo 'non id='.$com['id'].'<br />';
    }
    else
    {
      echo 'oui id='.$com['id'].'<br />';
    }
  }
}
else
echo "pas de résultats";
?>
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr