【发布时间】:2012-08-28 23:58:12
【问题描述】:
我认为这可能真的很简单,但我一定忽略了一些东西。
基本上,我有 If/Else php 语句,用于检查条件是否为真。在这些 if 语句中的每一个中,都有一个 WHILE 循环,它从我的数据库中回显所有适当的行。
while 循环需要打印一些表格单元格和行中的字段。目前,每个 WHILE 循环都有手动输入的代码,这意味着如果我想更改布局或其他内容,我需要在每个 while 循环中进行更改。
我想做的是定义一个变量,我可以回显它,这样我只需要在一个地方更改代码,它就可以影响所有的 WHILE 循环。但是,WHILE 循环中内容的性质意味着这不会起作用,原因如下:
//If the date is a monday
if($daycheck == "Monday") {
//Start a row and create cell with date in
echo "<tr><td height='100px' valign='top'>".$datedisplay."<br />";
//For each event found for this day
while($dayrow = mysql_fetch_assoc($dayresult)) {
//Show the event info
echo $dayrow['Event Time']."<br />".$dayrow['Event Name']."<br />";
}
//End the cell for the day
echo "</td>";
}
这是一个 IF 语句,但想象一下下面还有几个。您可以在中间看到我的 WHILE 循环,显示数据库中每一行的字段。
问题是,如果我坚持:
$dayrow['Event Time']."<br />".$dayrow['Event Name']."<br />";
在while循环之前放入一个变量,当我将它回显出来时,每次都将是相同的,因为$dayrow部分没有得到更新。
有什么方法可以将上面的内容放入一个变量中,以便每次 WHILE 循环运行时更新它?
也许 $dayrow[''] 部分以某种方式存储为文本而不是变量?
感谢您提供的任何帮助。
编辑
【问题讨论】:
-
当你 var_dump($dayrow) 你得到什么???
-
首先,我认为您的问题的主要部分是您在每个循环中使用不同的变量名。是什么阻止您在每个循环中只调用变量
$row?其次,请注意sprintf()- 它会改变您对此类事情的整体看法。 -
如果我执行 $dayrow 的 var_dump,我会得到一个包含该行所有字段和值的数组,但前提是我从 while 循环中执行转储
-
@daverandom 每个 if 语句中的每个 while 循环每次都会包含完全相同的内容,这就是为什么我尝试将其存储为一个可以更改以影响所有循环的变量。如果您的意思是我调用 $dayrow['Event Time'] 和 ['Event Name'],那是因为这些值是需要分隔的数组的一部分。
标签: php mysql variables if-statement while-loop