PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (14): « 1 2 3 4 [5] 6 7 8 9 ... » В конец

> Найдено сообщений: 196
Exponat Отправлено: 06 Февраля, 2015 - 12:29:05 • Тема: Запросы и выводы из БД • Форум: Вопросы новичков

Ответов: 11
Просмотров: 1942
Да, {shop}.trash=0
Пишу так:
$count = DB::query_result("SELECT cat_id, COUNT(*) FROM {shop} JOIN {shop_category} ON cat_id={shop_category}.id WHERE parent_id='2' AND {shop}.trash='0' GROUP BY cat_id DESC LIMIT 3");
Ошибки:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 1' at line 1
#1 trigger_error(You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 1' at line 1, 512) called at [/home/site/public_html/includes/database.php:679]
#2 DB::query(SELECT cat_id, COUNT(*) FROM {shop} JOIN {shop_category} ON cat_id={shop_category}.id WHERE parent_id='2' AND {shop}.trash='0' GROUP BY cat_id DESC LIMIT 3 LIMIT 1) called at [/home/site/public_html/includes/database.php:319]

Видно сама цмска подставляет это значение.
Я пробовал на прямую таким способом:
PHP:
скопировать код в буфер обмена
  1. $db = mysql_connect ("хост","пользователь","пароль");
  2. mysql_select_db("база данных",$db);
  3. $count = mysql_query("SELECT cat_id, COUNT(*) FROM `diafan_shop` JOIN `diafan_shop_category` ON cat_id=`diafan_shop_category`.id WHERE `diafan_shop_category`.parent_id='2' AND `diafan_shop`.trash='0' GROUP BY cat_id",$db);
  4. echo $count;

Выводит надпись: Resource id #70
Что это означает?
Exponat Отправлено: 06 Февраля, 2015 - 11:39:53 • Тема: Запросы и выводы из БД • Форум: Вопросы новичков

Ответов: 11
Просмотров: 1942
Column 'trash' in where clause is ambiguous
#1 trigger_error(Column 'trash' in where clause is ambiguous, 512) called at [/home/site/public_html/includes/database.php:679]
#2 DB::_query(SELECT cat_id, COUNT(*) FROM `shop` JOIN `shop_category` ON cat_id=`shop_category`.id WHERE parent_id='2' AND trash='0' GROUP BY cat_id LIMIT 1) called at [/home/site/public_html/includes/database.php:141]
#3 DB::query(SELECT cat_id, COUNT(*) FROM {shop} JOIN {shop_category} ON cat_id={shop_category}.id WHERE parent_id='2' AND trash='0' GROUP BY cat_id LIMIT 1) called at [/home/site/public_html/includes/database.php:319]

Пробовал без AND trash='0' – получилось, но вывело только для первого найденного id.
Exponat Отправлено: 06 Февраля, 2015 - 11:28:09 • Тема: Запросы и выводы из БД • Форум: Вопросы новичков

Ответов: 11
Просмотров: 1942
PHP:
скопировать код в буфер обмена
  1. $count = DB::query_result("SELECT cat_id, COUNT(*) FROM {shop} JOIN {shop_category} ON cat_id={shop_category}.id WHERE parent_id='2' AND trash='0' GROUP BY cat_id");

Так? Но оно так тоже не работает. Тоже самое bool(false). Я не силен в запросах...
Exponat Отправлено: 06 Февраля, 2015 - 11:05:46 • Тема: Запросы и выводы из БД • Форум: Вопросы новичков

Ответов: 11
Просмотров: 1942
Не получается, ничего не выводится
PHP:
скопировать код в буфер обмена
  1. $count = DB::query_result("SELECT cat_id, COUNT(*) FROM {shop} JOIN {shop_category} cat_id={shop_category}.id WHERE parent_id=2 AND trash='0' GROUP BY cat_id");

Если пишу var_dump($count); выдает: bool(false)
Exponat Отправлено: 06 Февраля, 2015 - 10:51:42 • Тема: Запросы и выводы из БД • Форум: Вопросы новичков

Ответов: 11
Просмотров: 1942
Здравствуйте.
Есть две таблицы shop и shop_category.
Мне нужно сначала выбрать все id из таблицы shop_category которые имеют parent_id = '2'.
Потом нужно выбрать общее количество всего из таблицы shop где cat_id будет равно тем id что выбрали из первого запроса.
Я делаю так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. //запрос на все id из таблицы shop_category которые имеют parent_id = 2
  3. $ids = DB::query_fetch_all("SELECT id FROM {shop_category} WHERE parent_id = '2'");
  4. foreach ($ids as $row)
  5. //вывод найденных id
  6. {echo $row['id'],'<br >';}
  7.  

Теперь второй запрос на общее количество:
PHP:
скопировать код в буфер обмена
  1. $count = DB::query_result("SELECT COUNT(*) FROM {shop} WHERE cat_id IN ('".$row['id']."') AND trash='0'");

Но оно выводит общее количество только для одного id. Как мне во втором запросе внести все найдены id из первого запроса?
(Добавление)
Или может сделать один запрос в котором будет обращение к двум таблицам и перебрать все параметры?
Exponat Отправлено: 03 Февраля, 2015 - 13:54:24 • Тема: Отдельный класс для первого елемента в цикле • Форум: Вопросы новичков

Ответов: 1
Просмотров: 51
Здравствуйте.
У меня имеется такой цикл:
PHP:
скопировать код в буфер обмена
  1. foreach ($result["rows"] as $row)
  2. {
  3.         echo '<li>';
  4.         //изображения новости
  5.         if (! empty($row["img"]))
  6.         {      
  7.         echo 'image is hear ';
  8.         }
  9.        //анонс новости         
  10.         echo '<div class="text">'.$row['anons'].'</div>';
  11.         echo '</li>';
  12. }

Как мне только для первого li присвоит некий класс?
Exponat Отправлено: 30 Декабря, 2014 - 12:55:56 • Тема: Возможно ли ЧПУ • Форум: Вопросы новичков

Ответов: 2
Просмотров: 111
nkl, да, что-то в таком виде. Но как прийти к такому виду?
Exponat Отправлено: 30 Декабря, 2014 - 12:03:56 • Тема: Возможно ли ЧПУ • Форум: Вопросы новичков

Ответов: 2
Просмотров: 111
Здравствуйте.
Извиняюсь сразу, понимаю что это не по программированию. Но может просто подскажите как поступить.
Сmsка в фильтре по товарам делает такие ссылки:
CODE (htmlphp):
скопировать код в буфер обмена
  1. http://site.ru/?module=shop&action=search&cat_id=&pr1=20&pr2=2566670&p4%5B%5D=11


Можете подсказать как сделать эту ссылку более человечной (ЧПУ)?
Может нужно правило по mod_rewrite?
Цифры пусть остаются цифрами а вот такие слова как module=shop&action=search и знаки & можно как-то заменить на что-то нормальное?
Exponat Отправлено: 25 Ноября, 2014 - 12:47:43 • Тема: Проверка if в цикле for • Форум: Вопросы новичков

Ответов: 7
Просмотров: 248
Дело в том что мы не знаем точное количество элементов на странице, я говорю о последней странице. Да, на всех остальных 8. А на последней может быть и не восемь.
Exponat Отправлено: 25 Ноября, 2014 - 12:40:53 • Тема: Проверка if в цикле for • Форум: Вопросы новичков

Ответов: 7
Просмотров: 248
Не могу понять..
Можете переменными написать....не могу сориентироваться...
Exponat Отправлено: 25 Ноября, 2014 - 12:31:58 • Тема: Проверка if в цикле for • Форум: Вопросы новичков

Ответов: 7
Просмотров: 248
Я вывожу количество товаров на странице и их общее количество если есть страницы пагинации. Для первой страници пагинации пишется это так: Результаты: 1-8 из 25. Для второй: Результаты: 9-16 из 25 и т.д. На каждой странице пагинации выводится восемь товаров. Все это я проверял так:
PHP:
скопировать код в буфер обмена
  1. $count = DB::query_result("SELECT COUNT(id) FROM {shop} WHERE cat_id=%d", $this->diafan->_route->cat);
  2. $pages = $this->diafan->_route->page;
  3. // если пагинация стартовая страница и товаров не больше 8
  4. if ($pages<1 && $count<=8)
  5.         {
  6.                 $one='1';
  7.                 echo '<div class="result-wrap center"><span class="result">Результаты: <b>'; echo $one; echo'-'.$count; echo'</b> из <b>'.$count.'</b></span>';
  8.         }
  9. // если пагинация стартовая страница и товаров более 8
  10. if ($pages<1 && $count>8)
  11.         {
  12.                 $one='1';
  13.                 $two='8';
  14.                 echo '<div class="result-wrap center"><span class="result">Результаты: <b>'; echo $one; echo'-'.$two; echo'</b> из <b>'.$count.'</b></span>';
  15.         }
  16. // если пагинация больше первой страницы и товаров больше 8 включая проверку последней страницы пагинации
  17. if ($pages>1 && $count>=8)
  18.         {
  19.                 $one = '1';
  20.                 $two ='8';
  21.                 for ($i = 2; $i <= $pages; $i++)
  22.                         {
  23.                                 $one = $one + '8';
  24.                                 $two = $two + '8';
  25.                         }
  26.                         echo '<div class="result-wrap center"><span class="result">Результаты: <b>'.$one.'-'.$two.'</b> из <b>'.$count.'</b></span>';
  27. }

Но тут нюанс в том, что на последней странице пагинации может разместится не 8 товаров а например 4. Последний if этого не предусматривает. Вот я и ломаю голову.
Exponat Отправлено: 25 Ноября, 2014 - 12:05:03 • Тема: Проверка if в цикле for • Форум: Вопросы новичков

Ответов: 7
Просмотров: 248
Здравствуйте.
Создал такой цикл:
PHP:
скопировать код в буфер обмена
  1. if ($pages>1 && $count>8)
  2. {
  3.         $one = '1';
  4.         $two ='8';
  5.         for ($i = 2; $i <= $pages; $i++)
  6.                 {
  7.                         $one = $one + '8';
  8.                         $two = $two + '8';
  9.                 }
  10. echo '<div class="result-wrap center"><span class="result">Результаты: <b>'.$one.'-'.$two.'</b> из <b>'.$count.'</b></span>';
  11. }


Но мне надо сделать проверку, когда проходит последний $pages то изменить действие в цикле. Например мне нужно чтоб в цикле вместо $two = $two + '8'; срабатывало $two = $count;

Или может проще написать проверку в самом начальном if?
Я пробовал писать if (($pages>1) && ($count>8) && ($count!<8))
Но наверное нет такого !<.
Exponat Отправлено: 04 Ноября, 2014 - 17:26:20 • Тема: Cкрипт в echo • Форум: Вопросы новичков

Ответов: 5
Просмотров: 398
Спасибо!
Exponat Отправлено: 04 Ноября, 2014 - 14:55:10 • Тема: Cкрипт в echo • Форум: Вопросы новичков

Ответов: 5
Просмотров: 398
IllusionMH пишет:
Exponat, а что если можно не использовать echo вообще?


А как тогда условие будет выполнятся?
Exponat Отправлено: 04 Ноября, 2014 - 11:28:48 • Тема: Cкрипт в echo • Форум: Вопросы новичков

Ответов: 5
Просмотров: 398
Здравствуйте.
Не могу вписать ява скрипт в echo.
Вот сам скрипт:
CODE (javascript):
скопировать код в буфер обмена
  1. <script>function utmx_section(){}function utmx(){}(function(){var
  2. k='93074444-4',d=document,l=d.location,c=d.cookie;
  3. if(l.search.indexOf('utm_expid='+k)>0)return;
  4. function f(n){if(c){var i=c.indexOf(n+'=');if(i>-1){var j=c.
  5. indexOf(';',i);return escape(c.substring(i+n.length+1,j<0?c.
  6. length:j))}}}var x=f('__utmx'),xx=f('__utmxx'),h=l.hash;d.write(
  7. '<sc'+'ript src="'+'http'+(l.protocol=='https:'?'s://ssl':
  8. '://www')+'.google-analytics.com/ga_exp.js?'+'utmxkey='+k+
  9. '&utmx='+(x?x:'')+'&utmxx='+(xx?xx:'')+'&utmxtime='+new Date().
  10. valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
  11. '" type="text/javascript" charset="utf-8"><\/sc'+'ript>')})();
  12. </script><script>utmx('url','A/B');</script>


Проблема с кавычками.
Вписываю так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   if (($_SERVER['REQUEST_URI'])=="/some-directory/some-page.html")
  3.   {
  4.  echo '<script>
  5. _udn = ".domain.ru";
  6. </script>';
  7. echo "<script>function utmx_section(){}function utmx(){}(function(){var
  8. k='93074444-4',d=document,l=d.location,c=d.cookie;
  9. if(l.search.indexOf('utm_expid='+k)>0)return;
  10. function f(n){if(c){var i=c.indexOf(n+'=');if(i>-1){var j=c.
  11. indexOf(';',i);return escape(c.substring(i+n.length+1,j<0?c.
  12. length:j))}}}var x=f('__utmx'),xx=f('__utmxx'),h=l.hash;d.write(
  13. '<sc'+'ript src=''+'http'+(l.protocol=='https:'?'s://ssl':
  14. '://www')+'.google-analytics.com/ga_exp.js?'+'utmxkey='+k+
  15. '&utmx='+(x?x:'')+'&utmxx='+(xx?xx:'')+'&utmxtime='+new Date().
  16. valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
  17. '' type='text/javascript' charset='utf-8'><\/sc'+'ript>')})();
  18. </script><script>utmx('url','A/B');</script>";
  19.   }
  20.   ?>

Я заменял этот символ " на '. Но так скрипт не работает.
Подскажите как решить эту проблему?

Страниц (14): « 1 2 3 4 [5] 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB