Php , script , condition

bonjour,
j'ai un petit probléme avec mon script
ce que je voudrais c'est une page ou lorsque l'on trouve dans la base de données des informations qui corespondent au mois a l'année d'aujourdhui et a une ville bien determiné que cela m'inscrive ces donné et autrement un message' pas de dons ce mois ci je vous met mon script
<?php
include("connexion.php");
?>
<?php
//on pose la date d'aujourdhui
$mois= date("m");
$annee= date("y");

//on selectione ce qu'on veut
$sql = 'SELECT dons, aqui FROM dons_tb WHERE mois="$mois" AND annee="$annee" AND ville="paris" ';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($req)) {

//conditions
if(data['dons']=="")
{
echo 'Auqun dons n\'a été fait ce mois-ci'
}
else
{

echo
Grâce à vous: <br>
'un dons de' .data['dons']. 'à été fait' .data['aqui'];
}
}
mysql_free_result ($req);
mysql_close ();
?>
il ya un pb a la ligne if( data['dons']=...
mais je ne pense pas que ce soit le seul pb car j'ai essayé ce script ci...

<?php
include("connexion.php");
?>
<?php
//on pose la date d'aujourdhui
$mois= date("m");
$annee= date("y");

//on selectione ce qu'on veut
$sql = 'SELECT dons, aqui FROM dons_tb WHERE mois="$mois" AND annee="$annee" AND ville="paris" ';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($req)) {
echo 'il ya un don de ' .$data['dons']. 'euros' .$data['aqui'];
}
mysql_free_result ($req);
mysql_close(); // On n'oublie pas de fermer la connexion à MySQL
?>
et la helas ça ne m'indique pas d'erreur mais une merveilleuse page blanche lol
merci
Configuration: Windows XP
Internet Explorer 6.0

10 réponses

  1. corrige là d'abord:

    //conditions
    if(data['0']=="")
    {
    echo 'Auqun dons n\'a été fait ce mois-ci'
    }
    0
    1. remplace cette ligne:
      while ($data = mysql_fetch_array($req)) {
      par ça c'est plus simple:
      while (mysql_num_rows($req)==1){

      "mysql_num_rows($req)",va tester eske le nombre de lignes obtenu est égal à 1(1 resultat).
      0
      1. non desolé ça ne marche pas

        //conditions
        if(data['0']=="")
        {
        echo 'Auqun dons n\'a été fait ce mois-ci'
        }
        ça marque une erreur a la meme ligne
        :(
        pour le 2eme scipt ça marche quand je remplave $mois par 12 et $annee par 06
        0
        1. tu n'as pas mis le signe $ avant data,essai
          0
      2. super bien vu ;) merci
        mais le pb c'est que mon script est bouré d'erreur maintenant c'est 2 ligne en dessous que ça coince
        {
        echo 'Auqun dons n\'a été fait ce mois-ci'

        alors c'est surement a cause de ça:
        while (mysql_num_rows($req)==1){
        /
        while ($data = mysql_fetch_array($req)) {
        je sais pas trop ou le mettre il est a la bonne place?
        (enfin j'ai pas mis les 2 je les essayé tout les 2 )
        0
        1. Modérateur
          Salut.

          J'ai modifié le code, et corrigé quelques erreurs.
          (par exemple $data au lieu de data)

          Par contre je suis au lycée, donc je n'ai pas trop de bons outils.
          (C'est à dire : j'ai le bloc-notes)

          Voila ce que j'ai fait :
          <?php
          include'connexion.php';
          //on pose la date d'aujourdhui
          	$mois=date('m');
          	$annee=date('y');
          
          //on selectione ce qu'on veut
          	$sql='SELECT dons,aqui FROM dons_tb WHERE mois=\''.$mois.'\' AND annee=\''.$annee.'\' AND ville=paris'; 
          	$req=mysql_query($sql)or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
          while($data = mysql_fetch_assoc($req))
          { 
          	//conditions 
          	if(!$data['dons'])
          		echo'Aucun don n\'a été fait ce mois-ci';
          	else
          		echo'Grâce à vous:<br>'un dons de',$data['dons'].'à été fait',$data['aqui'];
          } 
          mysql_free_result ($req); 
          mysql_close(); 
          ?>

          J'éspère que ca marchera ;-)

          a plus
          0
          1. respecte les points virgules:

            met ça
            while ($data = mysql_fetch_array($req))
            {
            //conditions
            if($data[0]=="")
            {
            echo "Auqun dons n\'a été fait ce mois-ci";
            }
            else
            {
            echo "Grâce à vous: <br>
            un dons de" .data[0]. "à été fait".data[1];
            }
            }
            0
            1. merci sylvain,
              t'avait oublié les guillemet entre paris et laissé une apostrophe
              echo'Grâce à vous:<br>'un dons de',$data['dons'].'à été fait',$data['aqui'];
              pas serieu! lool
              merci beaucoup ça marche niquel et merci aussi pour la syntaxe
              $sql='SELECT dons,aqui FROM dons_tb WHERE mois=\''.$mois.'\' AND annee=\''.$annee.'\' AND ville=paris';
              voilà,
              sinon pour ton editeur de texte tu peux prendre notepad2 il est gratuit ;) voici l'adresse
              http://www.01net.com/windows/Bureautique/editeur_de_texte/fiches/32301.html
              tu te debrouille plutot bien pour un lycéen ;)

              slum-dunk merci a toi aussi j'ai preféré prendre la soluce a sylvain elle me parle plus, mais merci beaucoup a toi aussi ;)
              0
              1. j'oubliais aussi tu peux prendre easy php
                c'est une sorte de simulateur de reseau
                http://www.lephpfacile.com/cours/index.php?p=2
                0
                1. non en faite ça marche pas j'ai un probleme quand j'ai rien dans ma table la condition else {echo blabla }ne s'afiche pas j'ai une page blange
                  0
                  1. Modérateur
                    Bonsoir yohann :-)

                    tu te debrouille plutot bien pour un lycéen ;)
                    Merci :-)

                    Pour notepad, je l'ai, mais je préfère PSPad.
                    J'ai aussi easyphp ;-)

                    Pour voir ou est l'erreur, tu peux redonner ton code ?
                    0