【问题标题】:PHP Time variable not working in while loopPHP时间变量在while循环中不起作用
【发布时间】:2013-10-14 19:28:27
【问题描述】:

我从我的数据库中获取时间,当我回显它时它可以工作,但它在 while 循环中不起作用。 但是,其他变量有效...

代码:

$resultevent = mysql_query('SELECT  venue, date, TIME_FORMAT(startTime, "%h:%i %p") AS startTime2, TIME_FORMAT(endTime, "%h:%i %p") AS endTime2 FROM events"');
$rowevent = mysql_fetch_assoc($resultevent);

$date = new DateTime($originaldate);
$newdate = $date->format('m/d/Y');
$startTime2 = $rowevent['startTime'];
$endTime2 = $rowevent['endTime'];
$venue = $rowevent['venue'];

echo $startTime2; <============== WORKS HERE

while ($row = mysql_fetch_assoc($result)) { //the code for these queries is not shown
   echo 'getting here'; <======= WORKS
   echo $venue; <======= WORKS
   echo $startTime2; <======= DOESNT WORK
}

【问题讨论】:

  • 对于初学者来说,没有名为$result 的变量吗?
  • 您确定此代码与您的代码完全一致吗?你说的“工作”确实是你认为的地方吗?我建议修改您的 echo 语句,使其看起来更像这样:"At line 10, we echo $startTime2 as " . $startTime2; - 这使得哪些行在做什么变得明确。
  • 改变回声 $startTime2;回显 "-".$startTime2."-";所以你可以确保开始时间变量没有被打印出来。也许它是空的。如果为null,则打印出“--”。
  • 在我写的评论中我没有展示一些处理 while 语句的代码
  • 它是空的,但我知道如何,在 while 循环之前它不为空

标签: php mysql variables time while-loop


【解决方案1】:

1.在你的循环中$results 来自哪里? 2.您在查询中将 startTime 设置为 startTime2,与 endTime 设置为 endTime2 相同。 显然,即使您的 echo $venue.. 也无法正常工作。因为您什么也得不到。

应该是这样的代码:

    $date = new DateTime($originaldate);
    $resultevent = mysql_query('SELECT  venue, date, TIME_FORMAT(startTime, "%h:%i %p") AS startTime2, TIME_FORMAT(endTime, "%h:%i %p") AS endTime2 FROM events"');

    while ($rowevent = mysql_fetch_assoc($resultevent)) { //now you fetch your query in $resultevent

       $newdate = $date->format('m/d/Y');
       $startTime2 = $rowevent['startTime2'];
       $endTime2 = $rowevent['endTime2'];
       $venue = $rowevent['venue'];

       echo 'getting here';
       echo $venue; 
       echo $startTime2;
    }

【讨论】:

    【解决方案2】:

    您的查询正在返回带有别名的时间列。要从您的行中读取它们,您应该使用别名作为索引:

    $startTime2 = $rowevent['startTime2'];
    $endTime2 = $rowevent['endTime2'];
    

    【讨论】:

    • 观察力不错。为什么你认为echo $startTime2;while 循环之外工作?这就是困扰我的...
    • 我不知道。您的代码不完整,所以可能是其他东西遗留下来的。
    • 是的,我知道为什么它在 while 循环之外起作用。不过,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-03-11
    • 2019-04-21
    • 2013-03-26
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多