Проблема с запросом на хостинге

vladlen

Новичок
Проблема с запросом на хостинге

Данный участок кода без проблем выполняется на локальной машине (XP, PHP 4.3.4, MySQL 3.23.44, Apach 1.3.29)

На хостинге (Linux, PHP 4.3.3, MySQL 4.0.15, Apach 1.3.29) не отрабатывает как надо, результат выборки не выводится. Помоему потому, что из базы ни одной записи не выбирается, хотя они там есть.

В чём может быть проблема?


PHP:
$namber=0;
$result = db_query('
	SELECT * FROM kind t1, firma t3, adress t4, email t5, sait t6, servis_firma t7, telephon t8,  katalog t2
	WHERE t7.id_kind=t1.id AND t7.id_katalog=t2.id AND t2.id_firma=t3.id AND t2.id_adress=t4.id AND 
	t2.id_email=t5.id AND t2.id_sait=t6.id AND t2.id_telephon=t8.id  ORDER BY BINARY (t3.firma)');		
	while($row = mysql_fetch_array ($result)){
			$namber=++$namber;
			echo (	"<table width='430' border='1'  bordercolor='#aaaaFF' cellpadding='0' cellspacing='0' frame='below'><tr><td>
			<table width='420' border='0' cellpadding='0' cellspacing='0' frame='below'><tr class='katalog'>
			<td valign='top' width='30' align='center'>".$namber."</td>
			<td width='410'>");
				
			if ($row['firma']!="0"){
			echo ("<em>Фирма: </em>${row['firma']}<br>");
			}
				
			echo ("<em>Услуги: </em>${row['servis']}<br>");
							
			if ($row['adress']!="0"){
			echo ("<em>Адресс: </em>${row['adress']}<br>");
			}
			
			echo ("<em>Тел. </em>${row['telephon']}<br>");
			
			if ($row['email']!="0"){
			echo ("<em>e-mail: </em>${row['email']}<br>");
			}
				
			if ($row['sait']!="0"){
			echo ("<em>Сайт: </em>${row['sait']}");
			}
                           echo ("</td></tr></table></td></tr></table>");
	}

echo ("</TBODY></th></tr></table>");

function db_query($query)
		{
		  $result = mysql_query($query) or die('Не могу сделать запрос к базе данных <br>'.mysql_error());
		  return $result;
		}
 

Demiurg

Guest
в чем угодно, тебе знакомо такое понятие, как отладка ?
 

Demiurg

Guest
Тогда объясняю.
отладка - это пошаговое выполнение твоей программы с проверкой всех параметров на каждом шаге. Она позволяет локализовать проблему и является основной задачей программиста. То есть ты должен понимать на каждом шаге что у тебя содержится в кажой переменной. В php для этого можно использовать echo и var_dump вставляя их в нужных местах.
 

vladlen

Новичок
В данном случае, по моему, проблемное место определено.
Запрос выполнен (так как ошибку не выдал)
Далее должен вывестись кусок html кода.
while($row = mysql_fetch_array ($result)){

...
html
...
}
что не происходит, выдимо из-за отсутсвия выбранных сторок.
Это странно, потому что локально код отрабатывает.

Страница отображается (за исключением этого участка)
error_reporting(E_ALL); ни на что не ругается

Исходя из сказанного получается что ошибка в запросе.
 

Demiurg

Guest
ты уверен, что данные на хостинге и на локальной машине совпадают ?
 

vladlen

Новичок
Да.
После закачки на хост, всплывали ошибки в других файликах (под XP всё работало, а под Linux начал ругаться) исправил, всё ок.

А на этом участке и не ругается и не отрабатывает как надо.
Может и в этом случае есть какая то фишка для Linux?
 

Demiurg

Guest
фишек никаких нет, возьми запрос и сделай его не используя php, с помощью любого клиента. На хостинге и у себя и посмотри на разницу.
 
Сверху