我有点问题,使用以下代码:
$getTS = mysql_query("SELECT * FROM book WHERE chapter='$url' && verse='$verse'");
当我使用
时mysql_num_rows($getTS)
它返回2,3等(这是完美的),但是,当我打印出来时,我只使用以下代码获取一行:
$rowTS = mysql_fetch_array($getTS);
$summary = $rowTS['text'];
echo $summary;
非常感谢任何帮助。
答案 0 :(得分:5)
你必须在循环中执行此操作
while($rowTS = mysql_fetch_array($getTS)) {
$summary = $rowTS['text'];
echo $summary;
}
答案 1 :(得分:2)
来自文档
返回与获取的行对应的数组并移动 前面的内部数据指针。
$getTS = mysql_query("SELECT * FROM book WHERE chapter='$url' && verse='$verse'");
while ($row = mysql_fetch_array($getTS , MYSQL_NUM)) {
$summary = $row['text'];
echo $summary;
}
答案 2 :(得分:2)
您可以使用所谓的迭代器来实现。旧的mysql_*
函数不提供它,但可以轻松编写(或重复使用,请参见前面的答案:PHP file cannot enter some part of code):
$getTS = mysql_query("SELECT * FROM book WHERE chapter='$url' && verse='$verse'");
$rows = new MySqlResult($getTS);
foreach ($rows as $row)
{
$summary = $row['text'];
echo $summary;
}
您可以直接使用数据库对象进一步改进它,例如:对于查询:
$db = new MySql();
...
$rows = $db->query("SELECT * FROM book WHERE chapter='$url' && verse='$verse'");
foreach ($rows as $row)
{
$summary = $row['text'];
echo $summary;
}
然后下一步可能就是你使用PDO,因为{@ 1}}已被弃用,PDO带有开箱即用的这种功能。