За последние 24 часа нас посетили 22950 программистов и 1264 робота. Сейчас ищут 747 программистов ...

ошибка syntax error, unexpected T_VARIABLE

Тема в разделе "Вопросы от блондинок", создана пользователем kfurious, 15 авг 2008.

  1. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Код (Text):
    1. debug_mode=true;
    :D
    а почему не хотите использовать ассоциативные индексы?удобнее ведь, не?
    2all в каких случаях пригождаются числовые индексы?
     
  2. wride

    wride Активный пользователь

    С нами с:
    19 май 2010
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    Третий рим
    Padaboo спасибо за совет!

    Я бы с удовольствием поморочился, только время поджимает, пишу форум по книжке, сверяю с текстом, вроде все ровно, но выдает ошибку

    про дебаг можно чуть чуть поподробнее, пхп начал осваивать недавно
     
  3. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    wride
    да это так шутка про
    Код (Text):
    1. debug_mode=true;
    еще у меня есть
    Код (Text):
    1. telepat_mode=true;
    я не много под шафэ, поэтому соображаю очень туго)
    советую загуглить
    посмотреть несколько результатов там есть объяснение ошибки и собственно сам вывод ошибок mysql_error()
    и загуглить "название книжки ошибка"
     
  4. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    можно
    http://phpfaq.ru/debug
     
  5. wride

    wride Активный пользователь

    С нами с:
    19 май 2010
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    Третий рим
    Благодарю за советы=)
    Simpliest
    Мне эта статья очень помогла=) в данном случае, нашел не одну ошибку благодаря ей=)
     
  6. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Самое время поговорить о "спичечной оптимизации" :)
     
  7. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Вообще или при выборке из базы?
     
  8. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Volt(220)
    при выборке из базы
     
  9. starchik

    starchik Активный пользователь

    С нами с:
    23 ноя 2008
    Сообщения:
    16
    Симпатии:
    0
    а можно сделать sql запрос, что бы выборка из базы завершалась при первом же соответствии запросу и дальше база не перелопачивалась.
     
  10. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
  11. starchik

    starchik Активный пользователь

    С нами с:
    23 ноя 2008
    Сообщения:
    16
    Симпатии:
    0
    спс:)
     
  12. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    а потом окажется, что у него нету индексов, запрос из пары-тройки таблиц…
     
  13. starchik

    starchik Активный пользователь

    С нами с:
    23 ноя 2008
    Сообщения:
    16
    Симпатии:
    0
    не, запрос из 1 таблицы. это как раз то что надо было.

    з.ы. ток что понял что пишу не по теме :)
    точняк блондин;)
     
  14. SerafimNVKZ

    SerafimNVKZ Активный пользователь

    С нами с:
    9 июн 2010
    Сообщения:
    2
    Симпатии:
    0
    Люди помогите нубу!!
    В общем скрипт должен добавлять данные в бд. При обработке выползает ошибка Parse error: syntax error, unexpected T_LNUMBER in Z:\home\localhost\ordersong.php on line 10

    PHP:
    1.  
    2. <?php
    3. $array[ispolnitel] = trim($array["ispolnitel"]);
    4. $array[nazvanie] = trim($array["nazvanie"]);
    5. $host="localhost";
    6. $user="admin";
    7. $password="";
    8. $dbname="radio";
    9. $tablename="ordersong";
    10. $link = mysql_connect ($host, $user, $password);
    11. $sql = "INSERT into $tablename values ("0", "$ispolnitel", "$nazvanie")";
    12. mysql_close ($link);
    13. print("Connection closed");
    14. ?>
    15.  
    Где может быть ошибка????
     
  15. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    В 10 строчке.
     
  16. SerafimNVKZ

    SerafimNVKZ Активный пользователь

    С нами с:
    9 июн 2010
    Сообщения:
    2
    Симпатии:
    0
    А поточнее??
     
  17. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Куда ж точнее? =))
    Посмотрите про конкатенацию строк в php
     
  18. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    SerafimNVKZ надеется, что PHP сам догадается, где у него открывающая, а где закрывающая кавчка)))
     
  19. amphhpma

    amphhpma Активный пользователь

    С нами с:
    28 авг 2010
    Сообщения:
    4
    Симпатии:
    0
    1. <?php
    2.
    3. /**
    4. * @copyright Copyright (C) 2010 Cédric KEIFLIN alias ced1870
    5. * http://www.ck-web-creation-alsace.com
    6. * http://www.joomlack.fr.nf
    7. * Module Maximenu_CK for Joomla! 1.5
    8. * @license GNU/GPL
    9. * Version 3.4
    10. * */
    11. // no direct access
    12. defined('_JEXEC') or die('Restricted access');
    13.
    14. class modmaximenu_CKHelper {
    15.
    16. function GetMenu(&$params) {
    17. jimport('joomla.application.module.helper');
    18.
    19.
    20. //récupère les paramètres mootools
    21. $mooduree = $params->get('mooduration', 500);
    22. $mootransition = $params->get('mootransition', 'Bounce');
    23. $mooease = $params->get('mooease', 'easeOut');
    24. $usemootools = $params->get('usemootools', '1');
    25. $orientation = $params->get('orientation', '0');
    26. $usecss = $params->get('usecss', '1');
    27. $menuID = $params->get('menuid', 'maximenuCK');
    28. $usefancy = $params->get('usefancy', '1');
    29.
    30.
    31.
    32.
    33. //ajoute les documents externes
    34. $document = &JFactory::getDocument();
    35. if ($orientation == 1) {
    36. $document->addStyleSheet(JURI::base() . 'modules/mod_maximenu_CK/assets/moo_maximenuV_CK.css');
    37. if ($usecss == 1)
    38. $document->addStyleSheet(JURI::base() . 'modules/mod_maximenu_CK/assets/maximenuV_CK.php?monid=' . $menuID);
    39. } else {
    40. $document->addStyleSheet(JURI::base() . 'modules/mod_maximenu_CK/assets/moo_maximenuH_CK.css');
    41. if ($usecss == 1)
    42. $document->addStyleSheet(JURI::base() . 'modules/mod_maximenu_CK/assets/maximenuH_CK.php?monid=' . $menuID);
    43. }
    44.
    45.
    46.
    47. //pour IE6
    48. $stylelink = '<!--[if lte IE 6]>' . "\n";
    49. $stylelink .= '<link rel="stylesheet" href="modules/mod_maximenu_CK/assets/maximenu_CK_IE6.css" />' . "\n";
    50. $stylelink .= '<![endif]-->' . "\n";
    51. $document->addCustomTag($stylelink);
    52.
    53.
    54.
    55. //inclut effets mootools si choisi
    56. if ($usemootools == 1) {
    57. JHTML::_("behavior.mootools");
    58. $document->addScript(JURI::base() . 'modules/mod_maximenu_CK/assets/moo_maximenu_CK.js');
    59.
    60. //lance la fonction de déroulement
    61. $js = "window.addEvent('domready', function() {new DropdownMaxiMenu(\$E('div#" . $menuID . "'),{"
    62. . "mooTransition : '" . $mootransition . "',"
    63. . "mooEase : '" . $mooease . "',"
    64. . "mooDuree : " . $mooduree . "});"
    65. . "});";
    66.
    67. $document->addScriptDeclaration($js);
    68. } else {
    69. $script = 'window.addEvent(\'domready\', function() {
    70. var sfEls = document.getElementById("' . $menuID . '").getElementsByTagName("li");
    71. for (var i=0; i<sfEls.length; i++) {
    72.
    73. sfEls.onmouseover=function() {
    74. this.className+=" sfhover";
    75. }
    76.
    77. sfEls.onmouseout=function() {
    78. this.className=this.className.replace(new RegExp(" sfhover\\\\b"), "");
    79. }
    80. }
    81. });';
    82. $document->addScriptDeclaration($script);
    83. }
    84.
    85. //si effet fancy
    86. if ($usemootools == 1 && $orientation != 1 && $usefancy == 1) {
    87. $document->addScript(JURI::base() . 'modules/mod_maximenu_CK/assets/fancymenu_CK.js');
    88.
    89. $js = "window.addEvent('domready', function() {new SlideList(\$E('ul','div#" . $menuID . "'),{"
    90. . "transition : Fx.Transitions.backOut,"
    91. . "duration : 700});"
    92. . "});";
    93.
    94. $document->addScriptDeclaration($js);
    95. }
    96.
    97.
    98. //cherche les infos dans la base de données
    99. $menutype = $params->get('menutype', 'mainmenu');
    100. $db = & JFactory::getDBO();
    101. $query = "
    102. SELECT *
    103. FROM #__menu
    104. WHERE menutype='" . $menutype . "' AND published=1
    105. ORDER BY sublevel DESC,ordering
    106. ;";
    107. $db->setQuery($query);
    108. $rows = $db->loadObjectList('id');
    109.
    110. //récupère l'utilisateur courant
    111. $user = & JFactory::getUser();
    112. $urights = $user->get('aid', 0);
    113.
    114. //récupère l'ID de l'item actif
    115. $menu = &JSite::getMenu();
    116. $active = $menu->getActive();
    117.
    118. //crée une liste de référence avec les modules
    119. $modulesList = modmaximenu_CKHelper::CreateModulesList();
    120.
    121. //crée l'architecture du menu
    122. $level = 0;
    123. $items = array();
    124. $i = 0;
    125.
    126.
    127. foreach ($rows as $item) {
    128. //enregistre les enfants dans leur parent respectif
    129. if ($item->sublevel > 0) {
    130. $rows[$item->parent]->haschild = 'yes';
    131. if (isset($item->haschild)) {
    132. $rows[$item->parent]->enfants.=$item->id . '|' . $item->enfants;
    133. } else {
    134. $rows[$item->parent]->enfants.=$item->id . '|';
    135. }
    136.
    137.
    138. //ajout des classes enfants
    139.
    140. if (isset($active) && $active->id == $item->id) {
    141.
    142.
    143. $j = $item->sublevel;
    144.
    145. $tempitemID = $item->parent;
    146.
    147. while ($j != 0) {
    148.
    149. $rows[$tempitemID]->classe .= " active";
    150.
    151. $tempitemID = $rows[$tempitemID]->parent;
    152.
    153. $j--;
    154. }
    155. }
    156. if (isset($item->haschild)) {
    157. $item->classe .= " parent";
    158. }
    159. }
    160. //crée les enfants sous les parents
    161. if ($item->sublevel == 0 && $urights >= $item->access) { //gestion des droits des parents niveau 0
    162. $items[$i] = $item;
    163. if (isset($item->haschild)) {
    164. $item->classe .= " parent";
    165. $childs = explode("|", $item->enfants);
    166. foreach ($childs as $c) {
    167. if ($c) {
    168. $i++;
    169.
    170. // gestion des droits des enfants
    171. if (($urights >= $rows[$rows[$c]->parent]->access) && ($urights >= $rows[$c]->access)) {
    172. $items[$i] = $rows[$c];
    173. } else {
    174. $i--;
    175. }
    176. }
    177. }
    178. }
    179. } else {
    180. $i--;
    181. }
    182. $i++;
    183. }
    184.
    185.
    186.
    187. foreach ($items as $i => &$item) {
    188. $item->deeper = (isset($items[$i + 1]) && ($item->sublevel < $items[$i + 1]->sublevel));
    189. $item->shallower = (isset($items[$i + 1]) && ($item->sublevel > $items[$i + 1]->sublevel));
    190. $item->level_diff = (isset($items[$i + 1])) ? ($item->sublevel - $items[$i + 1]->sublevel) : $item->sublevel;
    191. $item->is_end = !isset($items[$i + 1]);
    192.
    193. //
    194. //pour J1.6
    195. //$item->params = new JObject(json_decode($item->params));
    196. //$menu_secure = $item->params->get('secure'
    197. //pour J1.5
    198. $menu_params = new stdClass();
    199. $menu_params = new JParameter($item->params);
    200. $menu_secure = $menu_params->def('secure', 0);
    [/code][/php]
     
  20. amphhpma

    amphhpma Активный пользователь

    С нами с:
    28 авг 2010
    Сообщения:
    4
    Симпатии:
    0
    Parse error: parse error, unexpected '&', expecting T_VARIABLE or '$' in x:\home\localhost\www\template\modules\mod_maximenu_CK\helper.php on line 187
     
  21. amphhpma

    amphhpma Активный пользователь

    С нами с:
    28 авг 2010
    Сообщения:
    4
    Симпатии:
    0
    Помогите пожалуйста разобраться с этим.
     
  22. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    amphhpma
    жжошь
     
  23. amphhpma

    amphhpma Активный пользователь

    С нами с:
    28 авг 2010
    Сообщения:
    4
    Симпатии:
    0
    Не понял?
     
  24. Naivety

    Naivety Активный пользователь

    С нами с:
    9 май 2010
    Сообщения:
    11
    Симпатии:
    0
    Адрес:
    Донецк
    У меня подобная ошибка была а теперь проблема.
    Базу данных создал в phpMyAdmin. БД - users. В ней одна таблица - user. В таблице четыре поля:
    id - это primary key и auto_increment, тип - int.
    e-mail - тип text.
    nickname - тип text.
    password - тип text.
    Заполнил в том же phpMyAdmin две строчки.
    Дальше код. Пока просто разбираюсь с MySQL, поэтому на ввод проверок не делаю.
    1 страница:
    HTML:
    1. <form action="registration.php" method="get">
    2. <table border=0>
    3. <tr><td>Почта</td><td><input type=text name="email"/></td></tr>
    4. <tr><td>Имя</td><td><input type=text name="nickname"/></td></tr>
    5. <tr><td>Пароль</td><td><input type=password name="pass"/></td></tr>
    6. <tr><td></td><td><input type=submit value="Зарегестрироваться"/></td></tr>
    7. </form>
    Здесь без вопросов: проверка на следующей странице подтверждает, что вроде все ок.
    2 страница:
    вначале просто проверяю, передаются ли данные с предидущей страницы:
    PHP:
    1. Вы ввели следующие данные:<br/>
    2. Почта: <?echo $_GET['email']?><br/>
    3. Имя: <?echo $_GET['nickname']?><br/>
    4. Пароль: <?echo $_GET['pass']?><br/>
    Дальше делаю переменные для ввода в базу новой строки:
    PHP:
    1. <?
    2. $dbhost ="localhost";
    3. $dbuser ="root";
    4. $dbpass ="hello13";
    5. $email=$_GET['email'];
    6. $nickname=$_GET['nickname'];
    7. $pass=$_GET['pass'];
    8. $query="
    9.     INSERT INTO users.user (
    10.     e-mail ,
    11.     nickname ,
    12.     password
    13.     )
    14.     VALUES ($email,$nickname,$pass}
    15.     )
    16.     ";
    17.  
    Делаю ввод:
    PHP:
    1.  
    2. if($connect=mysql_connect($dbhost,$dbuser,$dbpass))
    3. {  
    4.     echo "соединение установлено.<br/>";
    5.     if($select_db=mysql_select_db('users',$connect))
    6.     {echo 'Соединение с базой установлено<br/>';}
    7.     else {echo 'Соединение с базой тупит<br/>';}
    8.  
    9.     if(mysql_query($query,$connect)) echo "Данные успешно занесены.<br/>";
    10.     else {echo "Данные где-то тупят.<br/>";mysql_error();}
    11. }
    Далее вывод всей таблицы(здесь тожде вопросов нет, но на всякий случай привожу весь код):
    PHP:
    1. $db = mysql_connect($dbhost,$dbuser,$dbpass);
    2. mysql_select_db("users",$db);
    3. $result = mysql_query("SELECT * FROM user",$db);
    4. $num_rows = mysql_num_rows($result);
    5. for ($i=0;$i<$num_rows;$i++)
    6. {
    7. printf("email: %s<br>\n", mysql_result($result,$i,"e-mail"));
    8. printf("NickName: %s<br>\n", mysql_result($result,$i,"nickname"));
    9. printf("Password: %s<br>\n", mysql_result($result,$i,"password"));
    10. }
    11.  
    12. ?>
    В итоге выводится следующая картина:

    Вы ввели следующие данные:
    Почта: 1
    Имя: 2
    Пароль: 3
    соединение установлено.
    Соединение с базой установлено
    Данные где-то тупят.
    email: admin
    NickName: admin
    Password: hello13
    email: 5
    NickName: 5
    Password: 5

    То есть вначале выдавало ошибку
    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in ...

    А когда сделал переменные
    $email=$_GET['email'];
    $nickname=$_GET['nickname'];
    $pass=$_GET['pass'];
    Просто ничего не делает. Что не так, можете подсказать???
     
  25. Naivety

    Naivety Активный пользователь

    С нами с:
    9 май 2010
    Сообщения:
    11
    Симпатии:
    0
    Адрес:
    Донецк
    Спасибо за внимание, запрос надо было задать вот так:

    $query="INSERT INTO users.user (`e-mail`, `nickname`, `password`) VALUES ('{$email}', '{$nickname}', '{$pass}')";