Programe php petit probleme

Résolu/Fermé
yohhann Messages postés 35 Date d'inscription mercredi 13 décembre 2006 Statut Membre Dernière intervention 20 février 2007 - 14 déc. 2006 à 17:38
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 - 16 déc. 2006 à 13:31
bonsoir,
voila un probleme
mon script:
<?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_db WHERE mois=''.$mois.'' AND annee=''.$annee.'' AND ville="8eme"';
$req=mysql_query($sql)or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data = mysql_fetch_array($req))
{
//condition
if($data['dons'] !="")
{
echo'Grâce à vous:<br> un don de' .$data['dons']. ' euros à été fait '.$data['aqui'];
}

elseif($data['dons'] =="")
{

echo'Aucun don n'a été fait ce mois-ci';

}
}
mysql_free_result ($req);
mysql_close();
?>


mon pb: quand j'ai les données corespondante dans ma table le pgm marche lorsque j'ai pas de donné dans ma table (tjr crée) ça me donne une page blanche
autrement dit j'ai un pb avec le else heellllpp svp

12 réponses

Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
14 déc. 2006 à 19:14
Salut yohhann.
Pourquoi tu refais un sujet ?
J'ai aussi répondu sur le post initial ;-)

J'ai encore modifié ton code, il y avait quelques erreurs.
<?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_db WHERE mois=\''.$mois.'\' AND annee=\'',$annee,'\' AND ville=\'8eme\'';
  $req=mysql_query($sql)or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data=mysql_fetch_array($req))
{
  //condition
    if($data['dons']!=='')
      echo'Grâce à vous:<br> un don de' .$data['dons']. ' euros à été fait '.$data['aqui'];
    elseif($data['dons']=='')
      echo'Aucun don n\'a été fait ce mois-ci';
}
mysql_free_result ($req);
mysql_close();
?>
0
slt je suis amateur de creation de page web sur frontpage
et j'aimerai avoir de connaissance sur le langage php
0
yohhann Messages postés 35 Date d'inscription mercredi 13 décembre 2006 Statut Membre Dernière intervention 20 février 2007 3
15 déc. 2006 à 11:37
salut alex,
pour avoir des connaissance en php tu peu squater le site du zero ya pas mal de chose et je le recomande a ceux qui veulent commencer en php ( moi meme debutant )
http://www.siteduzero.com/index.php
(par contre il risque d'etre en derangement il mer2 depuis hier)
salut sylvain alors j'ai changé de sujet car je commençais a etre paumé lol
puis en plus j'en avait marre et j'ai fais n'importe quoi c'est pas ce script que je voulais mettre lol
c'est celui ci desolé" :(
<?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_db WHERE mois=\''.$mois.'\' AND annee=\''.$annee.'\' AND ville="8eme"';
$req=mysql_query($sql)or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data = mysql_fetch_array($req))
{
//condition
if($data['dons'] !="")
{
echo'Grâce à vous:<br> un don de' .$data['dons']. ' euros à été fait '.$data['aqui'];
}

else
{

echo'Aucun don n\'a été fait ce mois-ci';

}
}
mysql_free_result ($req);
mysql_close();
?>
c'est un peu pré le même que celui que tu as posté mais j'ai un probleme c'est que lorsque ma table est vide il me renvoie une page blanche au lieu de: Aucun don n'a été fait ce mois-ci' t'as pas une idée ?
0
yohhann Messages postés 35 Date d'inscription mercredi 13 décembre 2006 Statut Membre Dernière intervention 20 février 2007 3
15 déc. 2006 à 11:41
d'autre part sylvain hier tu as utilisé cette fonction
while($data = mysql_fetch_assoc($req))
je ne connais pas assoc ça correspond a koi?
parcque un array je comprend un peu pres ce que c'est mais ça je ne sais pas c'est pour ça que je ne l'ai pas utilisé
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
15 déc. 2006 à 12:19
La différence entre mysql_fetch_array et mysql_fetch_assoc est que le premier retourne aussi bien un tableau normal qu'associatif, alors que le deuxième ne retourne qu'un tableau associatif.

Donc avec assoc, tu ne peux acceder à un élément qu'en connaissant les noms associés :
$result["propriété_retournée"];

et non :
$result[0];
0
yohhann Messages postés 35 Date d'inscription mercredi 13 décembre 2006 Statut Membre Dernière intervention 20 février 2007 3
15 déc. 2006 à 12:33
ah ok merci
donc finalement le mieu c'est de toujour utilisé array
0
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
15 déc. 2006 à 13:03
donc finalement le mieu c'est de toujour utilisé array
Bien sur que non !!
C'est deux fois plus lent !

Donc il vaut mieux utiliser assoc.
Si tu veux retourner un tableau numéroté, tu peux utiliser mysql_fetch_rows.


Pour le code, essaye ca, sans modifier le moindre caractère :
<?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_db WHERE mois=\''.$mois.'\' AND annee=\''.$annee.'\' AND ville=\'8eme\'';
  $req=mysql_query($sql)or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data=mysql_fetch_assoc($req))
{
  //condition
  if($data['dons']!=='')
    echo'Grâce à vous:<br />un don de ',$data['dons'],' euros à été fait ',$data['aqui'];
  else
    echo'Aucun don n\'a été fait ce mois-ci';
}
mysql_close();
?>
Que contient la page "connexion.php" ?
Est-ce qu'il y a autre chose que la connexion a MySQL ?
Est-ce qu'on peut voir le code de cette page (sans les identifiants bien sur) ?
Et mets exactement ce code, au lieu de ressortir l'ancien.

Si tu remets du code, UTILISE LE BOUTON CODE.
0
yohhann Messages postés 35 Date d'inscription mercredi 13 décembre 2006 Statut Membre Dernière intervention 20 février 2007 3
15 déc. 2006 à 14:31
non tjrs une page blanche :(
pourquoi tu ne mets pas les accolades? c'est pas important de les mettre? et pourqui tu mets !== je croyais que c'etait !=
mon code php contient juste ma connexion :
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("base_db");
?>
merci
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
15 déc. 2006 à 15:43
Il est normal que ce code renvoie une page blanche si ta requête ne renvoit aucun résultat.

Il faudrait rajouter, avant le while :
$nbResultat = mysql_num_rows($req)
et après la fin du while :
if ($nbResultat == 0)
{
// Et là, tu mets ce que tu souhaites voir s'afficher si la table est vide (aucun don, quelque soit le mois)
}

Pour ta question sur les accolades : elles sont facultatives si il n'y a qu'une ligne à encadrer.

Par exemple,
if ($i == 0)
{
    echo "ok";
}
echo "suite";
Est équivalent à
if ($i == 0)
    echo "ok";
echo "suite";
J'espère que ça va t'aider,

Xavier
0
Profil bloqué
15 déc. 2006 à 17:06
je leur avait pourtant conseillé ta solution ,je ne sais pas ou ils en sont?pour ce bout de code.
0
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
15 déc. 2006 à 18:15
Au fait, pourquoi est-ce que tu utilises une boucle while ?
elle est nécéssaire ?
0
yohhann Messages postés 35 Date d'inscription mercredi 13 décembre 2006 Statut Membre Dernière intervention 20 février 2007 3
16 déc. 2006 à 13:19
merci a tous chers amis j'ai opté pour ce code donné par Ben sur le forum de La toile
<?php
include'connexion.php';
//on pose la date d'aujourdhui
$mois=date('m');
$annee=date('y');

$compteur=0;

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

echo'Grâce à vous: un don de' .$data['dons']. ' euros à été fait '.$data['aqui'];
$compteur++;
}


if($compteur==0) {
echo 'Aucun don n\'a été fait ce mois-ci';
}

mysql_free_result ($req);
mysql_close();
?>
car si mon pgm ne fonctionnait pas c'etait normal du fait que si le data[dons'] etait nul, la boucle ne pouvait s'exectuter .
voila merci a tous de vous etre penché sur mon pb :d
0
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
16 déc. 2006 à 13:31
C'est plus rapide d'utiliser ce code :
(je vois que je t'ai vachement servi, je te l'ai répété 36 fois et tu n'as rien 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_db WHERE mois=\''.$mois.'\' AND annee=\''.$annee.'\' AND ville=\'8eme\'';
  $req=mysql_query($sql)or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data=mysql_fetch_assoc($req))
{
  echo'Grâce à vous: un don de ',$data['dons'],' euros à été fait ',$data['aqui'];
  if(!isset($compteur))
    $compteur=0;
  $compteur++;
}
if($compteur==0)
  echo 'Aucun don n\'a été fait ce mois-ci';
mysql_close();
?>

Je commence à en avoir marre de te dire d'UTILISER LE BOUTON CODE.
Ca te tuerait vraiement ??

A l'avenir, UTILISES LE BOUTON CODE !!

0