2010-05-04 4 views
1

Ce code comporte quelques parties. La première partie est la création d'appareils.La boucle de temps de marche ne fonctionne pas

$totalRounds = $teams - 1; 
    $matchesPerRound = $teams/2; 
    $rounds = array(); 
    $roundDates = array(); 
    $curTime = time(); 

    for ($i = 0; $i < $totalRounds; $i++) { 
     $rounds[$i] = array(); 
     $numDays = $i * 4; 
     $roundDates[$i] = strtotime("+".$numDays." days",$curTime); 

    } 

    foreach($roundDates as $time) { 
     for ($round = 0; $round < $totalRounds; $round++) { 
      for ($match = 0; $match < $matchesPerRound; $match++) { 
       $home = ($round + $match) % ($teams - 1); 
       $away = ($teams - 1 - $match + $round) % ($teams - 1); 
       // Last team stays in the same place while the others 
       // rotate around it. 
       if ($match == 0) { 
        $away = $teams - 1; 
       } 

       $rounds[$round][$match] = "$user[$home]~$team[$home]@$user[$away]~$team[$away]~$time"; 
      } 
     } 
    } 

Dans le code ci-dessus, une heure est faite pour chaque série d'appareils. À la fin du code, j'ai ajouté $ time.

 for ($i = 0; $i < count($rounds); $i++) 
    { 
     foreach ($rounds[$i] as $r) 
     { 
      $seperateUsers = explode("@",$r); 
      $homeinfo = $seperateUsers[0]; 
      $awayinfo = $seperateUsers[1]; 
      $homedetails = explode("~",$homeinfo); 
      $awaydetails = explode("~",$awayinfo); 
      $database->addFixtures($homedetails[0], $homedetails[1], $awaydetails[0], $awaydetails[1], $awaydetails[2]); 
     } 
    } 

Cette partie du code décompose le code d'en haut pour le mettre dans la table. Pour une raison quelconque, la date qui est entrée dans la base de données sort 0000-00-00 00:00:00.

Y at-il quelque chose que n'importe qui peut voir pour résoudre ce problème?

Éditer: la boucle ne fonctionne pas? Est-ce que je manque quelque chose sur la boucle?

Répondre

1

Les sons comme $ homedetails [0], etc. ne sont pas définis. Vous pouvez utiliser un débogueur pour examiner ces valeurs avant d'appeler le addFixtures() ou de les examiner en ajoutant des instructions simples echo ou var_dump() juste avant l'appel.

+0

Tout est dans la base de données sauf $ awaydetails [2]. Ce champ de la base de données est défini comme datetime. Je suppose que ce n'est peut-être pas ce qui est nécessaire? Dans quel format ma date dans le code ci-dessus va-t-elle dans la base de données? – sark9012

+0

Dans ce format '0000-00-00 00: 00: 00'. C'est "AAAA-MM-JJ HH: mm: ss". strtotime() donne un certain nombre de secondes depuis l'époque "unix". Utilisez la fonction 'date()' de PHP pour le mettre dans le formulaire ci-dessus. Je crois, 'date (" Y-m-d H: i: s ", $ temps)' devrait fonctionner. –

Questions connexes