Page 1 sur 1
Selectionner champ&limiter un script a une fois
Posté : 19 déc. 2006, 18:43
par dr.smoogy
Hello,
Nouveau problème !
J'ai une table, qui contient 7 champs, chaque champs est le nom d'un jour, Monday,...
J'ai ce code qui affiche le contenu d'un des champs en fonction du jour ou l'on est !
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("schoolgame");
$date = date("l");
$qrySelect = "SELECT $date FROM planing";
$reponse = mysql_query($qrySelect ) or die('ERR_SQL:<br />' . $qrySelect . '<br />' . mysql_error());
echo $reponse;
mysql_close();
?>
Pour infos les 7 champs sont varchar..
Et au lieu de m'afficher le contenu du champ du jour php me retourne:
Resource id #4
Voila voila
Merci d'av.
Posté : 19 déc. 2006, 18:46
par ouckileou
Oui c'est normal, tu ne peux pas afficher directement le résultat :
regarde mysql_fetch_row() ou mysql_fetch_array() ou mysql_fetch_assoc() par exemple.
Posté : 19 déc. 2006, 18:55
par dr.smoogy
J'avais aussi esayer avec un code comme ca:
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("schoolgame");
$date = date("l");
$qrySelect = "SELECT $date FROM planing";
$reponse = mysql_query($qrySelect ) or die('ERR_SQL:<br />' . $qrySelect . '<br />' . mysql_error());
while ($donnees = mysql_fetch_array($reponse) )
{
echo $donnees['$date'];
}
mysql_close(); // Déconnexion de MySQL
?>
et là j'ai une erreur:
Notice: Undefined index: $date in c:\program files\easyphp1-8\www\schoolgame\planingtoday.php on line 12
Posté : 19 déc. 2006, 19:06
par Ajoloca
Bonjour,
C'est normal. Tu mélanges les données PHP et MySQL
quand tu fais ça
while ($donnees = mysql_fetch_array($reponse) )
{
echo $donnees['$date'];
}
Tu "fetchs" sur une ressource MySQL ($reponse) mais tu lui demandes d'utiliser une variable PHP ($date).
Ceci devrait fonctionner (modifie la valeur chp_date par le nom de la colonne qui contient la date)
while ($donnees = mysql_fetch_array($reponse) ){
echo $donnees['chp_date'];
}
Posté : 19 déc. 2006, 19:19
par dr.smoogy
Oui, mais justement je ne veux pas que MOI je selectionne la valeur, mais que en fonction du jour que l'on est une valeur différente s'affiche.
Posté : 19 déc. 2006, 19:38
par Ajoloca
Re,
Dans ce cas c'est dans la requête qye ça se passe
$qrySelect = "SELECT $date FROM planing WHERE chp_date='" . $date . "'";
N'oublie pas de modifier chp_date par le nom de la colonne.
Posté : 19 déc. 2006, 19:57
par ouckileou
Non, ce sont bien les noms de ses colonnes qui correspondent au nom du jour, et non leur contenu :
J'ai une table, qui contient 7 champs, chaque champs est le nom d'un jour, Monday,...
Ce code est donc presque bon :
while ($donnees = mysql_fetch_array($reponse) )
{
echo $donnees['$date'];
}
À ceci près qu'en utilisant les apostrophes autour de $date, c'est littéralement "$date" qui est utilisé (et non le contenu de la variable $date) ce qui ne correspond à rien comme indice de tableau.
Remplace les apostrophes par des guillemets.
C'est toujours comme ça :
guillemets => variables remplacées par leur contenu
apostrophes => noms de variables utilisés directement
Posté : 19 déc. 2006, 20:08
par ouckileou
En effet, ce n'est pas e nom de la table qui change mais le nom de la colonne, donc ceci n'est pas bon :
$qrySelect = "SELECT $date FROM planing";
Il faudrait t'inspirer de la requête d'Ajoloca, mais en rendant dynamique le nom de la colonne.
Edit : ah ben un message a disparu le temps de poster...
Posté : 19 déc. 2006, 21:19
par Ajoloca
Re,
C'est moi qui ai supprimé le mien
Posté : 20 déc. 2006, 15:14
par dr.smoogy
Merci ca marche voila le code au complet juste pour info:
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("schoolgame");
$chp_date = date("l");
$qrySelect = "SELECT $chp_date FROM planing";
$reponse = mysql_query($qrySelect ) or die('ERR_SQL:<br />' . $qrySelect . '<br />' . mysql_error());
while ($donnees = mysql_fetch_array($reponse) )
{
echo $donnees["$chp_date"];
}
mysql_close();
?>
a+
Posté : 20 déc. 2006, 15:34
par ouckileou
Re,
C'est moi qui ai supprimé le mien
Je comprends pourquoi, j'aurais du moi aussi j'ai dis n'importe quoi

Posté : 20 déc. 2006, 15:39
par Ajoloca
Re,
C'est moi qui ai supprimé le mien
Je comprends pourquoi, j'aurais du moi aussi j'ai dis n'importe quoi

Tu est tombé dans le même piège que moi.
Posté : 20 déc. 2006, 18:44
par dr.smoogy
Nouveau petit problème en rapport avec le précedent:
J'ai ceci une page qui dit:
if(champ>6){
(1)
else{
(2)
}
le (1) consiste a dire, modifier la valeur du champs trouvez précedement (vous vous souvenez la collone en fonction du jour) en lui ajoutant +1.
Le truc c'est que je veux que quand on arrive sur cette page, sa ne rajoute pas 1 a chaque fois, mais une seul fois par heure..
comment définir cela ?
merci
Posté : 20 déc. 2006, 18:57
par ouckileou
Nouveau problème, nouveau sujet. Merci.
(D'autant que personne ne viendra voir un sujet marqué Résolu)