Aller au contenu

resultat code php de requete sql


fabiensky

Sujets conseillés

Bonjour ,

j'ai fais une requete qui marche sur sql manager cela me donne un tableau , mais je n'arrive pas a faire ma page php qui affiche ce resulstat

 
SELECT annon_nom,annon_datelimite,(DATEDIFF(annon_datelimite,CURDATE()))
AS restant FROM annonceur ORDER BY restant ASC

je suis debutant en php et sql aussi d'autre part , soyez assez clair , merci de votre comprehension de mon noobisme

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Sans donner le code PHP en question ni les erreurs éventuelles qu'il génère je doute que quelqu'un puisse te répondre.

Si tu compte obtenir un cours sur l'accès à une base de données MySQL avec PHP personne ne te répondra, il existe tant de cours à ce sujet (les moteurs de recherche sont tes amis, un exemple de requête : cours MySQL PHP) , c'est la première étape avant de poser une question d'ordre aussi général.

En d'autres termes, essaie de te documenter, écrit un peu de code et si tu as des problèmes avec un code en particulier tu auras tout loisir de poser des questions précises. En attendant, bonne chance et bonne lecture :)

Lien vers le commentaire
Partager sur d’autres sites

excusez moi mais je pensais qu'un code sql suffirai , je parcouru pas mal de pages (quelque centaine)avant de poser ma question ici.

j'ai reussi a pondre un morceau de code mais ca ne marche pas .

<?php
// Déclaration des paramètres de connexion
$host = localhost;
$user = xxxxxx;
$bdd = xxxxxx;
$passwd = xxxxxxx;

// 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

$query = 'SELECT annon_nom,annon_datelimite,(DATEDIFF(annon_datelimite,CURDATE())) AS restant FROM annonceur' ;

$result = mysql_query($query);

echo '<table bgcolor="#ffffff">'."\n";

echo '<tr>';
echo '<td><b>Nom</b></td>';
echo '<td><b>Date Limite</b></td>';
echo '<td><b>Temps restant</b></td>';

echo '</tr>'."\n";

// while ($data = mysql_fetch_array($req)) {

echo '<tr>';
echo '<td>' . $data['Nom'] . '</td>';
echo '<td>' . $data['Date Limite']. '</td>';
echo '<td>' . $data['Temps Restant'] . '</td>';
echo '</tr>'."\n";
// }
// on libère l'espace mémoire alloué pour cette requête
// mysql_free_result ($req);
echo '</table><br />';
?>

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

pour aller vite, je vois 2 erreurs : Le while est en commentaire, mais je suppose que c'est pour un essai.

Mais surtout le

mysql_fetch_array($req)

devrait plutot être

mysql_fetch_array($result)

, variable resultat du mysql_query.

Lien vers le commentaire
Partager sur d’autres sites

Lorsque tu commence une ligne par "//" ou que tu entoure une partie de ton code entre "/*" et "*/" tu mets ce code en commentaire, c'est à dire qu'il n'est pas exécuté... Dans ton cas tu as mis la boucle en commentaire, et c'est justement la condition de ta boucle :

while ($data = mysql_fetch_array($req)) {

Qui traite la ressource MySQL (retournée par la ligne $result = mysql_query($query); un peu plus haut). En plus lors de ton appel à mysql_fetch_array tu utilises $req au lieu d'utiliser $result.

Donc, enlève les commentaires sur cette boucle while et utilise le bon nom de variable et cela fonctionnera (pour peut que ta requête renvoie effectivement quelque chose :)).

Lien vers le commentaire
Partager sur d’autres sites

// Creation et envoi de la requete

$query = 'SELECT annon_nom,annon_datelimite,(DATEDIFF(annon_datelimite,CURDATE())) AS restant FROM annonceur' ;

$result = mysql_query($query);

echo '<table bgcolor="#ffffff">'."\n";

echo '<tr>';
echo '<td><b>Nom</b></td>';
echo '<td><b>Date Limite</b></td>';
echo '<td><b>Temps restant</b></td>';

echo '</tr>'."\n";

while ($data = mysql_fetch_array($result)) {

echo '<tr>';
echo '<td>' . $data['Nom'] . '</td>';
echo '<td>' . $data['Date Limite']. '</td>';
echo '<td>' . $data['Temps Restant'] . '</td>';
echo '</tr>'."\n";
}
// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($result);
echo '</table><br />';

Il n'y a plus d'erreur mais rien ne s'affiche (il y a 7 enregistrements)

ce code me permet de voir le nombre de jours restant pour voir si les promos sont encore valide par rapport a une date de validité (annon_datelimite) classé par ordre Asc

Lien vers le commentaire
Partager sur d’autres sites

Et bien, il reste effectivement une erreur : il faut afficher $data['annon_nom'] en lieu et place de $data['nom'], et idem pour date limite et temps restant. Les clés du tableau sont les noms des rubriques de la requète mysql, et sont case-sensitive.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...