我试图检查循环的$i
变量是否等于MySQL数据库中我的表格单元格的值。我无法使它发挥作用。我不擅长PHP,所以我希望得到你的帮助。
注意:result1-20单元格在数据库中声明为整数。
提前谢谢。
<?php
date_default_timezone_set('Europe/Athens');
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "root";
$mysql_database = "db";
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Connection Error");
mysql_select_db($mysql_database, $bd) or die("DB Error");
$display = mysql_query("SELECT drawNo,drawTime,LEFT(drawTime,10) ,RIGHT(drawTime,9) FROM draw ORDER BY id DESC LIMIT 1", $bd);
while( $row = mysql_fetch_assoc($display) )
{
echo"<td>$row[drawNo]</th><th> " . $row['LEFT(drawTime,10)'] . "</td><td> " . $row['RIGHT(drawTime,9)'] . "</td>";
?>
<table border="1" cellpadding="5" style="text-align:center">
<?php
$i=1;
$result=0;
while($i<81) {
if($i%10==1) {
echo"<tr>".PHP_EOL;
}
echo "<td>".$i."</td>".PHP_EOL;
$i++;
if($i%10==1) {
echo"</tr>".PHP_EOL;
}
}
if($row[result.$i]==(int)$i) {
echo "found!";
}
}
?>
</table>
答案 0 :(得分:0)
首先,您必须从数据库中提取20个值。您已有一个查询,因此您只需获取所有列并从中提取result..
列。您还需要使用PHP提取日期和时间:
<?php
$display = mysql_query ('SELECT * FROM draw ORDER BY id DESC LIMIT 1', $bd);
if (!$display) {
/* Error: Query failed. */
}
$row = mysql_fetch_assoc ($display);
if (!$row) {
/* Error: No results. */
}
$drawdate = substr ($row['drawTime'], 0, 10);
$drawtime = substr ($row['drawTime'], -9);
$results = array();
for ($i = 1; $i < 21; $i++) {
$results[$row["result$i"]] = true;
}
例如,如果第一行的result2
包含11
,那么当$i == 2
时,代码将设置为$results[11] = true
。现在您可以从1循环到80,并检查当前数字是否在$results
中设置:
echo <<<HTML
<table>
<thead><tr><th>$row[drawNo]</th><th>$drawdate</th><th> $drawtime</th>
<tbody>
HTML;
for ($i = 1; $i < 81; $i++) {
if ($i%10 === 1) {
echo " <tr>";
}
/* Set $class if number $i is set in $results */
$class = isset ($results[$i]) ? ' class=found' : '';
echo "<td$class>$i</td>";
if ($i%10 === 0) {
echo "</tr>\n";
}
}
echo <<<HTML
</tbody>
</table>
HTML;
然后在样式表中添加.found
的样式:
td.found { color: green; }
或以内联样式:
<style type="text/css">
td.found { color: green; }
</style>