Page 1 sur 1
problème de variable
Posté : 25 déc. 2006, 18:01
par dr.smoogy
Hello,
voila mon problème:
$qrySelect = "SELECT $chp_date FROM planing WHERE heure='" . $chp_date2 . "'";
$reponse = mysql_query($qrySelect ) or die('ERR_SQL:<br />' . $qrySelect . '<br />' . mysql_error());
/////////////////////////////////////////////////////////////
while ($donnees = mysql_fetch_array($reponse) )
{
echo "<b><font face=verdana><FONT COLOR=#50461F>vous avez cours actuellement de" . " " . $donnees["$chp_date"] . "." . "Le cours a commencé depuis" ." " ."$chp_date3" . " " . "minutes" . "</font></font></b>";
echo "<br/>";
echo "<br/>";
}
$chp_date11=$donnees["$chp_date"];
l'important dans ce code est $donnees["$chp_date"];
ensuite:
$qrySelect2="UPDATE heures_secher SET $chp_date11=$chp_date11 +1 WHERE login='". $_SESSION['login'] . "'";
voila j'ai dis donc d'ajouter 1, au champ $chp_date11 qu'on determine en fonction de l'heure system..bref si je remplace $chp_date11 par le nom direct, d'un des champs sa marche mais là non, une idée ??
merci a +
Posté : 25 déc. 2006, 19:38
par Maitrepylos
Et simplement faire
$chp_date11=$donnees["$chp_date"];
$chp_date11 += 1;
$qrySelect2="UPDATE heures_secher SET $chp_date WHERE login='". $_SESSION['login'] . "'";
de plus appelée ses champs de table, avec le même principe de nommage que les variables, ne me semble pas des plus judicieux.
Parce que dans ton query tu essaie de modifier le champ '$chp_date11', alors que ton champ dans la table 'heures_secher' semble se nommer '$chp_date'.
Posté : 25 déc. 2006, 19:45
par Truc
de plus appelée ses champs de table, avec le même principe de nommage que les variables, ne me semble pas des plus judicieux.
J'espère que ce n'est pas le cas... mais bel et bien de variables qu'il s'agit
Pour ton souci... ce n'est pas clair...
que veux tu faire ?
quel est le but du script ?
Il y a une boucle mais $chp_date11 ne prend que la dernière des valeurs retournées par la requête (puisqu'après la boucle).
A quoi resemble la structure (champs) de ta table "planing"
Posté : 25 déc. 2006, 19:51
par Maitrepylos
de plus appelée ses champs de table, avec le même principe de nommage que les variables, ne me semble pas des plus judicieux.
J'espère que ce n'est pas le cas... mais bel et bien de variables qu'il s'agit
pourtant il me semble bien que c'est ce qu'il fait
$chp_date11=$donnees["$chp_date"];
Posté : 25 déc. 2006, 20:02
par dr.smoogy
en gros dans la table, les champs sont nommé de lundi a dimanche en anglais et donc via la fonction date() de php je recupere le nom du champ..
Posté : 25 déc. 2006, 20:06
par Truc
de plus appelée ses champs de table, avec le même principe de nommage que les variables, ne me semble pas des plus judicieux.
J'espère que ce n'est pas le cas... mais bel et bien de variables qu'il s'agit
pourtant il me semble bien que c'est ce qu'il fait
$chp_date11=$donnees["$chp_date"];
La variable est interpétée puisqu'elle est entre guillemets == il s'agit d'une variable.
Cette requête est correcte (on va juste sortir tout ce qui est variable du reste de la chaine de caractères) :
$qrySelect2="UPDATE heures_secher SET ".$chp_date11 ." = ".$chp_date11." +1 WHERE login='". $_SESSION['login'] . "'";
Mais à quel moment est-elle exécutée ?
Posté : 25 déc. 2006, 20:23
par dr.smoogy
voila tout le code:
<?php
//connection base de données
mysql_connect("localhost", "root", "");
mysql_select_db("schoolgame");
$chp_date = date("l");
$chp_date2 = date("H");
$chp_date3 = date("i");
/////////////////////////////////////////////////////////////
//selectionne le login, et le monde dans la table dans laquel l'utilisateur (pseudo= $_session...) est enregistré
$qrySelect = "SELECT $chp_date FROM planing WHERE heure='" . $chp_date2 . "'";
$reponse = mysql_query($qrySelect ) or die('ERR_SQL:<br />' . $qrySelect . '<br />' . mysql_error());
/////////////////////////////////////////////////////////////
while ($donnees = mysql_fetch_array($reponse) )
{
echo "<b><font face=verdana><FONT COLOR=#50461F>vous avez cours actuellement de" . " " . $donnees["$chp_date"] . "." . "Le cours a commencé depuis" ." " ."$chp_date3" . " " . "minutes" . "</font></font></b>";
echo "<br/>";
echo "<br/>";
}
$chp_date11=$donnees["$chp_date"];
if($chp_date2<22){
if($chp_date3>15){
echo "<b><font face=verdana><FONT COLOR=#FF0000>Trop tard vous avez raté ce cours !</font></font></b>";
$qrySelect2="UPDATE heures_secher SET ".$chp_date11."=".$chp_date11." +1 WHERE login='". $_SESSION['login'] . "'";
$reponse2 = mysql_query($qrySelect2 ) or die('ERR_SQL:<br />' . $qrySelect2 . '<br />' . mysql_error());
}else{
echo "<b><font face=verdana><FONT COLOR=#66FF00>Vite le cours va commencer !</font></font></b>";
echo "<br/>";
echo "<br/>";
include('decisioncours.php');
}
}
if($chp_date2>22){
echo "<b><font face=verdana><FONT COLOR=#66FF00>Plus de cours pour aujourd'hui !</font></font></b>";
}
$_SESSION['chp_date']=$chp_date;
$_SESSION['chp_date2']=$chp_date2;
$_SESSION['chp_date3']=$chp_date3;
mysql_close(); // Déconnexion de MySQL
?>
et la table planing:
Code : Tout sélectionner
-- phpMyAdmin SQL Dump
-- version 2.6.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Dec 25, 2006 at 07:22 PM
-- Server version: 4.1.9
-- PHP Version: 4.3.10
--
-- Database: `test`
--
-- --------------------------------------------------------
--
-- Table structure for table `planing`
--
CREATE TABLE `planing` (
`heure` decimal(100,0) NOT NULL default '0',
`Monday` varchar(250) NOT NULL default '',
`Tuesday` varchar(250) NOT NULL default '',
`Wednesday` varchar(250) NOT NULL default '',
`Thursday` varchar(250) NOT NULL default '',
`Friday` varchar(250) NOT NULL default '',
`Saturday` varchar(250) NOT NULL default '',
`Sunday` varchar(250) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Dumping data for table `planing`
--
INSERT INTO `planing` VALUES (8, 'anglais', 'anglais', 'histoire', 'maths', 'maths', '', '');
INSERT INTO `planing` VALUES (9, 'français', 'français', 'art-plastique', 'EPS', 'EPS', '', '');
INSERT INTO `planing` VALUES (10, 'allemand', 'anglais', 'maths', 'français', 'PERM', '', '');
INSERT INTO `planing` VALUES (11, 'PERM', 'svt', 'svt', 'géographie', 'allemand', '', '');
INSERT INTO `planing` VALUES (14, 'anglais', 'français', 'histoire', 'svt', 'PERM', '', '');
INSERT INTO `planing` VALUES (15, 'maths', 'PERM', 'PERM', 'français', 'allemand', '', '');
INSERT INTO `planing` VALUES (16, 'svt', 'geographie', 'anglais', 'allemand', 'PERM', '', '');
INSERT INTO `planing` VALUES (17, 'maths', 'svt', 'histoire', 'PERM', 'français', '', '');
INSERT INTO `planing` VALUES (21, 'maths', 'anglais', 'français', 'eps', 'eps', '', '');
INSERT INTO `planing` VALUES (22, 'maths', 'anglais', 'allemand', 'histoire', 'fr', '', '');
INSERT INTO `planing` VALUES (19, 'maths', 'allemand', 'histoire', 'eps', 'français', '', '');
merci d'avance
Posté : 25 déc. 2006, 20:35
par Maitrepylos
d'accord,
donc si je comprend bien dans l'opération suivante :
$chp_date11=$donnees["$chp_date"];
est équivalent à par exemple
$chp_date11='monday';
or
ne fera pas
sauf si je me trompe

Posté : 25 déc. 2006, 20:43
par dr.smoogy
voila le principe:
un planing, de lundi a mardi ( avec le nom des champs en anglais) et avec des heures..
en fonction de l'heure et du jour, on dit quel 'matière' on a...
Ensuite, on affiche, vous avez tel matière exemple maths.. et là on a le choix avec une liste entre 'secher' ou 'aller' quand on va sur sécher, on ajoute +1 a la table 'heures_secher', mais on ajoute sur la matière qu'on a sécher..
Posté : 25 déc. 2006, 20:50
par Maitrepylos
$chp_date11=$donnees["$chp_date"];
retourne bien le nom de ton champ?
Posté : 25 déc. 2006, 20:59
par dr.smoogy
oui tout marche !
Posté : 25 déc. 2006, 21:18
par Maitrepylos
Résolu alors?