我在这段代码中遇到问题,我从两个表中获取信息并且“news_id = $ dz”无法正常工作。 Here is the page包含此代码。
这是我的代码:
<?php
mysql_query("SET NAMES UTF8");
$result = mysql_query("SELECT dz,title FROM dzeglebi where raioni='ყვარლის მუნიციპალიტეტი' && mxare='kaxeti' ORDER BY title ASC", $db);
$myrow = mysql_fetch_array ($result);
printf(
"<h2><li>
<strong><a href='../../dzeglebi.php?id=%s'>%s</a>
</strong></li></h2>",$myrow["dz"],$myrow["title"]);
function FetchImage($id)
{
$images=array();
$x=0;
$d=mysql_query("select * from `images` where news_id=$dz");
while($data=mysql_fetch_array($d))
{
$images["big"][$x]=$data["image"];
$images["small"][$x]=$data["small"];
$x++;
}
return $images;
}
function CountImages($id)
{
$d=mysql_query("select * from `images` where news_id=$dz");
return mysql_num_rows($d);
}
$imgs=FetchImage($id);
for($i=0;$i<CountImages($id);$i++)
{
echo'
<img src="../'.$imgs["big"][$i].'" >';
}
?>
答案 0 :(得分:1)
function CountImages($id)
{
$d=mysql_query("select * from images where news_id=$dz");
- 在这里你应该使用$ id
下一个问题: - 请勿使用for($i=0;$i<CountImages($id);$i++)
将其更改为
$len = CountImages($id);
for($i=0;$i<$len;$i++)
因为你不需要为每个FOR迭代执行SQL查询,甚至删除它 - 因为你有$ images数组,迭代它
下一个问题:
$d=mysql_query("select * from `images` where news_id=$id");
return mysql_num_rows($d);
不要使用mysql_num_rows
,使用SQL count(*)
- 因为它只会将1个数字从mysql发送到php,而不是整个结果集
答案 1 :(得分:0)
在第一个查询中,将&& mxare='kaxeti'
更改为AND mxare='kaxeti'
。
此外,在函数FetchImage
和CountImages
中,news_id=$dz
更改news_id=$id