Помогите понять какая ошибка в скрипте

Статус
В этой теме нельзя размещать новые ответы.

andrystepa

Новичок
Помогите понять какая ошибка в скрипте

оторый день бьюсь, никак не могу найти, где напортачил. Вроде все просто:
база данных на MySQL 5.0.45. В ней есть таблица makers с полями makers_id INT auto_increment not null - первичный ключ, и makers_name VARCHAR. Мне нужно из этой таблицы (в смысле из полей makers_name) сделать выпадающий список. Для начала пишу страницу авторизации:
Код:
<html>
<head>
<title></title>
</head>
<body>
<?php
$conn= mysql_connect("localhost", $userl, $userp);
if($conn) {
	print <<<HERE
	<div align="center"><h1><font color="red" face="Comic Sans MS">
	You connected!
	</font></h1></div>
	<br><br>
	<div align="center">
		<a href="showlist1.php">
		<font size="+2" color="#0000FF">Checking</font>
		</a>
	</div>

HERE;
	mysql_select_db("Classificator", $conn);
	}
else {
	print "<h1>Connection failed!</h1>";
	}
?>
</body>
</html>
Далее, если подключение удалось, то переходим на страницу "Проверка" (или showlist1.php):
Код:
<html>
<head>
<title></title>

<?php
include "ClLib.php";
?>

</head>
<body>
<h1><div align="center"><font size="+2" color="#FF0045" face="Comic Sans MS">Makers list/font></div></h1>
<br><br><br><br>

<?php
//connection to BD
$conn = mysql_connect($serverName, 'myserver', '4321');
mysql_select_db("Classificator", $conn);
//create query
$sql = "SELECT * FROM makers";
$result = mysql_query($sql);
if ($result) {
print <<<HERE 
	<select name="selman" id="selman">
HERE;
	print printlist($result);
print <<<HERE
	</select>
HERE;
} else { print "Query Error"; }
?>

</body>
</html>
В библиотеке ClLib.php функция printlist($result) выглядит так:
Код:
function printlist($result) {
			while ($names = mysql_fetch_assoc($result)) {	
				$output .= " <option value=.$names['maker_name']>";
				$output .= ".$names['maker_name'].</option>\n";
					}
		return $output;
	}
При попытке войти на страницу "Проверка" браузер выдает сообщение: "Ошибка при загрузке http://develop.ru/Classificator/showlist1.php:
Внутренняя ошибка сервера
myserver.ru"
Это выдает Konqueror, Firefox вообще выдает пустую страницу, а в консоли ошибок пустота.
А в логе апача написано вот что:
Код:
[Mon Sep 29 14:33:44 2008] [error] [client 169.254.37.2] PHP Parse error:  syntax error, unexpected T_SL in /var/www/develop/Classificator/showlist1.php on line 34, referer: [url]http://develop.ru/Classificator/enter.php[/url]
строка 34 в исходнике выглядит так:
Код:
print <<<HERE 
	<select name="selman" id="selman">
	printlist($result)
	</select>
HERE;
Но Bluefish показывает, что эта ошибка в строке
</html>
то есть получается что завершающий тег ошибочен! Но почему?

Я не могу понять, где же тут ошибка? У меня есть отладчик для php, но он под винду. Может еще подскажете, чем можно отлаживать код?
 

Фанат

oncle terrible
Команда форума
где ошибка я не знаю - лично у меня в голове встроенного интерпретатора нет.
ошибки синтаксиса ловятся последовательным сокращением текста.
 

HraKK

Мудак
Команда форума
*****
В книжках умных такое встречал,
В темную силу он возверовал
 

Фанат

oncle terrible
Команда форума
ладно, проехали.
там выводится одна переменная, и это теоретически может быть оправданием
 

Фанат

oncle terrible
Команда форума
ошибки синтаксиса ловятся последовательным сокращением текста.

-~{}~ 29.09.08 17:45:

что здесь неясного?
 

Активист

Активист
Команда форума
Используй Zend Studio (5.5.1 или 6 for Eclipse, это уж кому как нравится).

Используя Copy/Past мой Zend обнаружил у тебя лишний пробел после "<<<HERE"
 

andrystepa

Новичок
Всем спасибо, помогли на другом форуме.
В функции printlist($result) надо было проинициализировать переменную $output перед циклом, а в цикле писать:
$output .= " <option value=".$names['maker_name'].">";
То есть добавить кавычки! Для всего этого не надо ниотладчиков , ни последовательных сокращений кода - достаточно лишь внимательно посмотреть на код.....
 

HraKK

Мудак
Команда форума
[зачеркнуто]andrystepa[/зачеркнуто] Факир был пьян и ничего не понял.
 

Фанат

oncle terrible
Команда форума
да, действительно.
когда есть люди, которые могут внимательно посмотреть на твой код, а так же писать его, отлаживать и деплоить, то ни отладчики, ни редакторы ни даже компьютер не нужен.
 

boombick

boombick.org
достаточно лишь внимательно посмотреть на код.....
а что сам-то не посмотрел? Это же так просто... А вот те люди, которые посмотрели ЗА тебя - они-то как раз использовали дебаг и последовательное сокращение :)

ЗЫ Хороший пример ООП кстати... Задал вопрос, получил ответ, детали реализации скрыты :)
 

andrystepa

Новичок
Автор оригинала: boombick
а что сам-то не посмотрел? Это же так просто... А вот те люди, которые посмотрели ЗА тебя - они-то как раз использовали дебаг и последовательное сокращение :)

ЗЫ Хороший пример ООП кстати... Задал вопрос, получил ответ, детали реализации скрыты :)
Что поделаешь! Я частенько замечал, что когда долго бьешься над каким-нибудь своим кодом, в поисках простейшей, как потом выясняется, ошибки, свежий взгляд со стороны ее разглядывает сразу. И в данном случае действительно отладчики не понадобились - просто люди взглянули на код со стороны. Можете поглядеть как проходило обсуждение там
И, кстати, почему же детали реализации скрыты? Я вроде как весь коды приводил! Что еще надо?
 

HraKK

Мудак
Команда форума
Я вроде как весь коды приводил! Что еще надо?
Убил. Достойное завершение дня ) Началось с угроз физической расправы, а в конце повеселили)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху