2013-10-10 11 views
0

У меня проблема в этом коде, я беру информацию из двух таблиц и «где news_id = $ dz» не работает. Here is the page которые включают этот код.MySQL WHERE запрос не работает

Вот мой код:

<?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

Что ожидаемый против фактического выпуска продукции? – TheWolf

+0

Сначала вы должны подключиться к $ db. В функциях вы не можете получить доступ к $ dz. В php внутри функции вы можете получить доступ только к аргументам и локальным переменным. Поэтому вы должны передать $ dz az аргумент функции. (Или получить его как глобальную переменную, но переход как аргумент - лучший способ.) Возможно, есть и другие проблемы ... –

+0

У вас есть параметр $ id в 'FetchImage ($ id)' и 'CountImages ($ id) 'и используя где на' where news_id = $ dz' должно быть '$ id' –

ответ

0

В 1-ом запросе, измените && mxare='kaxeti' на AND mxare='kaxeti'. Кроме того, в функции FetchImage и CountImages, изменить news_id=$dz по news_id=$id

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++) 

потому, что вы делаете не нужно выполнять SQL-запрос для каждой Итерации FOR или даже удалить его - поскольку у вас есть массив $ images, итерация по нему

следующая проблема:

$d=mysql_query("select * from `images` where news_id=$id"); 
return mysql_num_rows($d); 

НЕ ИСПОЛЬЗОВАТЬ mysql_num_rows, использовать SQL count(*) - потому что он будет посылать только 1 номер из MySQL в PHP, а не весь набор результатов

Смежные вопросы