pb de boucle

Eléphant du PHP | 223 Messages

12 mai 2010, 11:46

salut

les erreur dans php.ini sont deja activer
cela marche pas
il me dit que les 4 compte rebour sont terminé alors que
le premier se termine se soir as 18:00
le 2 demain as 18:00
le 3 apres demain 18:00
le 4 apres apres demain 18:00
je defins fou voici le code

Code : Tout sélectionner

<pre> <?php $link = mysql_connect('127.0.0.1', 'root', 'root'); $db = mysql_select_db('Base' ,$link); $req_atts = 'SELECT id, h_fin FROM Objet'; $reqs = mysql_query($req_atts) or exit(mysql_error()); $datas = array(); while($data = mysql_fetch_object($reqs)) { $datas[$data->id] = strtotime($data->time) * 1000; printf('<div id="%d"></div>', $data->id); } ?> <script type="text/javascript"> //<![CDATA[ var datas = <?php echo json_encode($datas) ?>; var date = <?php echo time() * 1000 ?>; var timer = function() { for(var i in datas) { if(datas.hasOwnProperty(i)) { var div = document.getElementById(i); var diff = datas[i] - date; if(diff > 0) { var down = new Date(diff); var days = Math.floor(diff / 86400000); div.innerHTML = days + ' days ' + down.getHours() + ' hours ' + down.getMinutes() + ' minutes ' + down.getSeconds() + ' seconds'; } else { delete datas[i]; div.innerHTML = 'Terminé'; } } } date -= 1000; window.setTimeout(timer, 1000); }; window.setTimeout(timer, 1000); //]]> </script>
Modifié en dernier par hashut le 12 mai 2010, 11:50, modifié 1 fois.

ViPHP
ViPHP | 5462 Messages

12 mai 2010, 11:47

salut

les erreur dans php.ini sont deja activer
cela marche pas
ta bien tout modifié, montre ton PHP, + le code source de ta page HTML qu'il te sort

Eléphant du PHP | 223 Messages

12 mai 2010, 11:52

Terminé
Terminé
Terminé
Terminé
voir en dessus le code

ViPHP
ViPHP | 5462 Messages

12 mai 2010, 11:53

normal ta pas changer le "time"
$datas[$data->id] = strtotime($data->time) * 1000;    
et montre ton code HTML

Eléphant du PHP | 223 Messages

12 mai 2010, 11:56

voici le code
<pre>
<?php
        $link   = mysql_connect('127.0.0.1', 'root', 'root');
        $db             = mysql_select_db('enclic' ,$link);

        $req_atts       = 'SELECT id, h_fin FROM Objet';
        $reqs           = mysql_query($req_atts) or exit(mysql_error());
        
        $datas          = array();
        
        while($data = mysql_fetch_object($reqs))
        {
                   
                printf('<div id="%d"></div>', $data->id);
                $datas[$data->id] = strtotime($data->time) * 1000;
        }
?>
<script type="text/javascript">
        //<![CDATA[
        var datas = <?php echo json_encode($datas) ?>;
        var date  = <?php echo time() * 1000 ?>;
        
        var timer = function()
        {               
                for(var i in datas)
                {
                        if(datas.hasOwnProperty(i))
                        {
                                var div  = document.getElementById(i);
                                var diff = datas[i] - date;
        
                                if(diff > 0)
                                {
                                        var down = new Date(diff);
                                        var days = Math.floor(diff / 86400000);
        
                                        div.innerHTML = days + ' days ' + down.getHours() + ' hours ' + down.getMinutes() + ' minutes ' + down.getSeconds() + ' seconds';
                                }
                                else
                                {
                                        delete datas[i];
                                        div.innerHTML = 'Terminé';
                                }
                        }       
                }
                date -= 1000;
                window.setTimeout(timer, 1000);
        };
        
        window.setTimeout(timer, 1000);
        //]]>
</script>

ViPHP
ViPHP | 5462 Messages

12 mai 2010, 13:18

c'est que je te dis ta pas changer le data->time, et ta pas non plus les erreurs d'afficher puisque ca devrais t'en afficher une

EDIT : d'ailleur de quelle type est ton champs h_fin ?

Eléphant du PHP | 223 Messages

12 mai 2010, 14:34

Non j'ai pas erreur

le data????
le sql
REATE TABLE `Objet` (
  `id` int(11) NOT NULL auto_increment,
  `h_fin` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Contenu de la table `Objet`
--

INSERT INTO `Objet` VALUES(1, '2010-05-13 18:00:00');
INSERT INTO `Objet` VALUES(2, '2010-05-14 18:23:00');
INSERT INTO `Objet` VALUES(3, '2010-05-15 17:39:29');
INSERT INTO `Objet` VALUES(4, '2010-05-16 17:39:38');

ViPHP
ViPHP | 5462 Messages

12 mai 2010, 14:37

normal ta pas changer le "time"
$datas[$data->id] = strtotime($data->time) * 1000;    
et montre ton code HTML
c'est $data->h_fin qui faut que tu mettes

Eléphant du PHP | 223 Messages

12 mai 2010, 14:58

merci trop con je suis
cela marche nickel merci merci merci

ViPHP
ViPHP | 5462 Messages

12 mai 2010, 15:00

cool :wink:
t'as compris comment ca marchait ou tu veux que je t'explique ?

Eléphant du PHP | 223 Messages

12 mai 2010, 15:15

pas tous a fait
mais le temp augmente mois je voudrais qui dessend
bizzare
pour temp quand le temp est venue il affiche bien terminé
pk ??

ViPHP
ViPHP | 5462 Messages

12 mai 2010, 15:26

bizarre, montre le code HTML que ca te rend (pas le PHP)

Eléphant du PHP | 223 Messages

12 mai 2010, 15:41

Code : Tout sélectionner

<pre> <?php $link = mysql_connect('127.0.0.1', 'root', 'root'); $db = mysql_select_db('enclic' ,$link); $req_atts = 'SELECT id, h_fin FROM Objet'; $reqs = mysql_query($req_atts) or exit(mysql_error()); $datas = array(); while($data = mysql_fetch_object($reqs)) { printf('<div id="%d"></div>', $data->id); $datas[$data->id] = strtotime($data->h_fin) * 1000; } ?> <script type="text/javascript"> //<![CDATA[ var datas = <?php echo json_encode($datas) ?>; var date = <?php echo time() * 1000 ?>; var timer = function() { for(var i in datas) { if(datas.hasOwnProperty(i)) { var div = document.getElementById(i); var diff = datas[i] - date; if(diff > 0) { var down = new Date(diff); var days = Math.floor(diff / 86400000); div.innerHTML = days + ' days ' + down.getHours() + ' hours ' + down.getMinutes() + ' minutes ' + down.getSeconds() + ' seconds'; } else { delete datas[i]; div.innerHTML = 'Terminé'; } } } date -= 1000; window.setTimeout(timer, 1000); }; window.setTimeout(timer, 1000); //]]> </script>

ViPHP
ViPHP | 5462 Messages

12 mai 2010, 15:43

lol a chaque fois tu mets le PHP, je veux juste le HTML la source de ta page final

Eléphant du PHP | 223 Messages

12 mai 2010, 16:19

ben la tu as toute la page lol