Requete mysql et affichage du resultat
Résolu
pointguard
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
pointguard Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
pointguard Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai beau me casser la tête mais je ne comprends pas ce qui cloche dans cette requête largement pompée sur les exemples fournis par ce site.
Voici mon code (serveur Mysql hébergé chez FREE), le but est d'afficher sur une page php un message pour souhaiter l'anniversaire des gens entrés dans la bdd.
TOUT FONCTIONNE SAUF... que depuis que j'essaie d'introduire le message "Pas d'anniversaire aujourd'hui" (code entre les lignes de tirets), la 1ère personne dont c'est l'anniv dans la liste le jour donné disparait, je m'explique :
- s'il n'y a pas d'anniv tout marche et j'ai le msg "Pas d'anniversaire aujourd'hui"
- s'il y a 1 anniv je n'ai RIEN qui s'affiche
- s'il y a 2 (ou +) annivs, le nom du 2e, du 3e etc... dans la liste s'affichent mais pas le 1er...
Voilà c'est tordu ! Si vous avez la réponse je vous admire par avance ! :D
<?php
// Déclaration des paramètres de connexion
$host = "sql.free.fr";
$user = "xxx";
$bdd = "base_aniv";
$passwd ="xxx";
// Connexion au serveur
@mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
@mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
// Creation et envoi de la requete
$mois=date("m");
$jour=date("d");
$reponse=mysql_query("SELECT prenom,nom FROM base_anniv WHERE mois=$mois and jour=$jour");
$result=mysql_query($reponse);
// Recuperation des resultats
<!------------Début du code qui fait chier-------------->
if (!mysql_fetch_array($reponse))
{
echo "Pas d'anniversaire aujourd'hui\n";
}
else
{
<!------------presque fin du code-------------->
while( $rs= mysql_fetch_array($reponse) )
{
echo "".$rs['prenom']; echo " ".$rs['nom']; echo " ";
}
<!------------dernier morceau du code chiant----------->
}
<!------------fin------------->
// Deconnexion de la base de donnees
mysql_close();
?>
PS : Je ne suis pas bon en php donc OUI le code est crade ! Si vous avez mieux je suis preneur !
j'ai beau me casser la tête mais je ne comprends pas ce qui cloche dans cette requête largement pompée sur les exemples fournis par ce site.
Voici mon code (serveur Mysql hébergé chez FREE), le but est d'afficher sur une page php un message pour souhaiter l'anniversaire des gens entrés dans la bdd.
TOUT FONCTIONNE SAUF... que depuis que j'essaie d'introduire le message "Pas d'anniversaire aujourd'hui" (code entre les lignes de tirets), la 1ère personne dont c'est l'anniv dans la liste le jour donné disparait, je m'explique :
- s'il n'y a pas d'anniv tout marche et j'ai le msg "Pas d'anniversaire aujourd'hui"
- s'il y a 1 anniv je n'ai RIEN qui s'affiche
- s'il y a 2 (ou +) annivs, le nom du 2e, du 3e etc... dans la liste s'affichent mais pas le 1er...
Voilà c'est tordu ! Si vous avez la réponse je vous admire par avance ! :D
<?php
// Déclaration des paramètres de connexion
$host = "sql.free.fr";
$user = "xxx";
$bdd = "base_aniv";
$passwd ="xxx";
// Connexion au serveur
@mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
@mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
// Creation et envoi de la requete
$mois=date("m");
$jour=date("d");
$reponse=mysql_query("SELECT prenom,nom FROM base_anniv WHERE mois=$mois and jour=$jour");
$result=mysql_query($reponse);
// Recuperation des resultats
<!------------Début du code qui fait chier-------------->
if (!mysql_fetch_array($reponse))
{
echo "Pas d'anniversaire aujourd'hui\n";
}
else
{
<!------------presque fin du code-------------->
while( $rs= mysql_fetch_array($reponse) )
{
echo "".$rs['prenom']; echo " ".$rs['nom']; echo " ";
}
<!------------dernier morceau du code chiant----------->
}
<!------------fin------------->
// Deconnexion de la base de donnees
mysql_close();
?>
PS : Je ne suis pas bon en php donc OUI le code est crade ! Si vous avez mieux je suis preneur !
A voir également:
- Requete mysql et affichage du resultat
- Resultat foot - Télécharger - Vie quotidienne
- Affichage double ecran - Guide
- Lexer resultat - Télécharger - Sport
- Windows 11 affichage classique - Guide
- Mysql community server - Télécharger - Bases de données
7 réponses
Bonjour,
fetch_array te lit un resultat et passe au suivant ... Donc ton premier test "consomme" un resultat. Il faut mieux que tu utilses un tableau intermediaire. Genre
while( $rs= mysql_fetch_array($reponse) )
{
row[]=$rs;
}
et ensuite if ( count($row) == 0 )
{
echo "Pas d'anniversaire aujourd'hui\n";
}
else
{
for($i=1;$i<count($row);$i++)
{
echo "".$row[$i]['prenom']; echo " ".$row[$i]['nom']; echo " ";
}
}
...
Je ne l'ai pas testé ... mais ca devrait marcher ;-°
fetch_array te lit un resultat et passe au suivant ... Donc ton premier test "consomme" un resultat. Il faut mieux que tu utilses un tableau intermediaire. Genre
while( $rs= mysql_fetch_array($reponse) )
{
row[]=$rs;
}
et ensuite if ( count($row) == 0 )
{
echo "Pas d'anniversaire aujourd'hui\n";
}
else
{
for($i=1;$i<count($row);$i++)
{
echo "".$row[$i]['prenom']; echo " ".$row[$i]['nom']; echo " ";
}
}
...
Je ne l'ai pas testé ... mais ca devrait marcher ;-°
Merci de ton aide mais...
Parse error: syntax error, unexpected on line 26
ce qui correspond à :
row[]=$rs;
Parse error: syntax error, unexpected on line 26
ce qui correspond à :
row[]=$rs;
La 1ere soluce donne cette erreur :
Parse error: syntax error, unexpected '}' in anniv.php on line 27
La 2eme soluce donnait une "erreur fatale"
On reprend un bout de code pour bosser sur qq chose de "propre" :
// Recuperation des resultats
while( $rs= mysql_fetch_array($reponse) )
{
$row[]=$rs
}
if ( count($row) == 0 )
{ <!---------------------LIGNE 27-------------------------------->
echo "Pas d'anniversaire aujourd'hui\n";
}
else
{
for($i=1;$i<count($row);$i++)
{
echo "".$row[$i]['prenom']; echo " ".$row[$i]['nom']; echo " ";
}
}
// Deconnexion de la base de donnees
Merci encore du coup de main !
Parse error: syntax error, unexpected '}' in anniv.php on line 27
La 2eme soluce donnait une "erreur fatale"
On reprend un bout de code pour bosser sur qq chose de "propre" :
// Recuperation des resultats
while( $rs= mysql_fetch_array($reponse) )
{
$row[]=$rs
}
if ( count($row) == 0 )
{ <!---------------------LIGNE 27-------------------------------->
echo "Pas d'anniversaire aujourd'hui\n";
}
else
{
for($i=1;$i<count($row);$i++)
{
echo "".$row[$i]['prenom']; echo " ".$row[$i]['nom']; echo " ";
}
}
// Deconnexion de la base de donnees
Merci encore du coup de main !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
$reponse=mysql_query("SELECT prenom,nom FROM base_anniv WHERE mois=$mois and jour=$jour");
//tu fais la requette avec une condition et ensuite tu refais la requette sur la reponse de la requette: erreur de principe
$result=mysql_query($reponse);
//tu fais la requette avec une condition et ensuite tu refais la requette sur la reponse de la requette: erreur de principe
$result=mysql_query($reponse);
///il faut faire: $query="SELECT prenom,nom FROM base_anniv WHERE mois=$mois AND jour=$jour"; //ça c'est le texte de la requette $reponse=mysql_query($query); //la on execute la requette //maintenant les résultats sont stockés en mémoire $reponse contient la référence de la ressource permettant de les exploiter //on peut même clore dès maintenant la connexion à la base mysql_close(); ///Exploitation des résultats //si pas d'anniversaire on aura zéro résultats // mysql_num_rows(ressource) permet de savoir combien on en a trouvé stockés dans 'ressource' if (mysql_num_rows($reponse) == 0){ echo "Pas d'anniversaire aujourd'hui"; }else{ //si on a des resultats alors on les affiche //pour cela par une boucle while on vient lire ligne par ligne ce qui est en mémoire par un fetch while( $rs= mysql_fetch_array($reponse) ){ echo $rs['prenom']." ".$rs['nom']."<br /> "; // concatène la chaine et pour un saut de ligne c'est <br /> en html } }
Bon, j'ai testé mon code cette fois ;-P
$row=array();
// Recuperation des resultats
while( $rs= mysql_fetch_array($reponse) )
{
$row[]=$rs;
}
if ( count($row) == 0 )
{
//<!---------------------LIGNE 28-------------------------------->
echo "Pas d'anniversaire aujourd'hui\n";
}
else
{
for($i=1;$i<count($row);$i++)
{
echo "".$row[$i]['prenom']; echo " ".$row[$i]['nom']; echo " ";
}
}
N'oublie pas de declarer row car quand il n'y a aucun anniversaire, tu risque d'avoir une erreur sur count($row).
Bien à toi.
$row=array();
// Recuperation des resultats
while( $rs= mysql_fetch_array($reponse) )
{
$row[]=$rs;
}
if ( count($row) == 0 )
{
//<!---------------------LIGNE 28-------------------------------->
echo "Pas d'anniversaire aujourd'hui\n";
}
else
{
for($i=1;$i<count($row);$i++)
{
echo "".$row[$i]['prenom']; echo " ".$row[$i]['nom']; echo " ";
}
}
N'oublie pas de declarer row car quand il n'y a aucun anniversaire, tu risque d'avoir une erreur sur count($row).
Bien à toi.