Здраствуйте. У меня есть идея создать сервер чтото типа миниаюрного яндекса. Начал писать код на PHP вот столкнулся с токой проблемой в коде error Parse error: parse error, unexpected T_INC, expecting ')' in z:\home\sp\www\stroitel-efirmi.php on line 10 Вот сам код. <?php $base=mysql_connect('localhost','root','123456'); mysql_select_db('CtroitelniiFirmi',$dase); $result=mysql_query('SELECT * FROM Firmi', $base); $ColStol=intval(mysql_num_fields($result)); $ColStrok=intval(mysql_num_rows($result)); $daniestrok=mysql_fetch_row($result); function SpisokFirm() { print("<table border=0 aling=centor valing=top>"); for ($ColStolNum=0;$ColStolNum<ColStol;ColStolNum ++) { print("<tr>"); for($ColStrokNum=0;$ColStrokNum<$ColStrok;$ColStrokNum++) { print("<td>"$daniestrok[$ColStrokNum]"</td>\n"); } print("</tr>"); } print("</table>"); } mysql_close($base); ?> У кого есть соображения на эту тему.
мдя, рановато Вам Яндекс писать... 1. оформили бы код тэгами, что ли... 2. PHP: <? for ($ColStolNum=0;$ColStolNum<ColStol;ColStolNum ++) ?> переменные без $ 3. PHP: <? print("<td>"$daniestrok[$ColStrokNum]"</td>\n"); ?> тута тоже ошибка выпадет 4. Про область видимости переменных когда-нибудь слышали? Нет? Скоро познакомитесь...
Я зделал вот так <? for ($ColStolNum=0;ColStolNum<$ColStol;ColStolNum ++) ?> <? print("<td>"$daniestrok[ColStrokNum]"</td>\n"); ?> но ошбка тем не мнеее не исчезает Parse error: parse error, unexpected T_INC, expecting ')' in z:\home\sp\www\stroitel-efirmi.php on line 10
С переменными все исправил: <?php $base=mysql_connect('localhost','root','123456'); function SpisokFirm($base) { $base=mysql_select_db('CtroitelniiFirmi',$base); $dannie=mysql_query('SELECT * FROM Firmi', $base); $ColStol=mysql_num_fields($dannie); $ColStrok=mysql_num_rows($dannie); $daniestrok=mysql_fetch_row($dannie); print("<table border=0 aling=centor valing=top>"); for ($ColStolNum=0;$ColStolNum<$ColStol;$ColStolNum ++) { print("<tr>"); for($ColStrokNum=0;$ColStrokNum<$ColStrok;$ColStrokNum++) { print("<td> $daniestrok[$ColStrokNum] </td>\n"); } print("</tr>"); } print("</table>"); } mysql_close($base); ?> Вот только вылезают токие предупреждения. Warning: mysql_select_db(): 2 is not a valid MySQL-Link resource in z:\home\sp\www\stroitel-efirmi.php on line 6 Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in z:\home\sp\www\stroitel-efirmi.php on line 7 Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in z:\home\sp\www\stroitel-efirmi.php on line 8 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in z:\home\sp\www\stroitel-efirmi.php on line 9 Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in z:\home\sp\www\stroitel-efirmi.php on line 10 что они означают и как иходавить?
нет подключения к базе Зачем всё в функции делать? сделайте обычным скриптом хотя бы так PHP: <?php $link = mysql_connect('localhost','root','123456'); mysql_select_db('CtroitelniiFirmi', $link) or die("Invalid query: " . mysql_error()); $str = ''; $dannie=mysql_query('SELECT * FROM `users`;', $link) or die("Invalid query: " . mysql_error()); mysql_close($link); if($dannie){ $str .= '<table border=0 aling=centor valing=top>'; while($row=mysql_fetch_row($dannie)) $str .= '<tr><td>'.$row[0].'</td><td>'.$row[1].'</td></tr>'; $str .= '</table>'; } else $str .= 'Облом'; echo $str; ?>
Не обычным скриптом делать не хочу. Дело в то что это будет не единственное место которое работает с базой. Да еще и фунцию переделаю может .
Фунция то универсальная. PHP: $base=mysql_connect('localhost','root','123456'); function SpisokFirm($base) { $base=mysql_select_db('CtroitelniiFirmi',$base); $dannie=mysql_query('SELECT * FROM Firmi', $base); $ColStol=mysql_num_fields($dannie); $ColStrok=mysql_num_rows($dannie); $daniestrok=mysql_fetch_row($dannie); print('<table border=0 aling=centor valing=top>'); for ($ColStolNum=0;$ColStolNum<$ColStol;$ColStolNum ++) { print('<tr>'); for($ColStrokNum=0;$ColStrokNum<$ColStrok;$ColStrokNum++) { print('<td>' .$daniestrok[$ColStrokNum]. '</td>\n'); } print('</tr>'); } print('</table>'); } mysql_close($base);
НУ почти универсальная немного надо переделать т.е. в ф-й SpisokFirm добавить помимо переменной конеткта, переменную (название) базы данных, и переменную таблици (Название). А причем здесь к ошибке, область видимости, так и не понял.
чем? а что, если понадобится что-то найти или заменить в таблице, то базу выбирать? COUNT(*) шустрее, да и здесь вообще не нужен а что, Вы сами не знаете сколько полей у таблицы? \n здесь не сработает P.S. хотел бы я посмотреть на конечный результат сей разработки... Толпа функций, в которых в одну кучу собраны и запросы, и их обработка, и вывод результатов, а возможно ещё и логика. Если надо будт что-нибудь исправить, то чёрт ногу сломит.
Эта функция изначально предназначенна для вывода инфор-й. Я то знаю но может со временем таблица измениться потом код придется менять а так понял таблицу и дело в шапке. print("<td>$daniestrok[$ColStrokNum]</td>\n"); А так сработает?
ну, когда всё закончите, то поделИтесь ощущениями от внесения изменений и исправления ошибок а попробовать? да.
Я конечно не считаю себя профессионалом, дело в том что у меня стоит Денвер и какбы есть подозрения что он грешит с подключением к базе. Вот и хотелось у знать что правильно синтаксически написан код.
Ну ты вооще *****, я тебе скажу молотого что ты ***** неотвечаещ но еще и ****. ****** ты вообще здесь нужен. vb: Да Олег, на *** ты отвечаешь на посты долбо***? В ***** товарисча, в *****!
Stogov, так его, так его Горбунов Олег, ты бы отдельную тему создал и кидал туда подобное. Так, для истории
Дык, этим же вопросом я сам задаюсь, нафиг я тут нужен, с дураками няньчится? ни денег, ни слова доброго =)
Денвер, бывает глючит, с бд. Но проверить её работоспособность легко. Достаточно написать функцию mysql_connect с выдачей результата. А пока, могу только посоветовать купить учебник по php и прочитать хотя бы первые 20 страниц о синтаксисе, основах программирования и основных элементах.
я 4 года работаю с Денвером. Ни разу ни одной проблемы не наблюдал. А кривые руки даже самый обточенный Апач поломают.
Действительно. Денвер - его и конфигурировать не надо. Ставь и пользуйся. Просто надо знать что -uroot -p(`пустой`)
Stogov из отрывка не видно, как вы вызываете функцию, похоже, проблема именно при вызове переменная $base у вас довольно странно используется в функции -- сначала это соединение, затем -- bool код бы форматировали нормально -- было бы лучше для всех, в том числе и для вас а попинали вас правильно я бы тоже добавил, но неохота сейчас