2013-10-15 46 views
0

如果你看看jsfiddle,你会注意到黄色和红色的模块。我有我所有的代码工作,除了我必须手动输入模块的HTML/PHP。根据SQL计数编写php代码

http://jsfiddle.net/W6zYA/1/

我的模块代码是:

<?php $row = mysql_fetch_row($result); ?> 
<a href='#' data-reveal-id="<?php echo $row[0]; ?>" data-animation="none" > 
<div class="grid_3"> 
<p id="contexttitle"> 
<?php echo $row[1]; ?> 
    <span style="float:right;"> <?php echo $row[3]; ?> </span> 
    </p> 
    <p id="accesssubmenu">Last Update: <?php echo $row[6]; ?> </p> 
</div> 
</a> 
<div id="<?php echo $row[0]; ?>" class='reveal-modal'>     
<h1> <?php echo $row[1]; ?> </h1> 
<p> <?php echo $row[4]; ?> </p> 
<p4>Last Update: <?php echo $row[6]; ?> </p4> 
<a class="close-reveal-modal">&#215;</a> 
</div> 

什么,我想要做的是有它创建一个基于SQL查询这些模块的X金额,我计算行中的#每个部分(红色,黄色,绿色)。

我试图存储在SQL数据库的PHP和研究后发现,这是不好的做法,并使用eval()时一样会有用户输入不应该就算做完了。我还阅读了关于Smarty等PHP模板的内容,但不确定这对我是否是正确的解决方案。

如果有人能在正确的方向指向我,我会非常感激,我只是不知道从哪里开始到谷歌/什么。

+0

你正在寻找一个简单的'for' /'while'循环在PHP或'include'中吗?我不确定我明白你在这里需要什么。 –

+0

我觉得我很难写出我需要的东西,所以害怕我没有说清楚。我很确定必须使用循环。假设红色部分有4个项目(数据库会告诉我),我希望能够为红色部分编写4个模块。如果黄色为3,我希望能够为该部分编写3个模块。然而,基本上我的数据库中有很多行具有这种特定颜色的状态,我会写很多模块。我可以创建一个循环在PHP中,将采取一个SQL查询和输入的结果?对不起,如果我没有意义。 – ZeroAccess

+0

你* *有意义*现在*;)。看看下面的Gavin的回答,并尝试一下。我想你可以从这里拿走它。如果不检查SO上的其他问题。 –

回答

1

mysql_fetch_row只取一行。如果你有多行,你需要mysql_fetch_assoc或mysql_fetch_array,并使用类似foreach循环来循环遍历结果。这将输出html的次数与MySQL查询中的结果一样多。

+0

想要阅读这篇文章,已经有一段时间了。将检查一旦我得到它的工作,但非常肯定这将让我在我需要的地方。再次感谢你的帮助。 – ZeroAccess

+0

没问题。祝你好运。 – Gavin

+0

应该这样做。 – Gavin

0

尝试mysql_num_rows($result)这会给你查询返回的行数。我会尝试升级到PDO或MySQL,因为mysql_ *函数将在PHP 5.5

http://php.net/manual/en/function.mysql-num-rows.php

+0

op正在使用mysql_fetch_row ...如果找不到结果,它将始终返回0,如果找到任何结果,则返回1。 – Gavin

0

被弃用我认为,你从你的数据库获得多个记录?这样你可以使用while循环来循环你的结果。

while ($row = mysql_fetch_row($result)) { 
// do you html code here. 
} 

这应该做的伎俩。

+0

这将不起作用... mysql_fetch_row提取单个行。 http://php.net/manual/en/function.mysql-fetch-row.php – Gavin

+1

这应该工作:[来自文档]返回一个数字数组,对应于获取的行和** bold **移动内部数据指针提前** **大胆** –

+0

了解到新的东西。谢谢。 – Gavin