Вопрос - Ответ по MySQL

1. 3DwEp (01.10.2009 / 17:00)
Предлогаю в этой теме обсуждать MySQL..
С чего вообще начать изучение MySQL? =)

2. Lugaro (01.10.2009 / 17:30)
Ну наверно с прочтения учебника)

3. Estor (01.10.2009 / 18:08)
Учебник это долго и утомительно. Вот основные комманды. Для начала хватит. Научишься получать нужное и считай уже научился.

4. Lugaro (01.10.2009 / 20:07)
Для кого как, я не говорю учить всё на зубок, а учить по мере потребности, а на счет долго и утомительно это бред, если уже на то пошло то лучше не чего не учить

5. asutn (04.10.2009 / 08:26)
Подскажите плиз
$sumkr = mysql_query("SELECT SUM( bank ) FROM `users`");
Что не правильно пишу? в пхпадмине норм выводит значение, когда через скрипт, то Resource id #17

6. Валерий (04.10.2009 / 11:20)
5. Потому что ты скорее всего пишешь
echo $sumkr;
а надо так
$res = mysql_query("SELECT SUM( bank ) FROM `users`");
$row=mysql_fetch_assoc($res);
$sumkr =$row['bank'];
echo $sumkr;


7. asutn (04.10.2009 / 12:10)
сделал по твоему, пустое поле выводит sad

8. Gefest (04.10.2009 / 21:01)
Нет имени bank, есть имя SUM(bank), поэтому лучше переименовывать агрегатные функции SUM(bank) AS bank

9. Александр (04.10.2009 / 21:34)
А не лучше посчитать через mysql_result()

10. DmitryDick (05.10.2009 / 01:04)
<?php
$q = mysql_query("Select sum(pole) summa from users");
$arr = mysql_fetch_assoc($q);
echo $arr['summa'];
?>


11. asutn (06.10.2009 / 08:33)
разобрался сам smile
$sumkr = mysql_result(mysql_query("SELECT SUM( bank ) FROM `users`"),0);

12. Вантуз-мен (07.10.2009 / 01:51)
У меня тоже есть вопрос по mysql
float (5,2) что означают, что за цифры
чем float отличается от decimal
в чем лучше хранить такие данные к примеру от 0 до 10.0 одна цифра после точки
Доки читал, но толком про данные типы ничего не понял

13. Александр (07.10.2009 / 02:54)
float(5,2) вроде как означает число вида 00000.00
число от 0 до 10.0 можно хранить и в инт только без параметра UNSIGNED, если ошибаюсь, поправьте, прост работал всегда с целыми числами : )

14. Вантуз-мен (07.10.2009 / 03:32)
я уже поискал, float 5,2 означает строку из 5 символов включая точку , 2 число после запятой, то есть максимальным будет 99,99, в моем случае лучше хранить в decimal этот формат был сделан для денег

15. Жека (07.10.2009 / 13:18)
Всем доброго времени суток!Ребятня подскажите если кто знает Онлайн сервис по управлению MySql с wap интерфейсом. Кто не знает что это,это по типо Онлайн-FTP на примере http://wapftp.org . Только управление базой данных.

16. Вантуз-мен (07.10.2009 / 15:08)
такого наверно нет, обычно база доступна в пределах одного сервера
есть скрипты специальные, у нас в архиве есть, помню выкладывал, которые адаптированы под wap

17. Lugaro (07.10.2009 / 16:23)
15 http://wapnew.ru/11

18. Nu3oN (07.10.2009 / 20:21)
Вот у меня такой вопрос! короче я сделал зц! все вроде нормально пашет! но иногда бывает что когда заходишь в какой либо файл то выдает 404 и я точно знаю что это из за базы! какую я мог допустить ошибку?

19. Nu3oN (07.10.2009 / 20:22)
И такая беда была при написании "стол заказов"!я добавлял заказ, и мне выдавало 404! потом я пошел покурить, вернулся, и все уже работает!

20. Lugaro (07.10.2009 / 21:21)
По идеи мускул не причем, посмотри может ошибся где, к примеру может где криво вписал переменную которая хранит индификатор сессии, слеш или вопрос пропустил, такое тяжело сразу увидеть

21. Димон (07.10.2009 / 21:33)
Такое смотрят через логи. Покапай. Найдешь ошибку.

22. Андрей (15.01.2010 / 10:42)
Подскажите какой запрос надо сделать в пхпминиадмин чтобы добавить столбец в таблицу?

23. Анатолий (15.01.2010 / 12:07)
ALTER TABLE `<имя_таблицы>` ADD COLUMN `<имя_колонки>` <описание колонки> [FIRST | AFTER] <имя_колонки_перед(после)_которой_добавляем_новую>;

24. Андрей (15.01.2010 / 13:05)
Я немного подзабыл, подскажите пожалуйста как описание делать, мне надо чтобы этот столбец содержал текстовую информацию с максимальной длиной 20 символов и неважно каким будет по очереди идти этот столбец

25. DmitryDick (15.01.2010 / 13:47)
varchar(20)

26. Анатолий (15.01.2010 / 14:08)
ALTER TABLE `tablename` ADD `my_new_column` VARCHAR(20);
-----
Вот готовый запрос.

27. Андрей (15.01.2010 / 14:27)
dek (Сегодня / 16:08)
ALTER TABLE `tablename` ADD `my_new_column` VARCHAR(20);
-----
Вот готовый запрос.
THANKS)

28. ramzes (21.01.2010 / 02:44)
<?php
$obj->update('row = '.$var);
function update($update){
$mysqli->query("UPDATE tble SET $update WHERE id = '".$this->id."';");
}
блин такая мистика, то работает, то нет..
Когда не работает выдает что то типа 'столбец «значение переменной переданной в качестве нового параметра» не найден.
Как так?
Весь мозг уже сломал, 9 запросов работают, а один ну ни в какуюsad

29. Олег (21.01.2010 / 02:51)
Имеешь ввиду возвращает mysql_error()? Можешь дать полное описание, которое возвращает mysql_error() и mysql_errno()?
стоблец id имеет какой тип данных mysql? В него целочисленные значения записываются?

30. ramzes (21.01.2010 / 03:33)
Ид это примак, с ним проблем нет, проблема когда пытаюсь в поле 'пасс' обновить пароль, ошибок не возвращает это класс мускули. $mysqli->error;
возвращает 'нет столбца хеш_пароля ин лист. Сейчас не могу написать точно, просто надо по новой код писать для этого, я самой фишки не пойму, почему в точно таком же примере но другом столбце все работает а тут ни фига. (тип полей текст нот нуль)

31. Олег (21.01.2010 / 14:19)
ramzes, у тебя все наоборот.Тоесть ты целочисленное значения заключаешь в апострофы. И MySQL сервер воспринимает это не как число, а как строку. Я так пологая $var это же строка или числа?

32. ramzes (21.01.2010 / 14:36)
Строка.
Если честно ни чего не понял про 'все наоборот'..
С ид проблем нет, проблема именно с переменной которая содержит столбец и значение.
Блин я уже и в кавычки брал, и в одиночные и в двойные, ни чего не помогает..
Такое ощущение что 'row = '.$var.' воспринимается как row = $var; т.е. Присваивается значениее.

33. Олег (21.01.2010 / 15:48)
$mysqli->query("UPDATE tble SET $update WHERE id = '".$this->id."';");
$id ты заключаешь в апострофы, хотя ид это PRIMARY KEY, это естественно число, так зачем ты число в апострофы заключаешь? Этим самым ты MySQL серверу говоришь что ты хочешь передать не число, а строку. Теперь далее. $var это строка? Строки нужно передавать в апострофах, у тебя же этого нет.А теперь, например, если захочешь обновить пароль, в котором помимо цифр есть символы, ествественно, ничего не обновит

34. Олег (21.01.2010 / 15:50)
А так?
<?php 
$obj->update('row = "'.$var.'"'); 
function update($update){ 
$mysqli->query("UPDATE tble SET $update WHERE id = ".$this->id.";"); 
}
?>


35. Олег (21.01.2010 / 15:52)
Скрипт данный в цикле выполянется или нет?

36. ramzes (21.01.2010 / 15:53)
Ну ид я всегда так пишу, проблем ни когда не было.
Но это к проблеме не относится как таковой.
Суть в том что беру например поле джаббер, соответственно тоже текстовое, и все работает, а вот именно с этим полем не хочет, я уже незнаю что блин не такsad перепробовал все что только можно..

37. ramzes (21.01.2010 / 15:56)
Нет, циклов нет, это класс для работы с текущим профилем, цикл убьет сервакsmile для этого есть более подходящие ходы.
Щас попробую твой пример, вроде пробывал ошибка синтаксиса, но не помню. Щас.

38. Олег (21.01.2010 / 16:02)
Еще не ясно где у тебя инициализируется переменная $update?

39. ramzes (21.01.2010 / 16:02)
Записывается $text а не значение этой переменнойsad

40. ramzes (21.01.2010 / 16:03)
В первом примере смотри там запрос к методу и сам метод

41. Олег (21.01.2010 / 16:06)
Так инициализируй метод $obj->update('row = "'.$var.'"'); в $update -
$update = $obj->update('row = "'.$var.'"'); 


42. ramzes (21.01.2010 / 16:07)
<?php
$text='test';
$user->update("jabber = ' ".$text." ' ");
ура нашел!
Примного благодаренsmile ты меня прям выручил, а то вся идея коту под хвост шла.

43. Игорь (25.01.2010 / 22:15)
Подскажите может что то не так написал...Не могу разобраться. Тока начал на мускуле писать..Данные получаеться записать, а вот вывести нет((
Вот составил код для вывода но пишет ошибку=(
<?php
include_once"template/config.php";
include_once"template/db.php";
//-------------SQl Zapros---------------//
$strsql="SELECT * FROM gbook ORDER BY date DESC";
$rez=mysql_query($strsql, $connect);
//-------------Вывод содержимого БД---------//
while ($row=mysql_fetch_assoc($rez)) {  // Цикл для чтения таблицы
    $i++;
    $t=$row['date'];
    echo "<b>$i {$row['username']}</b> {$row['city']} $t<br>
          <textarea rows=4 cols=60>{$row['msg']}</textarea>";
}
mysql_close($connect);
?>
Выполнение:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in T:\home\virtual\db.ru\index.php on line 8

44. Б.В. (25.01.2010 / 22:19)
$rez=mysql_query($strsql);

45. Игорь (25.01.2010 / 22:22)
не получаеться( все также

46. Игорь (25.01.2010 / 22:32)
А все спасиб сам разобрался. накосячил с именем таблицы
<?php $strsql="SELECT * FROM gbook ORDER BY date DESC";
А надо
<?php $strsql="SELECT * FROM book ORDER BY date DESC";


47. Олег (25.01.2010 / 22:35)
Чтобы легче было находить трудности используй диагностику
ECHO "Error :".mysql_error()." in line ".__LINE__;


48. ramzes (28.01.2010 / 15:26)
Есть таблица, в ней ячейка с тегами "тег, тег2, тег3"
надо найти в этой же таблице записи у которых хотя бы один из тегов совпадает.
Подскажите как запрос составить, а то что то я в этом не силен..

49. Олег (28.01.2010 / 18:46)
LIKE?

50. ramzes (28.01.2010 / 19:03)
Не, не вариант, надо что бы хотя бы один из тегов совпал а не всеsmile
видимо придется делать отдельную таблицу под них..sad блин так не хотелось

51. Олег (28.01.2010 / 19:22)
Ну, конечно нужно.

52. Максим (31.01.2010 / 17:28)
ramzes, в принципе так должно работать: WHERE `поле` LIKE '%какойто_тег%' - именно с %.
но лучше создать отдельную таблицу.

53. ramzes (31.01.2010 / 19:24)
52, да не, в том то и проблема что в переменной не один тег а строка вида 'тег1, тег2, тег3', лайк выдаст только эту же запись ибо только в ней строка совпадет, мне надо как то так что бы запрос по каждому тегу отдельно был и в тоже время не куча запросов циклом, я просто не сталкивался еще с таким, наверняка есть готовое обращение но вот где искать не знаю..
// от отдельной таблицы отказался, очень неудобно выходит..

54. Максим (31.01.2010 / 19:39)
аа, понял.
ну тогда как минимум два варианта.
первый - разбить твою строку на массив тегов функцией explode() - и в цикле делать запросы. но тогда получается много запросов, а это не очень хорошо.
второй - сделать ну вот как-то так:
$tags = 'тег1,тег2, тег3, тег4,тег5';
echo "SELECT something FROM table WHERE (somethingelse LIKE '%".preg_replace('/[ ]*,[ ]*/', "%' OR somethingelse LIKE '%", $tags)."%')";
посмотри что получится)

55. ramzes (31.01.2010 / 19:52)
А пояснить можешь сей код? А то что то незнакомое.
// массив с тегами из строки есть уже делёный, но цикл не вариант, 500 записей и ~ 5 тегов, не очень хорошо выйдет, в два раза медленнее скрипт будет чем без этих тегов

56. Олег (31.01.2010 / 20:20)
ramzes, не парься ты этим. Сделай по-нормальну, отдельной таблицей, сам потом поймешь что это проще и правильнее

57. ramzes (31.01.2010 / 20:35)
Я знаюsmile у меня даже пример есть, но мне не нравится выводить похожие блоги методом вычитывания сначала тегов совпадающих с текущими, потом блогов на которые эти теги ссылаются, тоже не мало запросов выходит (~5), не считая обновления и проверки тегов при редактировании блога.. Вот и ищу другой путь..

58. Максим (31.01.2010 / 20:39)
реально, отдельной таблицей лучше будет. но код объясню.
вот у тебя есть строка с тегами $tags. теги у тебя через запятую (ну и, может быть, пробелы. в регулярке это учтено).
тебе надо сформировать запрос, в котором будут проверяться теги по одному.
то есть по сути надо несколько LIKE-ов - для каждого тега.
каждый должен быть типа LIKE '%тег%' (% это значит, что может быть что-то до, и что-то после). запрос должен быть типа `что-то` LIKE '%тег%' OR `что-то` LIKE '%еще_тег%' OR `что-то` LIKE '%и_еще_тег%'.
ну вот ты и заменяешь в строке $tags запятые и пробелы, которые между тегами, на то, что должно быть между тегами в запросе - %' OR `что-то` LIKE '% , ну и '% и %' ставишь в начало и в конец. и получается запрос.
вроде понятно)

59. ramzes (31.01.2010 / 20:47)
Вот это как раз то что надоsmile
отдельная таблица имеет один большой минус, во первых ее наличие как таковой, не оправданно самой функцией (для меня приоритетно), ну а главное, выбираем 5 тегов, выдает нам эти 5 тегов которые с вероятностью %90 ведут на 2 блога в которых совпадение более чем одного тега (они по любому подряд идут, тут конечно можно сортировать по самим тегам но вероятность все равно остается), и получаем 2 блога с повторами 2.5раз. А в случае выборки из таблицы блогов, получим все 5 разных совпадений, я так надеюсьsmile если не прав поправьте.
Попробывать увы только после переезда сайта смогу, пара дней в простое..

60. Максим (31.01.2010 / 21:31)
ramzes, неа.
допустим (допустим, условно) что у тебя таблица, где соответствия тегов к блогам, в ней 2 столбца - тег, блог.
ты можешь сделать такой запрос, чтобы блоги (ну их id у тебя в таблице) будут без в повторений, уникальными.
просто надо добавить GROUP BY `блог` в конец запроса.
-----
з.ы. если будешь использовать и ORDER BY и GROUP BY - мало ли - GROUP BY должно стоять перед ORDER BY

61. ramzes (01.02.2010 / 01:39)
Спасибо учтуsmile надо будет попробывать и так и такsmile

62. Саня (13.02.2010 / 02:42)
делете

63. Михаил (18.02.2010 / 12:57)
что это значит
Column count doesn't match value count at row 1

64. Олег (18.02.2010 / 13:26)
В том что названия столбцов больше чем их значений. Внимательно изучу свой sql-запрос на добавление и исправь

65. Михаил (18.02.2010 / 13:58)
не выходит че-то. Вот запрос
mysql_query("ALTER TABLE ".$table_prefix."posts ADD poster_brow varchar(150) default 'Not_detected';") or die (mysql_error());
как его переписать на такой
post_id mediumint(8) UNSIGNED NOT NULL auto_increment,
topic_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
forum_id smallint(5) UNSIGNED DEFAULT '0' NOT NULL,
...

66. Михаил (18.02.2010 / 14:24)
пост 65 не актуален больше, удалите пжл

67. blud (21.02.2010 / 08:48)
Ребята по зарез ваша помощь нужна!
вот делаю из чата сервис как мне сделать чтобы когда
человек регистрировал себе чат чтобы он был у него отдельный надо к каждой таблице це*** еще какое то поле?
обясните пожалуйсто буду очень благодарен

68. Олег (21.02.2010 / 13:39)
Делаешь еще одну таблицу - chats, где каждому чату свой primary key, который будет ключом для остальных таблиц

69. blud (21.02.2010 / 23:11)
а по подробнее можно?

70. Удаленный (21.02.2010 / 23:25)
69. blud, скачай из паблика какой- нибудь простой сервис и посмотри принцип работы...

71. blud (22.02.2010 / 11:42)
попробую спасибо!

72. blud (22.02.2010 / 13:02)
еще есть вопрос как можно сделать бота когда ктото мат сказал
чтобы бот делал придупреждение например СИСТЕМА VASY ЕЩЕ СЛОВО МАТОМ И С ВАС БУДУТ СНИМАТСЯ ПОСТЫ

73. Удаленный (22.02.2010 / 13:04)
72,это уже не Mysql

74. Олег (22.02.2010 / 13:35)
blud, твой вопрос поставлен неправильно. Ты хоть сам немножко головой подумай, разбей вопрос на нескольо подзадач и соответсвенно выполняй. В ходе проблем задавай вопросы. Асейчас твой вопрос просит готового решения получается

75. blud (22.02.2010 / 13:44)
я не прошу код дать просто словапи описать принцеп работы

76. ZZZBoy (22.02.2010 / 14:32)
Где найти файл SQL? Помогите плиз

77. Олег (22.02.2010 / 16:29)
ZZZBoy, в яндексе можно попробовать поискать

78. Олег (22.02.2010 / 16:32)
blud, сверяешь слово с БД матов, если есть совпадения, делаешь предупреждение и отмечаешь факт предупреждения в БД этого матершиника, если в БД было уже одно предупреждение, то банишь его. Алгоритм ясен теперь?

79. blud (22.02.2010 / 19:21)
Aligan, да примерно спасибо буду пробывать

80. ramzes (22.02.2010 / 20:54)
Есть таблица, в ней есть поле 'скин', надо сделать список скинов, типа по популярности.
Default: 5
Dark: 3
Green: 2
типа такого.
Как лучше изобразить?

81. Nu3oN (22.02.2010 / 21:16)
80. ramzes, если у тебя дизайны хранятся в файлах
<?
$array = array();
$dir = opendir ("themes/");
while ($file = readdir ($dir)) {
if (!is_dir($file)) { 
if($file=="."||$file==".."){ continue;}
$array[]=$file;
}
}
closedir ($dir);
sort($array);
$total = count($array);
for ($i = 0; $i < $total; $i++){
echo $array[$i].': '.mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `theme` = '".$array[$i]."'"),0).' человек<br>'; 
}


82. Анатолий (22.02.2010 / 21:28)
80,
SELECT name, COUNT(*) FROM `skin` GROUP BY (name) ORDER BY count(*) DESC;


83. ramzes (22.02.2010 / 21:57)
#82 спасибо, вот как раз это и надоsmile
#81 очень много запросов выйдет..

84. Олег (22.02.2010 / 23:15)
ramzes, а в этой таблице хранятся только скины или еще id пользователей?

85. ramzes (23.02.2010 / 13:23)
Все хранится это таблица профилей. А что?

86. Олег (24.02.2010 / 00:42)
Я так пологаю что у тебя нет отдельной таблицы, в которой хранятся названия скинов и их характеристики?

87. Nu3oN (24.02.2010 / 01:58)
ramzes (22.02.10 / 21:57)
#82 спасибо, вот как раз это и надоsmile
#81 очень много запросов выйдет..
А ты собираешься вручную прописывать каждый дизайн? о_О тогда выйдет куча запросов к БД зачем тебе лишний гемор?

88. Nu3oN (24.02.2010 / 02:00)
Лично я такие вещи записываю сразу куда нибудь, что бы не было подобного гемороя

89. ramzes (24.02.2010 / 02:56)
#87 ты о чем вообще? Это одним запросом делается как раз тем что дек дал.
Ни чего я ни куда не прописываю))
http://smartoff.net/mode/statistic.php?stats=skin один единственный запрос и больше ни чего.
#86 нет, а зачем?
Мне просто надо было рейтинг скинов сделать.

90. Анатолий (24.02.2010 / 03:43)
86-87, зачем вы человека мучаете?
У меня тоже скины трогаются только при их определении, смене и выводе рейтинга. 3 запроса.
С таблицами скинов будет геморойней +ощутимой скорости выполнения такая оптимизация не даст, т.к. запросы несущественные даже расчитывая на базу в 2-3К пользователей

91. ramzes (24.02.2010 / 05:20)
Да я если честно не вижу смысла в существовании такой таблицы как таковой..
В профиле записан и хватит.

92. Олег (24.02.2010 / 17:15)
dek, если сделать оптимизированный запрос, то оптимизация будет на порядок выше чем твой пример. Потому что группировка уже будет идти по целочисленному индексу, определенного в таблице скинов, а подсчет уже по таблице, в которой хранятся ключи скинов для конктретного юзера. Все это красиво можно сделать через LEFT JOIN.
И еще хорошо хранить данные о параметрах скина в БД, хорошо тем, что в бизнес-логике не придется хранить данные.

93. ramzes (24.02.2010 / 17:19)
Какие данные о скине? Имя скина и все. Остальное шаблонизатор сам сделает.
Их и есть то всего 8 штук, нет смысла что то химичить ради страницы которую раз в пол года посещают.
Вобщем со всех сторон не выгодно отдельную таблицу держать, применения ей нет а запрос требует.

94. Анатолий (24.02.2010 / 19:37)
92, ИД скина и адрес папки?
А каждый раз проверка и удаление несуществующих скинов?
Если делать оптимизацию, то делать полную проверку и корректность работы скрипта

95. Олег (24.02.2010 / 20:21)
ramzes, ради страницы, которую раз в полгода посещают и никакая оптимизация вовсе не нужно) Я предыдущий пост к тому писал, что если уже стремиться делать в соответсвии со стандартом MVC делать, то тогда уже и делать правильно.
>92, ИД скина и адрес папки?
В обычном случае да. Но по сути скин это сущность, у которого может быть в зависимости множество свойств. Значит в будущем человек захочет усовершенствовать свои cms, тем самым добавить набор свойств для скина. К примеру даже сделать возможность индивидульной настройки цветовой гаммы скина для для конкретного пользователя, или создание своего варианта дизайна для конкртеного пользователя. Так, кстати, во многих блогах сейчас реализовано. И тогда уже без таблицы скинов будет необойтись. Поэтому я говорю старайтесь проектировать БД правильно.

96. ramzes (07.03.2010 / 23:06)
Подскажите как count(*) в LEFT JOIN засунуть?
Пишу примерно следующе:
"SELECT table.*, subtable.count(*) FROM table LEFT JOIN subtable ON table.id = subtable.key ORDER BY table.id DESC"
выдает ошибку о неверном синтаксисе:
near sql sintacsis *), FROM....

97. Анатолий (07.03.2010 / 23:33)
count(`subtable`.*)

98. ramzes (08.03.2010 / 03:51)
$listpost = $sql->query("SELECT table.*, count('subtable.*') FROM table LEFT JOIN subtable ON table.id = subtable.key ORDER BY table.id DESC LIMIT ".$page.", ".$_CFG['mypage'].";");
теперь другая проблемаsad считает все записи а не только те у которых ключ совпадает ид записи первой таблицы.. И в цикле только одна запись идет хотя их 22sad

99. Олег (08.03.2010 / 16:49)
После конструкции ON поменяй местами поля так - subtable.key = table.id
p.s. Когда в SELECT'е смешиваешь выборку с агрегатными функциями MySQL, запрос становится неоднозначным

100. ramzes (08.03.2010 / 19:47)
Я и так и так пробывал, результат вообще не меняется.. Хм.. По чему и спросил. Попробую еще разок, может где ошибся в порядке..
Что значит 'неоднозначным'?

101. Олег (08.03.2010 / 20:05)
Приведи структуру обоих таблиц. В данном случае у тебя функция COUNT с большей уверенностью вернет только 1, потому что нету группировки по конкретному полю.

102. ramzes (08.03.2010 / 20:23)
Возвращает не 1 а 3 (как раз 3 записи в таблице), независимо от того совпадает ключ или нет.
Блоги id int(11) A.U., name TEXT, message TEXT, autor int(11)...
Комменты id int(11) A.U., message TEXT, autor int(11), blogpost int(11)...
blogpost - ключ, равен ид записи в первой таблице.
Проблемы 2, всегда считает все комменты а не те которые завязанны на ид первой таблицы, и выводит как ORDER BY table.id ASC хотя в запросе^ DESC стоит.
// суть вывести листинг блогов и посчитать сколько комментов к каждому из них и вывести число.
Можно просто отвлеченный пример, лишь бы рабочий, под свои нужды сам заточуsmile

103. Олег (08.03.2010 / 21:27)
это не структура ))))
Чтобы смог тебе помочь приведи пожалуйста структуру таблиц)

104. ramzes (08.03.2010 / 21:34)
А что это тогда? И что есть «структура»?
Я все описал, есть 'таблица', и есть 'субтаблица' с ключем на ид из 'таблицы'. Все.

105. Олег (08.03.2010 / 21:51)
это дамп струтктуры sql-запроса на создание таблиц и связующих ключевых полей

106. ramzes (08.03.2010 / 22:05)
$sql->query("CREATE TABLE blog_post (id int(16) NOT NULL auto_increment, name TEXT NOT NULL, opis TEXT NOT NULL, message TEXT NOT NULL, autor TEXT NOT NULL, time int(16), blog int(16), see int(16) DEFAULT 0, rating int(16) DEFAULT 0, tags TEXT, PRIMARY KEY (id), KEY blog (blog) ) ENGINE=MyISAM DEFAULT CHARSET=utf8");
$sql->query("CREATE TABLE blog_komm (id int(11) NOT NULL auto_increment, blogpost int(16) NOT NULL, blog int(16) NOT NULL, message TEXT NOT NULL, time int(16), autor TEXT NOT NULL, ip TEXT NOT NULL, PRIMARY KEY (id), KEY blogpost (blogpost), KEY blog (blog) ) ENGINE=MyISAM DEFAULT CHARSET=utf8");
красным ключ на ид блога. Не пойму хоть убей что ты хочешь тут увидеть чего я ранее не написала.. Блин уже бесит тупой запрос этотsad

107. Олег (08.03.2010 / 22:12)
Попробуй и отпиши
SELECT
 count(*),blogpost.*
FROM
 test.blogpost
 INNER JOIN test.comments ON blogpost.id = comments.blogpost
 GROUP BY blogpost.id
 ORDER BY blogpost.id
 


108. Олег (08.03.2010 / 22:19)
только отредактируй запрос, в нем указана моя тестовая база test

109. ramzes (09.03.2010 / 03:10)
Гм.. Я если честно не понял кода.. Что это за третья таблица 'тест', откуда она и зачем..

110. ramzes (09.03.2010 / 03:29)
Забей вобщем, отказался от этой дурной затеи, сделал статический счетчик.

111. Олег (09.03.2010 / 09:37)
это не таблица. это база данных перед таблицей. просто убери ее. Просто я из консоли MySQL в Linux'е выполнял запрос.
SELECT 
 count(*),blogpost.* 
FROM 
 blogpost 
 INNER JOIN comments ON blogpost.id = comments.blogpost 
 GROUP BY blogpost.id 
 ORDER BY blogpost.id
Этот запрос выводит все как ты и описал суть

112. Олег (09.03.2010 / 09:41)
Сортировку, ты можешь и по названию делать. Главное ты упустил это группировка. Без нее как я говорил count будет работать неоднозначно, что, собственно, неправильно и было при подсчете коментов

113. Игорь (09.03.2010 / 13:20)
у меня такой вопрос смешной D
какая разница между
ORDER BY `time`
и
order by `time`
Тут дело привычки? Я например постоянно заглавными пишу

114. Олег (09.03.2010 / 13:33)
113, в MySQL принято операторы и функции писать в верхнем регистре, а поля и переменные в нижнем. Это для повышения читабельности кода. А на результат запроса не влияет

115. Олег (09.03.2010 / 13:34)
Даже не в MySQL, а стандарт SQL

116. Игорь (09.03.2010 / 13:35)
114. Aligan, понял, спасибо за обьяснениеsmile

117. Михаил (11.03.2010 / 19:28)
Как с помошью команды UPDATE обновить поле "pole" в таблице "tabla" причем для всех имеющихся идов?

118. ramzes (12.03.2010 / 01:04)
Не указывай ид.
("UPDATE table SET pole = '".$pole."';")

119. Михаил (12.03.2010 / 06:40)
118. ramzes, спасибо smile

120. blud (18.03.2010 / 14:49)
ребята обясните пожалуйсто вот например у меня ид=1 а у другого пользователя ид=2 и он мне написал сообщение как мне ему ответить чтобы имено ему ушло сообщение под ид=2 как мне этот ид=2 найти?

121. blud (18.03.2010 / 14:51)
ребята обясните пожалуйсто вот например у меня ид=1 а у другого пользователя ид=2 и он мне написал сообщение как мне ему ответить чтобы имено ему ушло сообщение под ид=2 как мне этот ид=2 найти?

122. blud (18.03.2010 / 14:55)
ребята обясните пожалуйсто вот например у меня ид=1 а у другого пользователя ид=2 и он мне написал сообщение как мне ему ответить чтобы имено ему ушло сообщение под ид=2 как мне этот ид=2 найти?

123. Владислав (18.03.2010 / 15:30)
наверное детский вопрос
как сделать очистку таблицы каждую минуту?

124. Azzido (18.03.2010 / 15:47)
123,
<?php
if(mysql_result(mysql_query('SELECT timeflush FROM table WHERE id="1"'),0)<time()){
mysql_query('UPDATE table SET timeflush="'.time().'+3600" WHERE id="1"');
mysql_query('TRUNCATE TABLE truntable');
}
?>


125. Владислав (18.03.2010 / 18:06)
124. Azzido, спс, но я сделал умнее, не очисткой smile

126. Анатолий (18.03.2010 / 18:53)
122. blud,
INSERT INTO `mail` (id_send, id_rec, text) VALUES('ID_отправителя','ID_получателя','Текст сообщения');


127. Артур (20.03.2010 / 10:31)
Только что такое намудрил:
<?php
$q = mysql_query('SELECT * FROM `table`');
while($row = mysql_fetch_assoc($q)){
echo mysql_result(mysql_query('SELECT COUNT(*) FROM `table2` WHERE `tags` LIKE "%'.$row['name'].'%"'),0);
}
Как обьединить эти 2 запроса, чтобы при выводе в ячейке counter было значение второго запроса и в результате было примерно такое
<?php
$q = mysql_query('???');
while($row = mysql_fetch_assoc($q)){
echo $row['counter'];
}
?
В таблице table поля counter нет

128. Артур (20.03.2010 / 14:45)
Уже ненадо

129. Михаил (23.03.2010 / 14:26)
Как зделать запрос к бд с исключением. Вот у меня есть код
$all_files = mysql_fetch_row(mysql_query('SELECT COUNT(*) FROM `files` WHERE `size` > 0')); 

А зделать чтобы в определенной категории он не считал количество файлов

130. Михаил (23.03.2010 / 14:42)
все разобрался smile

131. Дмитрий (29.03.2010 / 16:42)
Как сделать запрос - мне надо что бы переменная $images выводила значение столбца images , в строке, которая выводится переменной $id

132. Дмитрий (29.03.2010 / 16:52)
структура таблицы
id--images
1--------1
2--------3
3--------2
тут id задается переменной $id а мне надо узнать какое значение у этого $id в столбце images

133. Дмитрий (29.03.2010 / 17:14)
Все. Разобрался.... smile извените за флуд

134. Игорь (04.04.2010 / 18:54)
не пойму в чем проблема:
$sql = "CREATE TABLE testtabl(id int NOT NULL, name char(40) NOT NULL);"; // Строка 9
Parse error: syntax error, unexpected T_VARIABLE in **:\****\***\***\bd\index.php on line 9

135. Игорь (04.04.2010 / 20:32)
Вопрос в посте 134 неактуален) разобрался

136. Саня (07.04.2010 / 21:51)
Доброго времени суток, можна ли как нибудь 3аписать массив в бд шоб элемент=новому ид без циклов?

137. Саня (07.04.2010 / 21:56)
ЕСЛИ НА ФАЙЛАХ ТО ТАК
file_put_contents('name.txt',implode("\n",$array));//элемент=новой строке
а как в MYSQL?

138. Azzido (07.04.2010 / 22:24)
137, ничего не понятно что ты хочешь. file_put_contents как я помню,возбращает число байт записанных в файл, а ты о чем то непонятном

139. Саня (08.04.2010 / 14:25)
138, http://php.su/functions/?file_put_contents

140. WCO (08.04.2010 / 14:31)
137. mocart,
Insert into table values (1,'a'), (2,'b'), .....


141. Саня (08.04.2010 / 15:16)
ТЯЖКО, есть массив 2000 элементов, как его записать 'элемент массива'='новый id'

142. Azzido (08.04.2010 / 15:28)
ну значит так тяжко объяснил

143. Андрюха (08.04.2010 / 15:47)
Наверн ток с циклом запишеш

144. Руслан (19.04.2010 / 20:06)
Кто знает как можно сделать запрос, который по переданной дате покажет сколько в таблицу было записано строк в тот день

145. Azzido (19.04.2010 / 20:26)
144, mysql_query('SELECT COUNT(`id`) FROM `table` WHERE `time`>"'.(time()-86400).'"');

146. Руслан (19.04.2010 / 22:09)
145, выдаёт пустой ответ
Пробовал так
mysql_query('SELECT COUNT(`id`) FROM `partner_stat` WHERE `2009-03-04`>"'.(time()-86400).'"');
Может не так что сделал, в таблице есть поле time в котором содержиться время добавления строки, но в нём время в формате Y-m-d h:i:s, может по нему было бы легче читать, но у меня в запросе Y-m-d, а время должно быть любое

147. ramzes (19.04.2010 / 23:27)
В указанный день?
$day = 5; // 5 дней назад
$checktime = time()-(3600*24*$day); // уникс метка
SELECT count(*) FROM partner_stat WHERE time = '".date('Y-m-d', $cheketime)."'; // запрос на этот день

148. Руслан (20.04.2010 / 00:17)
Спасибо, теперь нормально

149. ramzes (05.05.2010 / 13:57)
Блин, подскажите, из-за чего может тормозить таблица?
SELECT * FROM forum_post WHERE id_theme = '".$theme['id']."' ORDER BY time DESC LIMIT ".$start.", ".$end."
20к записей, выдает просто не реальные 0.08 сек, когда все остальное 0.01
id_theme и time индексы. Уже просто мозг сломал об эту заразу..

150. Azzido (05.05.2010 / 14:01)
ну возможно в этом "*" суть smile

151. ramzes (05.05.2010 / 15:34)
В смысле? Мне и надо * все выгрести, те же блоги рядом стоят, данных на этаж больше, и скорость в 10 раз быстрее, нет тут именно что то с таблицей.. Убирал WHERE и ORDER сразу каждый облегчает в двое, и почему то сортировка по id (авто инкремент) работает явно неделеннее чем по time (хоть ключ хоть нет, проверял и так и так).. Заметил после смены сервера, думаю не могла ли таблица криво залиться из бекапа или какие настройки сервера влиять?

152. Игорь (05.05.2010 / 15:40)
Подскажите пожалуйста как вывести кол-во запросов в Дб?)) smile

153. Nu3oN (05.05.2010 / 16:10)
Rezent (Сегодня / 15:40)
Подскажите пожалуйста как вывести кол-во запросов в Дб?)) smile
в начале сайта (Где нибудь в шапке) напиши $db_query=0; потом создаем функцию типа
<? function db_query ($query) { global $db_query; ++$db_query; return mysql_query($query); } 
и вместо mysql_query() используешь функцию db_query() a потом внизу выводишь echo 'запросов к бд: '.$db_query;

154. Игорь (05.05.2010 / 17:01)
153. Nu3oN, Спасибо=) +

155. Дмитрий (06.05.2010 / 10:22)
Не могу залить одну таблицу выдает ошибку.
подскажите где она
~~~~~~~
CREATE TABLE `ban_ip` (
`ip` int(11) NOT NULL default '0',
`id` int(11) default '0',
UNIQUE KEY `ip` (`ip`)
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

156. Azzido (06.05.2010 / 10:37)
запятую добавь после UNIQUE KEY `ip` (`ip`)

157. Анатолий (06.05.2010 / 10:43)
KEY `id` (`id`) - это что?
Возможно имелось ввиду
CREATE TABLE `ban_ip` (
`ip` int(11) NOT NULL default '0',
`id` int(11) NOT NULL AUTO_INCREMENT,
UNIQUE KEY `ip` (`ip`)
PRIMARY KEY(`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
P.S. Если задаешь поле первичным ключем, то оно:
1. NOT NULL
2. Не задавай его по DEFAULT, т.к. значение должно быть уникальным
3. в слудае ID желательно ставить AUTO_INCREMENT (автоувеличение на 1), просто для удобства

158. Azzido (06.05.2010 / 10:49)
и опять же без запятой

159. Анатолий (06.05.2010 / 16:51)
После UNIQUE KEY `ip` (`ip`) ток запятую провтыкал

160. Дмитрий (09.05.2010 / 10:37)
Всем спасибо за помощь.

161. Мура (19.05.2010 / 09:50)
как залить базу чтоб когда пишу сообщения в чате чтоб не выходили ????????? Знаки, заливаю базу utf8 все равно эти знаки

162. Azzido (19.05.2010 / 10:11)
после подключения и выбора базы попробуй дописать
mysql_query('SET NAMES utf8');

163. Мура (19.05.2010 / 11:27)
это куда писать? Я не понял sad

164. Azzido (19.05.2010 / 11:43)
в каждом скрипте после того как прошло mysql_connect(); и mysql_select_db();

165. Мура (19.05.2010 / 11:44)
sad ничего не понимаю... sad пожалуйста можно поподробнее?

166. Мура (19.05.2010 / 11:47)
я вот первый раз базу залил smile

167. Мура (19.05.2010 / 13:22)
ну кто скажет?

168. Azzido (19.05.2010 / 14:36)
ЧЕ тут непонятного? Открой любой файл там увидишь что то типа mysql_connect(); и mysql_select_db(); и после них вставь

169. Мура (19.05.2010 / 15:01)
в каждом файле?

170. DmitryDick (20.05.2010 / 09:48)
нет, это соединение с БД, это в одном каком-то файле

171. Роман (20.05.2010 / 12:07)
Помогите перевести каракули!!! Есть файл с дампом, кодировка файла UTF-8 без метки BOM, в заголовке SET NAMES latin1;, в файле место русского текста каракули. Как только я этот дамп не заливал, один фиг абра-кадабра получается... Хочу узнать, лечиться ли это и как? Может программы есть какие для этого?

172. Azzido (20.05.2010 / 12:50)
170, ну не скажи, чаще всего в одном из файлов данные подключения, а вот подключение уже отдельно в каждом файле

173. Стасон (20.05.2010 / 14:19)
$req = mysql_query("SELECT frend.frend, frend.yu ,users.id, users.lastdate, users.name
FROM `frend`,`users` WHERE `frend.yu` =
'$datauser[id]' AND `users.id`=`frend.yu`
ORDER BY `users.lastdate` DESC LIMIT $start,$kmess");
Чё я не так сделал?

174. Стасон (20.05.2010 / 14:43)
Спасибо уже сделал как надо smile

175. DmitryDick (20.05.2010 / 15:24)
172, данные при чем, если я о подключении? о.О

176. DmitryDick (20.05.2010 / 15:26)
171, попробуй кодировку бд в latin установить, залить, глянь, что получится)

177. Роман (20.05.2010 / 15:53)
176. dont give me names, Все равно каракули... sad

178. Удаленный (20.05.2010 / 15:57)
177.
mysql_query("SET NAMES cp1251");
mysql_query("COLLATE utf8");
пропиши это в файле который отвечает за соединение.

179. Роман (20.05.2010 / 21:23)
Нашел все таки я прогу, просто супер любые каракули с абра-кадаброй перекодирует за секунды... smile

180. Azzido (21.05.2010 / 00:22)
175, о том что в большинстве скриптов подключение в каждом скрипте, а не в одном,и инклудят данные подключения к базе. И прописать возможно нужно не в одном файле. Дошло?

181. DmitryDick (21.05.2010 / 07:24)
Тогда в большинстве старых скриптов*. Ну или в которых автор не додумался.

182. Михаил (27.05.2010 / 07:36)
Делаю запрос к базе, чтобы отсортировать таблицу по столбцам: id_razdel и id_track:
mysql_query("select * from $db_track order by id_razdel,id_track");
Но почему-то сортировка непроходит(

183. Саня (05.06.2010 / 21:36)
емм, вопрос. Есть у меня в БД две таблицы.
В них обоих есть поле story , как одним запросом можно выбрать их в массив с сортировкой по времени (поле time) ? с меня +

184. Мakcим (10.06.2010 / 17:35)
183. sanzstez, a koнkpeтнeй?
 mysql_query('select table1.story, table2.story from  table1, table2 order by time'); 
тak пoпpoбуй.

185. Мakcим (10.06.2010 / 17:38)
182. EZHIK, a пo oднoму cтoлбцу copтиpуeт?

186. Олег (11.06.2010 / 03:02)
sanzstez, имеешь ввиду результаты двух столбцов объединить в один с сортировкой по time?

187. Саня (11.06.2010 / 10:29)
186. Aligan, да именно это. )

188. Олег (11.06.2010 / 13:21)
выложи структуру обоих таблиц с небольшим дампом

189. Артём (11.06.2010 / 15:10)
Люди, вот у меня в таблице есть несколько одинаковых запесей, нужно чтоб при выводе повторные записи игнорировались, подскажите запрос, спасибоsmile

190. Azzido (11.06.2010 / 15:21)
189, SELECT * FROM `table` WHERE `id`="1" GROUP BY `pole`;

191. Артём (11.06.2010 / 15:28)
190. Спсsmile

192. Azzido (11.06.2010 / 15:36)
ну с WHERE `id`="1" я правда погорячился, не надо это

193. Артём (11.06.2010 / 19:42)
Да нормально, у меня по полю ид тоже проверка идет:-)
Вот ещё вопрос, можно ли в одном запросе записать в две таблици разные значения?

194. Жека (11.06.2010 / 22:54)
Что в этом случае лучше использовать?
<?php
$query = "SELECT `salt` FROM `users` WHERE `id` = '{$uid}'";
$sql = mysql_query($query);

//Так
echo mysql_result($sql, 0);

//Или так?
$assoc = mysql_fetch_assoc($sql);
echo $assoc['salt'];
?>

Как программно правильно? По стандарту?

195. Azzido (11.06.2010 / 22:58)
193, можно
194, именно в данном случае echo mysql_result($sql, 0); будет быстрей, потому что построение массива долше выполняется и не за чем это делать для одной переменной, добавь еще LIMIT 1 в запросе

196. Жека (11.06.2010 / 23:01)
195. Azzido, Пасиб. А в каких случаях мне использовать второй вариант?

197. Azzido (11.06.2010 / 23:03)
196, в случае если используешь несколько переменных $query = "SELECT `salt1`,`salt2`,`salt3`,`salt4`, FROM `users` WHERE `id` = '{$uid}'";

198. Артём (12.06.2010 / 00:15)
197. Дай кодsmile думаю хорошая оптимизация будетsmile

199. Жан-Глюк Петард (12.06.2010 / 00:42)
LIMIT 1 там не к чему если id уникальный/первичный индекс. Оптимизатор его все равно уберет.

200. Azzido (12.06.2010 / 00:43)
198, UPDATE `table1`,`table2` SET `table1.title`='rwqgwetr' WHERE `table1.id`=`table2.id`;

201. Олег (12.06.2010 / 05:29)
Azzido, уже не раз про LIMIT говорили. Если заранее ясно что результатирующий запрос вернет одну запись, то лимит вовсе не нужен, и даже будь то не уникальный ключ, то со случаем mysql_result будет всегда одно значение

202. Azzido (12.06.2010 / 11:34)
201, id не обязательно должно быть первичным ключем или автоинкрементом

203. Олег (12.06.2010 / 13:48)
Azzido, покажи где я говорил обратное

204. Жан-Глюк Петард (12.06.2010 / 14:14)
Aligan (Сегодня / 05:29)
Если заранее ясно что результатирующий запрос вернет одну запись, то лимит вовсе не нужен
Это большое заблуждение. Вы не в сферическом вакууме и СУБД не знает того, что знаете вы (вы знаете, что запись одна точно, а она нет). Поэтому найдя первый совпадающий результат она продолжит читать таблицу. В случае с уникальным индексом такого не будет. (хотя надо будет точно потестить smile , может и лучше будет с limit 1)

205. Олег (13.06.2010 / 02:36)
204, Я поясню. Говоря ранее написанное мное утверждение я совсем не то имел ввиду, что вы думали. Вернемся к примеру ilNIle -
<?php 
$query = "SELECT `salt` FROM `users` WHERE `id` = '{$uid}'"; 
$sql = mysql_query($query);
?>
В этом примере он уточнил какой метод лчше использовать, на что Azzido сказал что лучше mysql_result() потому что быстрее. И теперь о правильной логике. Да я знаю, что запись одна и только одна потому что используется первичный ключ (и уверен что в примере атвора он тоже заявлен). Сами посудите - это видно из контекста кода. Но если первичный ключ в таблице не заявлен, и автор таким образом пытается получить результа, то следует пора задумать о проектировании БД более грамотней.

206. Михаил (16.06.2010 / 16:54)
как правильно сделать запрос "удалить все с базы book" ?
DELETE * FROM book - так не выходит

207. Azzido (16.06.2010 / 17:11)
TRUNCATE `book`;

208. Azzido (16.06.2010 / 17:23)
ну или DELETE FROM `book`; отличия в сбросе значений автоинкремента в первом случае

209. Олег (16.06.2010 / 17:34)
208, отличие в том что TRUCATE сначала удаляет таблицу, а потом заново восстанавливает, что в свою очередь намного быстрее построчного удаления строк при помощи DELETE.

210. Артём (20.06.2010 / 03:24)
Как отсортировать вывод из базы по времени? ,тоесть чтобы новые на верху были?

211. Игорь (20.06.2010 / 03:35)
$query="SELECT * FROM `table` ORDER BY data"; Как то так.

212. Артём (20.06.2010 / 03:50)
211. Так правельней наверно , сортировка по полю time
ORDER BY `time`
все равно новые сообщения внизу:-( ещё кто знает?))

213. Артём (20.06.2010 / 04:46)
Все, разобрался,
ORDER BY `time` DESC
про параметр DESC забыл:-)

214. ramzes (20.06.2010 / 14:30)
ORDER BY id DESC по идеи должно быстрее работать

215. Олег (20.06.2010 / 16:22)
ramzes, но это будет неправильно.

216. Игорь (20.06.2010 / 16:38)
Ну data так у меня=)

217. Олег (20.06.2010 / 17:55)
Сортировка нужно указывать по столбцу, которому нужно выстроить порядок. id это всего лишь primary. Дату можно в процессе изменить (например, если нужно поставить новость задним числом), тогда порядок нарушится,если в качестве порядка использовать id

218. Саня (22.06.2010 / 21:56)
Дарова всем,
Как вытянуть результаты с несколькими LIKE?
Тоесть нужна строка где есть %иша, саш%, и %оша

219. Олег (23.06.2010 / 08:36)
... WHERE name LIKE '%$var1%' OR '%var2%'
или аналог IN

220. Мakcим (28.06.2010 / 23:06)
Зaчeм фунkция mysql_pconnect? В kлacce видeл. Знaю, чтo coздaeт пocтoяннoe coeдинeниe, нo зaчeм пo cути?

221. Azzido (28.06.2010 / 23:07)
Во-первых, при соединении, функция пытается найти уже открытый (постоянный) указатель на тот же сервер с тем же пользователем и паролем. Если он найден, возвращён функцией будет именно он, вместо открытия нового соединения.

Во-вторых, соединение с SQL-сервером не будет закрыто, когда работа скрипта закончится. Вместо этого, оно останется рабочим для будущего использования (mysql_close() также не закрывает постоянные соединения)

222. Azzido (28.06.2010 / 23:10)
так что как в некоторой литературе сказано что постоянные коннекты грузят сервер, это далеко не так

223. Дмитрий (28.06.2010 / 23:23)
ну и на простом языке, пконект работает быстрееsmile

224. Azzido (28.06.2010 / 23:43)
точней далеко не всегда так, нужно сервер иметь настроеный под этот тип коннекта, убивать лишние повисшие соединения, установка mysql.max_links, так что для обычного хостинга не советую этой функцией пользоваться, хостер когда нибудь выскажет вам что ему надоелеи постоянно ваши висящие соединения....

225. Мakcим (29.06.2010 / 12:29)
224. Azzido, яcнo smile

226. Олег (29.06.2010 / 15:06)
Постоянные соединение в php лучше не использовать. да вообще я про интерент имею. Потому что интерент это не один, не дв ни три, ни десять пользователей. А много. При каждом обращении к серверу новый процесс создания постоянного соединения, и тут ему свойственно жрать ОП. И даже разница между ними небольшая. Процесс создания нового соединения исчисляется в малых долях секунды. Человеческий мозг не способен заметить такую разницу

227. ramzes (29.06.2010 / 16:16)
Вроде же при постоянном коннекте сборщик мусора не будет чистить оперативу от всего ненужного, что осталось относящееся к этому соединению?

228. Олег (29.06.2010 / 16:57)
Не будет, потому что он не имеет кэтому отношения.

229. Олег (07.07.2010 / 19:21)
Как с помощью PHP присвоить значение NULL ячейке в таблице базы данных MYSQL?
Тоесть у меня
$del=safe_query("UPDATE ".PREFIX."user SET guid='' WHERE userID='".$userID."'");
И там в guid нужно присвоить значение NULL, не текст "NULL", а значение несуществует.

230. Azzido (07.07.2010 / 21:23)
$del=safe_query("UPDATE ".PREFIX."user SET guid=NULL WHERE userID='".$userID."'");

231. Олег (08.07.2010 / 02:07)
230, ахаха, вот я нахамутал E . спс

232. Олег (08.07.2010 / 13:54)
Azzido, для чего же это ты целочисленные значения передаешь в запросе как строковые? Честно, не ожидал)

233. Azzido (08.07.2010 / 13:56)
232, я полностью скопировал его код, только NULL написал, на остальное внимание не обратил...

234. Олег (09.07.2010 / 02:35)
232-233, просветите если не трудно.

235. Azzido (09.07.2010 / 05:50)
`userID`='.$userID); (integer)
`userID`="'.$userID.'"'); (string)

$del=mysql_real_escape_string(mysql_query('UPDATE `'.PREFIX.'user` SET `guid`=NULL WHERE `userID`='.$userID));

236. Олег (09.07.2010 / 21:15)
if($_GET['id']==$n) {
$q = mysql_query("SELECT * FROM ".PREFIX."squads WHERE squadID='".$n."'");
$f = mysql_fetch_array($q);
Как сделать чтобы в переменную $n записывалось число с адресной строки
index.php?site=team&id=1
В этом случае 1 - нужное чсло.
Пробовал перед кодом поставить
$n = $_GET['id'];
Но что то оно мне не нравится. sad

237. ramzes (10.07.2010 / 19:24)
$n = (int)$_GET['id'];

238. Дмитрий (11.07.2010 / 00:08)
мож не по теме, но форум на моторе 19 на мускуле.
У меня не создаёт разделы. Чё делать?

239. Артём (11.07.2010 / 00:18)
238. Таблици залей, форум рабочий...

240. Дмитрий (11.07.2010 / 00:25)
Какие таблицы и куда?

241. Azzido (11.07.2010 / 01:38)
240, надо readme (инструкцию по установке) читать!!!

242. Михаил (12.07.2010 / 19:42)
есть таблица config

CREATE TABLE `config` (
  `config_name` varchar(255) NOT NULL,
  `config_value` varchar(255) NOT NULL,
  PRIMARY KEY  (`config_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `config` VALUES ('title', 'free-site');
INSERT INTO `config` VALUES ('domain', 'site.ru');
INSERT INTO `config` VALUES ('year', '2010');
как вывести значения?

243. Саня (12.07.2010 / 19:50)
242. mides,
<?php
$sql=mysql_query("SELECT * FROM config");
while($arr=mysql_fetch_assoc($sql)){
echo'Config_name: '.$arr['config_name'].'<br/>';
echo'Config_value: '.$arr['convig_value'].'<br/>';
echo'----<br/>';
}
?>
Вот так smile )))

244. Михаил (12.07.2010 / 19:54)
243. mocart, работает, спасибо smile

245. Михаил (12.07.2010 / 20:23)
хотя нет, работает коряво sad
выводит так:

сайт: site
название: title
--------------
сайт: site
название: title
--------------
сайт: site
название: title
--------------
и т.д.

а мне нужно чтобы раз всего вывело
сайт: site
название: title

246. Артём (12.07.2010 / 21:05)
LIMIT 1
используй)

247. Михаил (12.07.2010 / 21:10)
246. Juse, не помогло sad терь не выводит информацию

248. Артём (12.07.2010 / 21:27)
Напиши свой запрос mysql_query, щас помогуsmile

249. Артём (12.07.2010 / 21:30)
Хотя выше нашел, делай вот-так
$sql = mysql_query("SELECT * FROM `config` LIMIT 1");
smile

250. Михаил (12.07.2010 / 21:33)
249. Juse, я так и делал вставил к запросу limit, выводит страницу правильно, но не выводит сами записи из базы

251. Azzido (12.07.2010 / 22:46)
если LIMIT 1 добавили, тогда и циклом не нужно обходить
<?php 
$assoc=mysql_fetch_assoc(mysql_query('SELECT * FROM `config` LIMIT 1'));
echo 'Config_name: '.$assoc['config_name'].'<br />
Config_value: '.$assoc['convig_value'].'<br />
----<br />';


252. Михаил (12.07.2010 / 22:52)
251. Azzido, нет, не робит(( ввожу в первое поле, показывает во всех...

253. Azzido (12.07.2010 / 23:05)
252, не совсем понял, дай скрипт чтоль в приват и напиши поконкретней что хочешь сделать, посмотрю...

254. Михаил (12.07.2010 / 23:11)
253. Azzido, отправил

255. Артём (12.07.2010 / 23:16)
mides, глянь на свой 245 пост, работает все правильно, сколько в таблице будет записей INCERT INTO, столько и виведет раз цикл)

256. Михаил (13.07.2010 / 01:33)
255. Juse, уже подсказали) не так робит 245.
name вася
surname хз
lastname еще чето
и заново и так 11 раз было столько и полей.. если с лимитом, то не выводило информацию..

257. Артём (13.07.2010 / 04:42)
256, ато я и смотрю, что-то у тебя не то))

258. Михаил (23.07.2010 / 16:55)
Как ограничить количество символов текста выводимых из базы? т.е. допустим
$row['text'] - здесь хранится тот самый текст, общее кол-о символов 150, а мне нужно вывести 30.

259. Саня (23.07.2010 / 17:11)
258,
<?php
$text=mysql_result(mysql_query("SELECT SUBSTRING('text',1,30) AS text FROM table LIMIT 1"),0);
?>
Это? smile )

260. Михаил (23.07.2010 / 17:39)
259. mocart, да, но нельзя ли $row['text'] = код_ограничения_кол-ва символов нет ли такого кода? smile

261. Саня (23.07.2010 / 17:48)
Непонял... Что значит "Код ограничения колл-ва символов"?

262. Михаил (23.07.2010 / 17:50)
261. mocart, ну переменная $row['text'] приняла на себя из базы допустим текст в 100 символов, нельзя уменьшить это и вывести

263. Саня (23.07.2010 / 17:51)
<?php
echo substr($row['text'],0,30);//Так шоли?
?>


264. Михаил (23.07.2010 / 17:57)
263. mocart, да, только здесь выводит 20 символов, а не 30 чего-то

265. Саня (23.07.2010 / 18:01)
Попробуй так
<?php
echo mb_substr($row['text'],0,30,'UTF-8');
?>


266. Михаил (23.07.2010 / 18:05)
265. mocart, Wrong parameter count for substr()

267. Саня (23.07.2010 / 18:08)
Х.З. http://www.php.su/functions/?mb_SUBSTR

268. Саня (23.07.2010 / 18:11)
266, mb_substr а не substr

269. Михаил (23.07.2010 / 18:12)
268. mocart, Call to undefined function mb_substr()

270. Саня (23.07.2010 / 18:16)
Если функции нету, значит юзай 259, или папробуй substr($row['text'],0,60); Уже всякая чертовщина в голову лезет D ))

271. Михаил (23.07.2010 / 18:18)
270. mocart, ладно, спасибо и на том smile + влепил бы, но ставил когда-то уже.

272. Lugaro (23.07.2010 / 18:23)
269, в рнр.ини раскомментируй extension=php_mbstring.dll
270, корректно не будет работать с утф

273. Михаил (23.07.2010 / 18:55)
272. .::lugaro::., оно и так было раскомментировано..

274. Lugaro (23.07.2010 / 19:08)
я надеюсь ты не путаешь // и ; (это так для справки, мало ли=) ), ну а так, если бы php_mbstring.dll был подключен, то все работало бы, сам файл php_mbstring.dll существует в *:\WebServers\usr\local\php5\ext ?

275. Михаил (23.07.2010 / 20:34)
274. .::lugaro::., если я правильно понимаю нужно удалить ";" перед php_mbstring.dll ? удалил - не помогло

276. Lugaro (23.07.2010 / 20:39)
mides (23 Июля 2010 / 19:34)
274. .::lugaro::., если я правильно понимаю нужно удалить ";" перед php_mbstring.dll ? удалил - не помогло
Верно.
сам файл php_mbstring.dll существует в *:\WebServers\usr\local\php5\ext ?
проверял ?

277. Михаил (23.07.2010 / 20:55)
276. .::lugaro::., не, не существует
ps а можешь скинуть на upwap например ил подскажи где скачать

278. Studentsov (23.07.2010 / 20:57)
*facepalm* что ж у тебя за программа такая

279. Михаил (23.07.2010 / 20:58)
278. Студент_trollface, denwer прошлого года..

280. Lugaro (23.07.2010 / 21:02)
277. mides, http://wapnew.ru/66

281. Михаил (23.07.2010 / 22:27)
280. .::lugaro::., все-равно пишет невозможно определить функцию, наверно, т.к. это 5.2.9.9 а уменя 5.2.4.4 поэтому не подходит

282. Lugaro (23.07.2010 / 23:32)
Гугли)

283. Azzido (23.07.2010 / 23:49)
что мещает обновить денвер

284. Михаил (24.07.2010 / 00:45)
Azzido (23 Июля 2010 / 22:49)
что мещает обновить денвер
я обновлял уже), phpmyadmin не понравился, он может и удобный, но привыкать нужно к новой панели, а тут все понятно..

285. Azzido (24.07.2010 / 10:39)
ну тут стоит выбирать между непривычностью и нормальной работой, программы то не просто так выходят новые версии..

286. Lugaro (24.07.2010 / 11:01)
284. mides, поставить phpmyadmin старой версии

287. Саня (26.07.2010 / 00:36)
Народ, по возможности тестаните два запроса, на большой базе
<?php
mysql_query("SELECT `data`.* FROM `data_stories` AS `data`, `data_prout` AS `prut` WHERE `data`.id=$id and `data`.id_us=`prut`.name");
//и тоже самое с JOIN'ом
?>
На хосте генирация гуляет, хотелось бы узнать более точноsmile ) Зарание спасибоsmile

288. Олег (26.07.2010 / 14:59)
mocart, на большой базе скорость выполнения запроса будет такая же как и при маленькой базе. При условии что правильно раставлены индексы. В данном случае тебе поможет отладить запрос — план выполнения запроса.

289. Михаил (27.07.2010 / 01:51)
.::lugaro::. (24 Июля 2010 / 10:01)
284. mides, поставить phpmyadmin старой версии
а оно будет совместимо?

290. Михаил (30.07.2010 / 17:15)
При создании темы(форум), в таблицу `themes` записывается ид_юзера, название и сообщение. Юзеры храняться в другой таблице `users` с именем и ид'ом. Дальше выводим список тем с названием и автором, но выводится только навзание и ид юзера, а как сделать чтобы выводился имя автора, т.е. типа $user['id'] где ид будет браться из базы

291. Олег (30.07.2010 / 17:36)
290, организовать двутабличный запрос
select users.*, themes.* from themes LEFT JOIN users USING(id_user)

292. Евгений (02.08.2010 / 17:07)
1. Для чего нужно "сравнение"?
2. Есть HTML форма. Если ввести цифры - запись добавится, если буквы - не добавится. В чем может быть дело?

293. Евгений (02.08.2010 / 18:57)
С этими двумя разобрался. Теперь вопрос такой:
Если добавлять Русский текст в базу, он добавляется и выводится(скриптом) - нормально. А вот в pma выводнятся кривульки. Можно исправить как нибудь?
Сравнение utf8_general_ci

294. Azzido (02.08.2010 / 19:27)
293. ZeRoM, да это кодировка интерфейса pma такая у тебя стоит, в некоторых версиях есть возможность переключения кодировки "внешнего вида", а сравнения и вообще техническая часть работы mysql тут не при чем

295. Михаил (05.08.2010 / 19:28)
как на новом денвере, phpmyadmin 3.2.3, поставить первичный ключ при создании таблицы?

296. Анатолий (05.08.2010 / 20:11)
PRIMARY KEY(<имя_поля>); О_о

297. Михаил (06.08.2010 / 10:08)
296. users.id, что О_о ?? я спрашиваю как не вручную ставить его? ведь на старом можно было так

298. Azzido (06.08.2010 / 10:17)
297. mides, всмысле? Ты sql запросами создаешь таблицу или уже через меню операций? Качай на офсайте новую phpmyadmin и устанавливай если у тебя урезаная версия

299. Михаил (06.08.2010 / 13:48)
298. Azzido, через меню операций. не урезанная вроде, чего б в денвер ставили урезанную версию

300. Azzido (06.08.2010 / 13:55)
и зачем тебе это нужно? проще будет sql заапросами с заранее спланированной структурой базы, типов таблиц, там и первичный ключ добавишь, зачем тебе вручную создавать

301. Михаил (06.08.2010 / 14:01)
300. Azzido, ты неправильно понял. Я имею в виду при создании поля выбирать, скрин
http://upwap.ru/980490

302. Azzido (06.08.2010 / 14:09)
я правильно понял, зачем тебе это? работай sql запросами

303. Михаил (06.08.2010 / 14:11)
302. Azzido, ну так же долго, проще и быстрее через меню
ps скачал phpmyadmin последней версии 3.2.5 с офф сайта, установил \home\localhost\www\Tools\phpmyadmin просит пароль, как его убрать?

304. Azzido (06.08.2010 / 14:17)
чем проще? тебе достаточно один раз написать запрос, сохранить в текстовом файле, а потом ctrl+c -> ctrl+v и все, причем не один запрос, можно за один раз сотню таблиц создать

305. Дмитрий (07.08.2010 / 04:46)
У меня такой вопрос, скрипт работает на включеных регистер глобалс, и насколько я знаю, к глобальным переменным типа REMOTE_ADDR надо обращатся через getenv() вопрос: правильно будет так
"SELECT * FROM `bannlist` WHERE (ip = '".$REMOTE_ADDR."') and (soft = '".$HTTP_USER_AGENT."')"
или так
"SELECT * FROM `bannlist` WHERE (ip = '".getenv($REMOTE_ADDR)."') and (soft = '".getenv($HTTP_USER_AGENT)."')"

?

но пр втором варианте айпи и софтина не выводится...

306. Azzido (07.08.2010 / 09:11)
$_SERVER['REMOTE_ADDR'] испльзуй суперглобальный массив

307. Дмитрий (07.08.2010 / 22:26)
Azzido а вообще в чем будет разница, или это ради безопасности? smile

308. Олег (07.08.2010 / 23:13)
При чем тут безопасность? getenv это устаревшая функция.

309. Дмитрий (08.08.2010 / 06:23)
Aligan (7 Августа 2010 / 23:13)
При чем тут безопасность? getenv это устаревшая функция.
хм, ну тогда в чем разница, напишу я просто REMOTE_ADDR или $_SERVER[REMOTE_ADDR] ?

310. Azzido (08.08.2010 / 12:22)
$REMOTE_ADDR - register_globals on
$_SERVER['REMOTE_ADDR'] - register_globals off

311. Дмитрий (08.08.2010 / 14:20)
Ну дык у меня включен регистер глобалс, очевидно мне не нужен суперглобальный массив

312. Олег (08.08.2010 / 14:33)
Mr-General, неужели включен? На хостинге?

313. Azzido (08.08.2010 / 14:34)
311. Mr-General, из соображений безопасности не рекомендуется использовать включенные глобальные переменные, потому что можно допустить ошибки, которые станут уязвимостью.

314. Дмитрий (08.08.2010 / 17:35)
Azzido, включен, я знаю что это не есть гуд, но переписать скрипт на register_globals off пока не судьба

315. Саня (11.08.2010 / 07:41)
Здарова, есть вопрос, и есть таблицы
Скрытый контент: Для выполнения действия необходимо авторизоваться!
Надо удалить из всех категорий лишние посты(это значит если в категории 135 постов, надо удалить 35, если 670, то удалить 570) короче что бы осталось 100, а если в категории меньше 100 постов, то ничего не удалять
Запросы в цикле не нужны, скорей всего возможно одним запросом все это сделать, сам пытался сделать но не то, сдесь два косяка, мошь кого наведет на мысль
Скрытый контент: Для выполнения действия необходимо авторизоваться!
Может и нельзя, х.з. жду ваших предложений, Зарание спасибоsmile )

316. Олег (11.08.2010 / 13:43)
У тебя втвоем запросе полнаякаша. Зачем эти вложенные запросы, если они даже не нужны.
1. Посчитать кол-во записей в отдельном запросе.
2. если записей больше 100 — формируем и выполняем запрос на удаление

317. Саня (11.08.2010 / 15:23)
У меня так и есть, но данных много, подщет норм еще как то происходит,
SELECT id,(SELECT COUNT(*) FROM post WHERE post.category=category.id) AS count FROM category;
а система висьнет при удаление, ведь колл-во категорий где постов>100=колл-ву запросов к бдsad ))

318. Олег (11.08.2010 / 16:51)
Кол-во запросов на удаление можно свести к количеству категорий

319. Михаил (12.08.2010 / 23:14)
Проблема с выводом текста, а именно неправильное форматирование. Через форму ввода текст записывается в базу данных, напр.
ааа аа бб 
аа ghh sdfdf

gg ss
как видите там есть абзац и еще двойной абзац, в базу так и записалось, но при выводе все форматируется и выводится сплошным текстом
ааа аа бб аа ghh sdfdf gg ss
Помогите исправить.

320. Саня (13.08.2010 / 02:07)
nl2br()? Если правельно понял

321. Михаил (13.08.2010 / 10:16)
320. mocart, огромное спасибо smile Ваш положительный голос за пользователя mocart успешно оставлен!

322. Саня (16.08.2010 / 01:32)
315 не актуален, разобрался в два запроса 1 выворка, 1 удаление (0,0xxx sec.)

323. SD (19.08.2010 / 21:34)
Ребят, такая прроблема. У меня в таблице table есть поля user_1 и user_2, в них разные id юзеров. Ники этих юзеров в таблице users, как вытащить из бд эти user_1 и user_2, плюс еще nick_1 и nick_1(алиасы для ников от id). Чет думал-думал - не додумал...
ОДНИМ запросом

324. Саня (19.08.2010 / 23:41)
323. Emissar,
<?php
$sql = mysql_query("SELECT `user_1`, `user_2`, (SELECT `nik` FROM `users` WHERE `id` = `table`.`user_1`) AS `nik_1`, (SELECT `nik` FROM `users` WHERE `id` = `table`.`user_2`) AS `nik_2` FROM `table`");
?>
Больше наверно никак

325. SD (20.08.2010 / 10:55)
324. mocart, Это три запроса, не находишь?smile Я разобрался уже.

326. Олег (20.08.2010 / 11:44)
Не умеешь ты доходчиво объяснять. Если правильно понял.
<?
  $sql = "SELECT * FROM table INNER JOIN users ON users.id = table.user_1 OR users.id = table.user_2";
?>


327. Ден (21.08.2010 / 12:22)
где можно почитать про функции mysql?

328. Андрюха (21.08.2010 / 12:26)
327. mysql.ru

php.su/mysql/?functions

329. Studentsov (21.08.2010 / 12:43)
http://php.net/PDO klass

330. Ден (21.08.2010 / 12:58)
такс, а где почитать где использовать какие кавычки к примеру....``...и тд

331. Ден (21.08.2010 / 13:02)
к примеру этот код
$result = mysql_query ("SELECT * FROM ".$table." ORDER BY ` test _1` DESC LIMIT 0 , 35 ");
понял его только 50% прошу обьяснить

332. ramzes (21.08.2010 / 14:58)
если не используешь в своем коде слова зарезервированные как служебные термины mysql, то ´ не обязательны

333. Олег (21.08.2010 / 18:19)
".$table." можно без кавычек — лишняя интерпретация строк

334. Михаил (25.08.2010 / 16:27)
Проблема с подсчетом файлов в разделе, в котором есть еще подразделы, и в которых могут быть еще подразделы и т.д.
Все хранится в базе данных. Есть две таблицы: категории загрузок `loads_cats` и сами загрузки `loads`.
Структура таблицы `loads_cats`
  `id` хранится ид раздела
  `id_cat` ид раздела в котором он находится, если на главной, то ноль
  `name` имя раздела

Структура таблицы `loads`
  `id` хранится ид файла
  `id_cat` ид раздела
  `name` имя файла

Следующим кодом я хочу вывести все разделы которые находяться на главной загрузок(т.е. ид раздела '0')
и вывести рядом количество файлов в разделах

$result = mysql_query("SELECT * FROM `loads_cats` WHERE `id_cat` = '0'");

while($row = mysql_fetch_assoc($result)){
$files = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `loads` WHERE `id_cat` = ".$row['id'].""), 0);
echo '<a href="loads/?act=view&amp;id='.$row['id'].'">'.$row['name'].'</a> ('.$files.')<br/>';
}
Но, этим запросом можно узнать только количество файлов в данных разделах, а не в включенных в них подразделов.
Надеюсь, что кто-то мне поможет smile

335. Олег (25.08.2010 / 17:07)
SELECT 
	loads_cats.id
	loads_cats.id_cat
	loads_cats.name
	loads.name AS name_file
	loads.id AS id_file	
FROM 
	loads_cats   
LEFT JOIN
	loads ON loads.id_cat =  loads_cats.id
WHERE 
	`id_cat` = '0'


336. Михаил (25.08.2010 / 17:47)
335. Aligan, я так понял запрос нужно в начало, т.е. в $result в данном случае, но выскачили ошибки с mysql_fetch_assoc из-за запроса выше, через mysql_error пробовал исправлять ошибки, но ничего не вышло как правильно это записать
$result = mysql_query("SELECT  
    loads_cats.id,
    loads_cats.id_cat,
    loads_cats.name,
    loads.name AS name_file,
    loads.id AS id_file 
FROM  
    `loads_cats`    
LEFT JOIN 
    `loads` ON loads.id_cat =  loads_cats.id
WHERE  
    `id_cat` = '0'");


337. Олег (25.08.2010 / 18:10)
Запрос поправил немного. Вот.
SELECT  
    loads_cats.id, 
    loads_cats.id_cat, 
    loads_cats.name, 
    loads.name AS name_file, 
    loads.id AS id_file     
FROM  
    loads_cats    
LEFT JOIN 
    loads ON loads.id_cat =  loads_cats.id 
WHERE  
    loads_cats.`id_cat` = 1

p.s. уже не раз говорил, скажу еще — целые значение не обрамляй в апострофы, это не к чему. это лишнее.

338. Михаил (25.08.2010 / 18:22)
337. Aligan, терь ошибок нету, но теперь ничего нет smile не выводит вообще разделы =)

339. Олег (25.08.2010 / 18:24)
У меня выводит. Прикрепи дам базы вместе с данными

340. Михаил (25.08.2010 / 18:33)
339. Aligan, http://upwap.ru/1006424

341. Олег (25.08.2010 / 18:40)
Все выводит. В моем примере я указал в условии значение 1. Сервер не нашел искомого. поменяй на 0 или 2 тогда сервер вернет соответствующие записи

342. Михаил (25.08.2010 / 18:48)
341. Aligan, точно, как я не заметил, терь новая странная ошибка, выводит первый раздел два раза, 4й - три раза

343. Олег (25.08.2010 / 19:00)
Это не ошибка. Так и должно быть. Почему? Опять же принцип реляционой алгебры. У тебя построено следущее отношение таблицы loads_cats и loads — один ко многим. Значит раздел будет повторяться столько раз сколько в нем подразделов.
Да и еще вместо left join тут лучше измени на INNER JOIN

344. Михаил (25.08.2010 / 19:36)
343. Aligan, и что нет никакого способа не выводить разделы столько раз сколько в них подразделов, их же просто некуда деть

345. Олег (25.08.2010 / 22:48)
Есть конечно. Самый правильный поставить условие в самом цикле.

346. Михаил (27.08.2010 / 20:46)
Но как это сделать?
сделал вот так, но что-то неверно, return нужно где-то использовать наверно т.к. выводит количество только для одного раздела, но выводит его уже правильно =), не могли бы подправить
$check_dir = mysql_query("SELECT (`id`) FROM `loads_cats` WHERE `id_cat` = '$id'"); 
while($row = mysql_fetch_assoc($check_dir)){ 
$result = mysql_result(mysql_query("SELECT COUNT(*) FROM `loads` WHERE `id_cat` = '".$row['id']."'"), 0); 
echo $result; 
}


347. Олег (28.08.2010 / 13:20)
Не знаю, не доходит и все. НИКОГДА не пишите в цикличном выводе запросы. Это губительно.
<?

   

   $sql = mysql_query("
	SELECT
    	loads_cats.id,
    	loads_cats.id_cat,
    	loads_cats.name,
    	loads.name AS name_file,
    	loads.id AS id_file
	FROM
    	loads_cats
	INNER JOIN
    	loads ON loads.id_cat =  loads_cats.id
	WHERE
    	loads_cats.`id_cat` = 0");

 if($sql && mysql_num_rows($sql)>0){
 	while($arr = mysql_fetch_assoc($sql)){

 		if($id != $arr['id']){
 			echo $arr['name'].'</br>';
 			echo '&nbsp;&nbsp;----'.$arr['name_file'].'<br />';
 			$id = $arr['id'];
 		}
 		else{
 			echo '&nbsp;&nbsp;----'.$arr['name_file'].'<br />';
 		}
 	}
 }

?>



348. Лиза (05.09.2010 / 13:08)
Может вопрос глупый,но всё же спрошу.Сделала экспорт базы с хоста и теперь незнаю как на Денвер залить,через запрос не получается.Может можно инсталятор сделать?

349. Михаил (05.09.2010 / 17:42)
выдели весь запрос старый и вставь его в phpmyadmin на денвере через SQL

350. WCO (14.09.2010 / 11:29)
вопрос по части оптимизации, нужно ли ставить индексы на поля по которым идет сортировка?
ORDER BY `field`

351. Олег (14.09.2010 / 13:29)
Отчасти да. Но все же стоит всегда полагать на план выполнения запроса — EXPLAIN.
Например здесь неплохо сказано про то когда нужно, когда не нужно — ссылка

352. Михаил (20.09.2010 / 22:04)
Вот в роторе нашел одну интересную вещь
DB :: $dbh -> query("INSERT INTO `topics` (`topics_forums_id`, `topics_title`, `topics_author`, `topics_posts`, `topics_last_user`, `topics_last_time`) VALUES (?, ?, ?, ?, ?, ?);", array($fid, $title, $log, 1, $log, SITETIME));

[b]$lastid = DB :: $dbh -> lastInsertId();[/b]

DB :: $dbh -> query("INSERT INTO `posts` (`posts_topics_id`, `posts_forums_id`, `posts_user`, `posts_text`, `posts_time`, `posts_ip`, `posts_brow`) VALUES (?, ?, ?, ?, ?, ?, ?);", array($lastid, $fid, $log, $msg, SITETIME, $ip, $brow));

вот этот Ласт_ид мне очень интересен и нужен smile как его написать в обыкновенном mysql, т.е. я имею в виду не в PDO-MySQL

353. Михаил (20.09.2010 / 22:12)
все, нашел mysql_insert_id(); кажется она

354. ★☆ ИгRok™ ☆★ (23.09.2010 / 15:52)
Как удалить базу? Вместо СREАТЕ пишу DRОР,нажимаю импорт,появляется ошибка и база остается не тронутой

355. Azzido (23.09.2010 / 16:06)
355. SoluS_AngeluS, ты напиши полностью запрос как ты удаляешь

356. ★☆ ИгRok™ ☆★ (23.09.2010 / 16:20)
Ну как создается база...так же,только вместо CREATE ставлю DROP...
DROP TABLE `blogs` (.....); там где ...... Это обычные условия базы: ид,наме,титле...

357. ZipeR (23.09.2010 / 16:26)
357. SoluS_AngeluS,
не так же она создаётся,синтаксис разные
DELETE FROM emails WHERE id='2' LIMIT 1 ; пример удаления.
-------
DELETE - удаляет
CREATE - создаёт.

358. Azzido (23.09.2010 / 17:30)
DROP TABLE

Команда DROP TABLE предназначена для удаления одной или нескольких таблиц:

DROP TABLE table_name [ ,table_name,...]

К примеру, для удаления таблицы forums нужно выполнить следующий SQL-запрос:

mysql>DROP TABLE forums;

DROP DATABASE

Команда DROP DATABASE удаляет базу данных со всеми таблицами входящими в её состав:
DROP DATABASE database_name

Удалим, например, базу данных forum:

mysql>DROP DATABASE forum;

зачем тыкать пальцем в небо, когда для этого сотни разных пособий и мануалов
http://visavi.net/files/index.php?p=php&f=php74&

359. ★☆ ИгRok™ ☆★ (23.09.2010 / 17:55)
Блин,ну не получается,кто может написать пример?

360. Azzido (23.09.2010 / 18:34)
mysql_query('DROP DATABASE `my_base`');

361. ★☆ ИгRok™ ☆★ (23.09.2010 / 19:33)
361.спасибо большое

362. Денис (06.10.2010 / 05:35)
Всем привет,такой вопрос,как прописать базу в мастер установки движка,чё туда писать

363. Azzido (06.10.2010 / 05:53)
обычно это сервер бд, имя бд, имя пользователя бд и пароль пользователя бд, ну и порт иногда

364. Олег (06.10.2010 / 14:42)
кодировка по умолчанию

365. ZloiKombat (12.12.2010 / 23:27)
Подскажите такой момент. Я делаю запись в базу данных следующим образом:
<?
$msg = $_POST['msg'];
$query = "INSERT INTO aforizm (text) VALUES ('$msg')";
$result = mysqli_query($a1b1c1,$query) or die ('Ошибка при выполнении запроса к базе данных');
mysqli_close($a1b1c1);
?>
У меня запись идет, но русский текст записывается в виде каракулей. Потом когда текст из базы выводишь, то он отображается не совсем корректно, некоторые символы (например буква ш) отображается в виде квадрата с вопросительным знаком.
Как нужно сделать запись что бы текст записывался в оригинале а не в каракулях?
при создании базы и таблицы указывалась кидировка utf8_general_ci, сайт так же работает на кодировки utf8

366. Олег (19.12.2010 / 23:35)
Можно так, но не самый лучший вариант
<?

$msg = iconv('cp1251','utf-8',$_POST['msg']); 
$query = "INSERT INTO aforizm (text) VALUES ('$msg')"; 
$result = mysqli_query($a1b1c1,$query) or die ('Ошибка при выполнении запроса к базе данных'); 
mysqli_close($a1b1c1); 
?>

p.s. Для начала покажи полностью файл конекта с БД.

367. ramzes (20.12.2010 / 00:24)
лучше изначально настроить бд и скрипт в одной и той же кодировке

368. Михаил (26.12.2010 / 19:51)
Как лучше, как более оптимизировано делать запрос, если, например, необходимо все одно поле
1 вариант mysql_fetch_assoc(mysql_query("SELECT * FROM `users`"))
2 вариант mysql_fetch_assoc(mysql_query("SELECT `name` FROM `users`"))

369. JustZero (26.12.2010 / 21:30)
369. mides, 2 вариант лучше) 1 всю табл загр, а 2 ток 1 поле из табл

370. JustZero (31.12.2010 / 17:46)
И 2 вариант будет намного быстрее

371. Саня (31.12.2010 / 21:33)
371. ы_я_Шурик, а вот и нифига подобного! Советую по мускулу маны почитать. Выборка по * быстрее.

372. ramzes (31.12.2010 / 21:39)
372. sanzstez, есть такое дело

373. Дмитрий (31.12.2010 / 23:36)
первый раз такое слышу, при подсчете * быстрее, но вот при выборке данных хз, всегда думал по другому

374. Олег (01.01.2011 / 21:24)
В данном случае, да, если указать звездочку в агрегате, то сервер просто пробежит по индексам и сосчитает, а если указать по полю, подсчет будет идти по всей таблице.
Не забываем указывать индексы.

375. ramzes (05.01.2011 / 23:28)
есть записти в таблице 1 и записи в таблице 2
надо получить записи из т1 и записи из т2 привязанные к записям в т1
типа
т1.1
т2.2
т2.5
т1.2
т2.7
т2.9
т1.3
т2.12
одним запросом, как организовать?

Добавлено через 02:55 сек.
375. Aligan, у тебя блога нет? я бы почитал

376. -VirtuS- (07.01.2011 / 20:45)
Не поиму как потключится к базе. Что где писать?
<?session_start();
$connect=mysql_connect("localhost","root","");
mysql_select_db("port",$connect);
mysql_query("SET NAMES 'utf8'",$connect);


377. Игорь (09.01.2011 / 21:01)
$connect=mysql_connect("mysql_server_name", "mysql_user", "mysql_password");
mysql_select_db("name_database",$connect);

378. Игорь (09.01.2011 / 21:16)
в общем в одной таблице есть колонка реферер, где находится имя аккаунта который пригласил человека
надо добавить персонажу этого аккаунта вещь(в другой таблице), если персонаж того человека которого он пригласил наберет 20 уровень (своя колонка, в другой таблице)
проблема в том что я не знаю как найти персонажа
или всех персонажей зная только имя персонажа
все это находится в разных таблицах

379. Саня (20.01.2011 / 10:47)
Всем привет, как осуществить регистронезависимое сравнение?
SELECT * FROM `table` WHERE `text` = 'TrOloLo';
Это учитывает регистр
Зарание спасибо

380. Марсель (29.01.2011 / 12:41)
Можно было бы протестить и самому)
Если неполучится, то `text` замени на LOWER(`text`)

381. Ден (15.02.2011 / 15:18)
как создать столбец?

Добавлено через 02:20 сек.
все, раздуплился

382. DmitryDick (15.02.2011 / 15:51)
380, ... where поле like 'значение'

383. Ден (15.02.2011 / 16:34)
при записи в базу латинецей все норм, а русскими кракозябры.....че делать?

384. Ден (15.02.2011 / 16:50)
разобрался

385. Ден (15.02.2011 / 23:18)
К примеру, у меня в таблице 3 столбца id, name, text, очистил таблицу, при записи id считает не сначала, в моем случае с 268, как ему сказать, что нужно считать сначала?

386. Игорь (15.02.2011 / 23:46)
386. PаRaDoKs, очищай таблицу через TRUNCATE TABLE, и auto_increment должен обнулиться

387. Ден (15.02.2011 / 23:52)
387, спасибо помогло.....а я очищал через DELETE FROM Table, учту далее

388. Ден (16.02.2011 / 17:02)
дайте плз функцию постраничной навигации

389. DmitryDick (16.02.2011 / 21:46)
388, так значение auto_increment не обнуляется.
389, в теме полезных функций или кодах смотри

390. Ден (16.02.2011 / 21:51)
390, там нету я смотрел, гугл чет плохо помогает

391. Fest (16.02.2011 / 22:32)
Как сделать результат? Например нужно из базы узнать сколько мальчиков и сколько девочек на сайте?

Добавлено через 02:03 сек.
В базе запись 'users' > 'gender 1' - мальчики 'gender 2 девочки'

Добавлено через 05:43 сек.
Users>gender>1 or 2

392. Виталий (17.02.2011 / 00:35)
делай 2 запросы
$boy = mysql_query("SELECT COUNT(*) FROM users WHERE gender=1");
$girls = mysql_query("SELECT COUNT(*) FROM users WHERE gender=2");
echo $boy[0]
чтото типо того

Добавлено через 01:56 сек.
можно через 1 запрос выбрать всех а потом цыклом роспределить...но так вроде лучше

393. Fest (17.02.2011 / 00:40)
Интересно.. Я так экспериментируюsmile

Добавлено через 05:39 сек.
Я так понял что select это запрос из бд, а если я хочу изменить на сайте анкету, типо обновить.. Какой атрибут используется в бд? Это уже точно не select (запрос)

394. Ден (17.02.2011 / 01:03)
так, что кто мне с навигацией поможет?

395. Fest (17.02.2011 / 01:28)
393 при запросе из бд информации нужно соблюдать что нибудь чтоб не сделать на сайте уязвимость?

396. Виталий (17.02.2011 / 01:49)
394.select ето команда выборки есть ещё Updade Insert...
396.да =)
Fest, настоятельно рекомендую прочитать об Mysql(точнее о языке SQL) но так все подробно изучать не надо - только азы..
поверьте методом "тыка" - будет путь длиннее чем сесть прочитать и практиковаться

397. o5tussa (06.03.2011 / 01:54)
как сделать так чтоб по истечению определенное время автоматически удалялись данные из базы?

398. ZipeR (06.03.2011 / 03:35)
398. o5tussa,
DELETE FROM `Таблица` WHERE `added`<NOW()-INTERVAL 5 MINUTE
Дни DAY,минуты MINUTE,секунды SECOND почитай их совмещение ещё.

399. o5tussa (06.03.2011 / 15:03)
399. ZipeR, Спасибо друг.

400. Александр (01.06.2011 / 18:49)
народ. такой вопрос.
этот запрос дает ошибку.
$dd = mysql_query( 'SELECT `id` FROM `level` WHERE `op_min`<= "'.$a.'" AND `op_max`=>"'.$a.'"');
		$opyt = mysql_fetch_array( $dd );
      return $opyt['id'];
я гдето ошибся или эта фишка
`op_min`<= "'.$a.'" AND `op_max`=>"'.$a.'"
не пройдет?
таблица такая
id op_min op_max
1 10 100
2 100 200
и так далее

401. Александр (01.06.2011 / 19:21)
вопрос закрыт.
не
`op_max`=>"'.$a.'"
а
`op_max`>="'.$a.'"
нужно было

402. beno95 (08.06.2011 / 12:36)
как залить таблицу?? И где залить?? Куда зайти, путь пкажите(

403. Azzido (08.06.2011 / 12:59)
Для начала нужно сказать какой хостинг, какая панель управления, хотя наверняка имеется phpmyadmin (панель управления базами данных), там ищи вкладку sql, и там в поле ввода вставляй текст из файла с таблицами, если конечно импорта из файла не увидишь.

404. beno95 (08.06.2011 / 13:07)
кода захожу в импорт и выбераю файл птом выводит


Ошибка
SQL-запрос:
CREATE TABLE IF NOT EXISTS `files` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT , `filename` TEXT NOT NULL , `name` TEXT NOT NULL , `hidden` INT( 1 ) DEFAULT '0', PRIMARY KEY ( `id` ) ) ENGINE = MYISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT =1;
Ответ MySQL:
# 1 0 4 6 - N o d a t a b a s e s e l e c t e d
Наверное совсем не то делаю

Добавлено через 02:43 сек.
404. Azzido, попробую

Добавлено через 04:18 сек.
хостинг true host, сpanel , phpmyadmin есть

405. Azzido (08.06.2011 / 13:29)
405. beno95, дак перевод с английского ошибки тебе всё скажет, слева в выпадающем меню, или списке, не знаю что там, смотря какая версия phpmyadmin, выбери базу данных, а потом уже вкладку sql.

406. beno95 (08.06.2011 / 14:07)
получилось. спасибоsmile

407. TaPaHbl4 (24.06.2011 / 17:18)
люди, какое ограничение по количеству строк и столбцов в таблице, и таблиц в базе

408. Денис (24.06.2011 / 21:11)
408, нету никаких ограничений

409. Владислав (28.06.2011 / 03:26)
Есть запрос:
SELECT `users`.`login` AS `us_login`, `users`.`avatar` AS `us_avatar`,
`mems`.*, `mems_comments`.`text` AS `mc_text`, `mems_comments`.`time` AS `mc_time`, (COUNT(1) - 1) AS `cnt`
FROM `users`, `mems`
LEFT JOIN `mems_comments` ON `mems`.`id` = `mems_comments`.`id_mems`
WHERE `mems`.`id_user` = " . $query['id'] . "
AND `users`.`id` = `mems`.`id_user` GROUP BY `mems`.`id`,`mems_comments`.`id`
(COUNT(1) - 1) AS `cnt`
он должен подсчитать количество записей из таблицы mems_comments где `mems_comments`.`id_mems` = `mems`.`id`
но чет нифига не считает
и `users`.`login` AS `us_login`, `users`.`avatar` AS `us_avatar`
нужно ещё достать эти же данные, только `users`.`id` = `mems_comments`.`id_user`

410. Михаил (03.07.2011 / 12:31)
Как вывести из базы напр. 3 случайные записи?

411. Lugaro (03.07.2011 / 12:46)
SELECT * FROM `table` ORDER BY RAND() LIMIT 3
Только с большой базой тупить будет.. Есть много решений этой задачи, гугли ))

412. Михаил (03.07.2011 / 13:07)
412. .::lugaro::., спасибо).
Где-то видел код похожий на такое что-то: if ($closed = 1) ? 'closed' 'opened';
Что означает:
if ($closed == 1) { 
 echo 'closed'; 
} else { 
 echo 'opened'; 
}
Так вот, как правильно тот код пишется?)

413. Lugaro (03.07.2011 / 14:16)
echo $closed == 1 ? 'closed' : 'opened';
Ток ты не по разделу

414. AlyOha (10.07.2011 / 00:05)
.sql.gz можно как либо распаковать в .sql?

415. ramzes (10.07.2011 / 00:08)
Архиватор разве не берет?

416. AlyOha (10.07.2011 / 02:30)
416. ramzes, я с телефона.так значит возможноsmile

417. ramzes (10.07.2011 / 03:01)
ну давай распакую

418. AlyOha (10.07.2011 / 03:53)
418. ramzes, db.sql.gz

419. ramzes (10.07.2011 / 05:36)
http://www.wapblog.in/db.sql

420. AlyOha (10.07.2011 / 07:04)
420. ramzes, спасибо)

421. ramzes (10.07.2011 / 12:44)
не за чтоsmile

422. JustZero (10.07.2011 / 17:49)
419. AlekCeu, ты хоть дамп теперь удали, а то все пассы расшифруют E

423. Виталий (17.07.2011 / 15:17)
Возникла одна проблема - не работает авторизация. Сам файл авторизации ниже. Кто поможет исправить?
http://upwap.ru/1613267

424. Sep (24.07.2011 / 13:58)
424. vitagame, с таблицой `users` все нормально? В файле вроде ошибок нет

425. Виталий (25.07.2011 / 12:00)
425. IceMan, да, все нормально.

426. AlyOha (25.07.2011 / 12:14)
423. SynzBGG, я им не пользуюсь))

427. Александр (29.07.2011 / 17:37)
такой вопрос к опытным кодерам.
какой запрос легче или быстрее
1. mysqli_num_rows(...."select `id`.....
2. mysqli_fetch_row(...."select count(`id`)......

428. ramzes (29.07.2011 / 17:39)
select count(*)

429. Tinga (23.08.2011 / 10:36)
Вот такой код :
$randomize = mysql_result(mysql_query("SELECT `hp_name`,`hp_history`, FROM HP_user ORDER BY RAND() LIMIT 1"), 0);

Работает если не делать выборку по двум колонкам, тоесть без hp_history работает, если добавить то не хочет.
В чем дело?

430. KOZZ (23.08.2011 / 10:51)
после `hp_history запятая не нужна

431. Tinga (23.08.2011 / 10:54)
431. eGo Адский Степлер, Теперь работает, но показывает только результат hp_name

432. Анатолий (23.08.2011 / 12:08)
432, может покажешь участок кода, как выводил?

433. Tinga (23.08.2011 / 13:07)
433. dekameron, Всмысле?

434. KOZZ (23.08.2011 / 13:36)
432. Tinga, так mysql_result возвращает только 1 последнее значение.
Юзай mysql_fetch_assoc и обрабатывай и выводи как массив

435. Tinga (23.08.2011 / 13:57)
Вот в чем дело! Спасибо сейчас попробую.

436. Tinga (23.08.2011 / 14:19)
Да все прекрасно работает, спасибо!

437. R2R2 (28.08.2011 / 17:36)
Как в таблицу в базе данных добавить еще одно поле поле. Например, рост в анкете, как добавить поле для записи цифры роста в базу в таблицу usеr?

438. Александр (28.08.2011 / 17:38)
в phpmyadmin поле структура и внизу добавить поле

Добавлено через 02:41 сек.
если точнее, то выбираешь базу и таблицу юзер. открывается таблица юзер. вверху вкладка структура. открываются все поля. внизу под ними форма добавления поля

439. Андрей (28.08.2011 / 17:40)
Смотри http://dev.mysql.com/doc/refman/5.0/en/alter-table.html

440. AlyOha (01.09.2011 / 16:09)
Connection failed: SQLSTATE
[42000]: Syntax error or access
violation: 1226 User 'rotor' has
exceeded the 'max_questions'
resource (current value: 10000)
можно подробнее об этой штуке,почему выходит и что можно сделать..

441. Александр (02.09.2011 / 01:20)
441. AlekCeu, а запрос, в котором ошИбКа?

442. AlyOha (02.09.2011 / 17:14)
442. rastoman, на всем сайте так,любая страница

443. ramzes (02.09.2011 / 19:47)
Слишком большое кол-во запросов

444. Wapuns (05.09.2011 / 12:42)
<select name="theme" size="1">
<option value="0"'. ($user['theme'] == 0?' selected="selected"':NULL) .'>Default</option>
<option value="1"'. ($user['theme'] == 1?' selected="selected"':NULL) .'>Blujes</option>
</select><br />

вот код, при выборе пункта а базу сохраняются значения, можете дать код когда при выборе будет не значение добавляться а слова, Blujes например выбрав и в базе Blujes будет а не значение как тут.

445. Wapuns (05.09.2011 / 12:59)
Все я разобрался! Спс .::lugaro::.

446. AlyOha (06.09.2011 / 09:36)
При cookie-аутентификации, в
конфигурационном файле
необходимо задать парольную
фразу установив значение
директивы $cfg
['blowfish_secret']. Кто нибудь знает как сделать автологин для входа phpmyadmin .

447. Александр (06.09.2011 / 10:28)
тоЛЬко если У ТЕБЯ ЕСТЬ доступ К скРипту myadmIn

448. AlyOha (06.09.2011 / 10:29)
448. rastoman, немного не понял, ты хочешь сказать что нет такой ссылки?

449. Александр (06.09.2011 / 18:05)
на сервере где ты находиШЬСЯ есть панеЛЬ phpmyadmin. Ты в нее входиШЬ каК пользоватеЛь. к фаЙлу КонфИГУРацИИ Ты доступа не Имеешь. Пардон за Капс.. Труба глючИт

450. AlyOha (06.09.2011 / 18:35)
450. rastoman, а по автологину нельзя пройти?мне нужно дамп базы сделать.Я переехать с этого сервера хотел.

451. Александр (06.09.2011 / 19:30)
я чет не поняЛ. Ты вопрос задаЛ каКОй? Ты воЙТи не можешь иЛи тебе вход по КУкИСАМ нужен. Первое К данноЙ теме не относИТСЯ. А второе врядЛи НА хосте возможно

452. AlyOha (26.10.2011 / 09:04)
Вообщем,
$query = DB :: $dbh -> query("SELECT * FROM `table` WHERE `id`=?", array(1));
а возможно этот запрос изменить чтобы не только по id выводило, но так же учитывая еще одну деталь, например `type`

453. Алексей (26.10.2011 / 10:33)
AlyOha (26 Октября 2011 / 09:04)
Вообщем,
$query = DB :: $dbh -> query("SELECT * FROM `table` WHERE `id`=?", array(1));
а возможно этот запрос изменить чтобы не только по id выводило, но так же учитывая еще одну деталь, например `type`
$dbh -> query("SELECT * FROM `table` WHERE `id`=? AND `type`=?", array(1, $type));

454. AlyOha (26.10.2011 / 13:31)
МегабиТ (26 Октября 2011 / 10:33)
$dbh -> query("SELECT * FROM `table` WHERE `id`=? AND `type`=?", array(1, $type));
да нет, там так нужно было
$q = DB :: -> query("SELECT `id`=? FROM `table` WHERE `type`=? LIMIT 1;", array(1,1));
smile

455. Алексей (26.10.2011 / 13:44)
455. AlyOha, если не смотреть на плейсхолдеры то даже по синтаксису этот sql запрос не правильный

456. AlyOha (26.10.2011 / 13:48)
456. МегабиТ, ну как тогда(? На странице, после твоего запроса, все белое.
454 - после DB :: $dbh забыл)

457. Алексей (26.10.2011 / 13:51)
457. AlyOha, я не забыл, я просто так скопировал, суть не в этом была там

458. Назар (01.11.2011 / 19:30)
AlyOha (26 Октября 2011 / 12:31)
да нет, там так нужно было
$q = DB :: -> query("SELECT `id`=? FROM `table` WHERE `type`=? LIMIT 1;", array(1,1));
smile

ибо нельзя писать
SELECT `id`=?
так как здесь мы указываем какие поля будут выбраны. Есловия указываються после WHERE.
Тсть :
$q = DB :: $dbh -> query("SELECT `id` FROM `table` WHERE `type`=? AND `id` = ? LIMIT 1;", array(1,1));


459. Серега (29.11.2011 / 14:33)
подскажите что не так делаю. надо сравнить совпадение с записью в mysql

$login = mysql_query("SELECT login FROM ".PRIFIX."_users WHERE lower(login)=$log");

if(empty($login))
{
echo "Ok";
}lese{
echo "error";
}
в результате выходит всегда Ok

460. Александр (29.11.2011 / 15:58)
переменной логин присваивается ресурс.
Смотри как нужно правильно получать значение из базы smile
$login=mysql_fetch_assoc($login)
И потом проверяешь $login[0]

Добавлено через 04:01 сек.
да, забыл сказать, эту строку ставь после первого запроса

461. Серега (29.11.2011 / 16:20)
461. rastoman, ну это всё понятно. Просто вспомнил (или может чёта путаю) что проверить можно и без масива т.к. WHERE login=$log должен найти совпадения, а если WHERE login!=$log то наобород не совпадения, и так далее.

462. Серега (11.12.2011 / 15:12)
прочитал статьи от sql инъекций и там был предоставлен такой способ

mysql_query("SELECT `user_login` FROM `en_users` WHERE `user_login`=? LIMIT 1;", $login);

почему та этот способ выводит ошибку

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in

как правильней будет?

463. Zдешний (11.12.2011 / 16:37)
Серёга (11 Декабря 2011 / 17:12)
прочитал статьи от sql инъекций и там был предоставлен такой способ

mysql_query("SELECT `user_login` FROM `en_users` WHERE `user_login`=? LIMIT 1;", $login);

почему та этот способ выводит ошибку

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in

как правильней будет?
в $login то значение передаётся?smile

464. Серега (11.12.2011 / 18:20)
конешно. все други проверки проходят нормально. да и если этот способ изменить на where login='$login' то работает

465. Михаил (15.12.2011 / 13:52)
Есть допустим 2 таблицы Оплата (Дата, Сумма) и Отгрузка (Дата, Сумма). Можно ли как-нибудь одним запросом получить дату на которую есть долг, т.е. сумма оплаты меньше суммы отгрузки

466. AlyOha (15.12.2011 / 14:04)
Серёга (11 Декабря 2011 / 15:12)
mysql_query("SELECT `user_login` FROM `en_users` WHERE `user_login`=? LIMIT 1;", array($login));
может?

467. Серега (15.12.2011 / 21:07)
467. AlyOha, так тоже не работает, таже самая ошибка

468. AlyOha (15.12.2011 / 21:22)
468. Серёга, может там Single или Fetch надо?

469. Shahin (23.12.2011 / 16:14)
Как сменить кодировку всех таблиц. Что куда нужно вписать? Или куда именно войти?

470. Shahin (24.12.2011 / 20:37)
Да не хрена здесь никого нет, а я еще рекламу заказать хотел. Ну нах этот сайт.

471. ramzes (24.12.2011 / 20:39)
Shahin (24 Декабря 2011 / 20:37)
Да не хрена здесь никого нет, а я еще рекламу заказать хотел. Ну нах этот сайт.
поплачь еще)))

472. JustZero (21.02.2012 / 15:00)
вот есть дава запроса типа

<?php
$uid1 = mysql_query("SELECT * FROM clubs WHERE id=$id1");
$uid2 = mysql_query("SELECT * FROM clubs WHERE id=$id2");

можно ли объединить эти 2 запроса в 1?

473. юЮЮфюв (21.02.2012 / 15:09)
SELECT * FROM clubs WHERE id=$id1 && id=$id2 как-то так)

474. Александр (21.02.2012 / 15:25)
SELECT * FROM clubs WHERE id=$id1 OR id=$id2

475. AlyOha (27.02.2012 / 14:00)
order by `rost` вывод выполняется так:
1 17.8
2 27.5
3 18.3
4 6.4
5 0.1
как сделать чтобы правильно выводило? думаю поняли о чем я..

476. Андрюха (27.02.2012 / 15:17)
17.8
27.5
18.3
6.4
0.1

вот эт че за поле?

477. AlyOha (27.02.2012 / 15:33)
Wapruks (27 Февраля 2012 / 15:17)
17.8
27.5
18.3
6.4
0.1

вот эт че за поле?
rost у меня числа десятичные есть, нужно что бы выводило начиная с большего, заканчивая меньшим, а в данный момент это не так.

478. Андрюха (27.02.2012 / 15:38)
удалено

479. Zдешний (27.02.2012 / 17:40)
ORDER BY `rost` DESC ? не? или мускул десятичные не понимает дроби?

480. ZaRiN (27.02.2012 / 17:50)
478. AlyOha, order by `rost` DESC
и не забудь тип поля поставить float

481. AlyOha (27.02.2012 / 18:35)
481. Жадный лепрекон, спасибо float то что надо))

482. Андрюха (28.02.2012 / 06:32)
Есть 2 таблицы,в них в обеих есть поля ид. Мне неужно и из 1 получить ид и из второй. Я получаю. А как вывести то их? например

$array = mysql_fetch_assoc(тут запрос);

echo $array['id']; выведет ид из первой таблицы указанной в запросе. А вот как значение ид второй таблицы вывести?

483. Саня (28.02.2012 / 07:28)
483. Wapruks, В запросе второй ид сделай так - `table_2`.`id` AS `id_2`
И обращайся к нему по соответствующему имени

484. Андрюха (28.02.2012 / 08:34)
484. Ага,спасиб. Забыл я про алиасы

485. Дэнчик (20.04.2012 / 02:26)
Подскажите
mysql_query("UPDATE таблица SET что_пишем='".$write."' WHERE по_чему_находим_строку='".$id."'");
как тогда будет выглядеть запрос, если нужно дописать, а не перезаписать?

486. Александр (20.04.2012 / 11:48)
если новая записать нужна, то
INSERT INTO Таблица SET что пишем=твоя переменная

487. Дэнчик (20.04.2012 / 13:11)
Тоесть так?
mysql_query("INSERT INTO таблица SET что_пишем='".$write."' WHERE по_чему_находим_строку='".$id."'");
мне над дописывать в уже существующую запись

488. Александр (20.04.2012 / 13:26)
дописывать? тогда
mysql_query("UPDATE `твоя таблица` SET `Нужное поле`='".$что _дописать."' WHERE `ид или любое уже заполненное поле`='".$уже_имеющееся_значение."'");


489. Дэнчик (20.04.2012 / 16:31)
а если $уже_имеющееся_значение это текст 1000+ символов, мне что туда его вписывать? Просто если узнавать переменную заранее, это будет уже 2 запроса =/

490. Назар (20.04.2012 / 18:06)
DENI4 (20 Апреля 2012 / 15:31)
а если $уже_имеющееся_значение это текст 1000+ символов, мне что туда его вписывать? Просто если узнавать переменную заранее, это будет уже 2 запроса =/

mysql_query("UPDATE таблица SET что_пишем=CONCAT(что_пишем,'".$write."') WHERE по_чему_находим_строку='".$id."'");

Ответ на 486 пост

491. Дэнчик (20.04.2012 / 18:36)
Спасибо, пашет smile

Добавлено через 07:27 сек.
ещё вопрос) например есть код
while($count<=100):
echo array[1];
endwhile;
как сделать чтоб с каждым цыклом прибавлялось значение в [] на 1?

492. Дэнчик (21.04.2012 / 01:11)
проблема решена.. smile

493. JustZero (27.04.2012 / 16:04)
есть вот простенький запрос.
<?php
$db -> query("UPDATE `table` SET  `set`=`set`+1 WHERE `id`='$id'");
так вот почему-то он добавляет не +1 к set а +2 не могу понять почему.
Если че, с меня аптека smile

494. Андрюха (27.04.2012 / 16:24)
ну по идее то +1 должно добавить

495. JustZero (27.04.2012 / 16:27)
дак я вот тоже так думаю. движок mobilecms если че smile

496. Андрюха (27.04.2012 / 16:29)
может быть у тебя не стоит защита от повторного обновления записи и при обновлении страницы еще +1 получается? Хз что еще может быть

497. JustZero (27.04.2012 / 16:35)
497. Wapruks, да дело в том, что когда один раз обновляю страницу добавляет +2

498. Андрюха (27.04.2012 / 16:43)
А покажи рабочий код

499. JustZero (30.04.2012 / 20:38)
<?php
 mysql_query("UPDATE `table` SET `var` = `var` + 1 WHERE `id` = '1'");


а дает +2 D глюк какой-то походу.

500. Саня (30.04.2012 / 21:30)
500. Доктор Зло, Да не, не может быть такого...
--
`test`
(int) (int)
`id`|`var`
1 | 1
---
UPDATE `table` SET `var` = `var` + 1 WHERE `id` = '1'
--
`test`
(int) (int)
`id`|`var`
1 | 2

501. Богдан (01.05.2012 / 00:06)
500. у тя явно 2 раза запрос отрабатывает. для проверки поставь не +1, а +3. и посмотришь результат. после лучше сделай вывод всех запросов к БД, и если он там не продублирован - смотри не запрашивается ли еще раз страница аяксом например

502. JustZero (06.05.2012 / 22:41)
просто на локалке все норм, а вот на сервере аны...

503. Алексей (20.05.2012 / 22:27)
Всем привет. Подскажите как создать таблицу в которую буду записыватся описание файла при загрузки на сервер и id категории/раздела при создании новой? Ато зашел в рма и нефига не понял

504. Николай (21.05.2012 / 08:57)
504. warm, для создания категории
CREATE TABLE catalog (
  id_cat int(11) NOT NULL auto_increment,
  `name` tinytext NOT NULL,
  hide enum('show','hide') NOT NULL default 'show',
  id_key int(11) NOT NULL default '0',
  PRIMARY KEY  (id_cat)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251;

для файлов

CREATE TABLE system_android_position (
  id_pos int(11) NOT NULL auto_increment,
  `name` tinytext NOT NULL,
  `boby` text NOT NULL,
  files tinytext NOT NULL,
  hide enum('show','hide') NOT NULL default 'show',
  id_cat int(11) NOT NULL default '0',
  PRIMARY KEY  (id_pos)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251;


505. Алексей (21.05.2012 / 10:47)
505. спасибо,

506. Серега (01.06.2012 / 21:14)
привет всем
есть таблица `users`, в которой есть поле nick
вопрос: как сделать, чтобы если запись в таблице с определенным значением nick найдена, то TRUE, иначе - FALSE?

507. Николай (01.06.2012 / 21:28)
507. fL1pE,
<?
$login = htmlspecialchars($_POST['login']);
$q = mysql_query('SELECT * FROM users WHERE nick = "'.$login.'"');
if(mysql_num_rows($q) != 0){ 
//если ник существует в бд
} else {
//если ника нету.
}
?>


508. JustZero (01.06.2012 / 21:28)
<?php
$query = mysql_query("SELECT * FROM users WHERE nick = '$nick' LIMIT 1");
if (mysql_num_rows($query)>0) {
    //TRUE
} else {
    //FALSE
}


509. Николай (01.06.2012 / 21:30)
509. Доктор Зло, blum а я первый E

510. Серега (01.06.2012 / 21:38)
хех) спасибо всем, пойду попробую)

511. Серега (03.06.2012 / 22:01)
еще вопрос.. как лучше вывести последнюю запись таблицы?

512. JustZero (03.06.2012 / 22:07)
512: fL1pE,
SELECT * FROM table ORDER BY id DESC LIMIT 1;

513. Серега (03.06.2012 / 22:09)
513. Доктор Зло, спасибо)

514. JustZero (05.06.2012 / 00:11)
вот запрос
SELECT

COUNT(df.`file_id`) AS all,
COUNT(CASE WHEN df.`time` > UNIX_TIMESTAMP() - 86400 THEN 1 END) AS new,
dd.`file_icon` AS file_icon
FROM
`down_file` df
JOIN
`down_dir` dd
WHERE
df.`status` = 'active'
AND dd.`directory_id` = '1'

all и new норм показывает а вот file_icon не хочет. с меня +

515. vlad-vko (06.06.2012 / 13:35)
как вывести из базы данных случайное название записи и имя её автора на главной странице , таблица zametki структура id//user//comm//look//title//content ? подскажите пожалуста
+

516. KOZZ (07.06.2012 / 18:21)
select rand(*) from `zametki`
вроде так

517. Виталий (07.06.2012 / 20:10)
SELECT `title`, `user` FROM `zametki` ORDER BY RAND() LIMIT 1

518. vlad-vko (07.06.2012 / 22:44)
eGo Работает на Себя (7 Июня 2012 / 18:21)
select rand(*) from `zametki`
вроде так

а можно сделать чтоб выводимое название было как ссылка на статью?

519. Серега (08.06.2012 / 23:24)
как получить самый большой ID из таблицы? то есть, например, дана таблица с ID 1,2,4,5,7, нужно получить 7

520. Игорь (08.06.2012 / 23:39)
SELECT MAX(ID) FROM table

521. Серега (09.06.2012 / 00:36)
521. rezent, спасибо))

522. Игорь (09.06.2012 / 14:12)
519. vlad-vko, можно, почему нельзя?

523. ramzes (09.06.2012 / 14:13)
rezent (8 Июня 2012 / 23:39)
SELECT MAX(ID) FROM table
ORDER BY id DESC LIMIT 1
smile

524. Игорь (09.06.2012 / 14:15)
524. ramzes, поясни нубу? = )

525. ramzes (09.06.2012 / 14:30)
выбрать одну запись с сортировкой по id начиная от большего
123, 122, 121, 120.....
вернет запись с id 123

526. Серега (13.06.2012 / 23:34)
CREATE TABLE `mainmenu` (
  `id` INT(11) NOT NULL AUTO_INCREMENT ,
  `type` VARCHAR(16) NOT NULL ,
  `name` VARCHAR(32) NOT NULL ,
  `URL` VARCHAR(64) NOT NULL ,
  `image` VARCHAR(64) NOT NULL ,
  `activate` INT(11) NOT NULL ,
  PRIMARY KEY (`id`)
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
делаю через mysql_query() такой запрос, выдает ошибку: 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 'CREATE TABLE `mainmenu` ( `id` INT(11) NOT NULL AUTO_INCREMENT , `type` VARC' at line 8

что это может быть?

527. Gorec (18.06.2012 / 20:28)
Приветствую всех! Подскажите пожалуйста, как сделать текст в БД по умолчанию? Т.е. если в ячейке, скажем, нету записи, то выводилось "Нет записи"! А если есть запись, то ее показывало))
smile Спасибо за ранее

528. Петр (19.06.2012 / 08:02)
528. BOBO-95, в зависимости от того, что значит нету записи, например, так select ifnull(field, 'Нет записи') from table

529. Серега (19.06.2012 / 20:29)
528. BOBO-95, проще в php это делать через
$res = mysql_query('SELECT FROM....');
if (empty($res)) $res = 'Нет записи';
както так)

530. Михаил (23.06.2012 / 21:24)
SELECT `id` FROM `private` WHERE `id_user` = '$id_user' or `id_user` = '$u[id]' and `id_sender` = '$u[id]' or `id_sender` = '$id_user'
в данном запросе проверка идет так?
WHERE `id_user` = '$id_user' or `id_user` = '$u[id]' and `id_sender` = '$u[id]' or `id_sender` = '$id_user'
или другим образом? например:
WHERE `id_user` = '$id_user' or `id_user` = '$u[id]' and `id_sender` = '$u[id]' or `id_sender` = '$id_user'
и есть ли где-нить информация об этом? вернее как он называется? оператор чего-то..?

Добавлено через 09:15 сек.
уже разобрался.

531. Серега (19.07.2012 / 15:00)
Что не так в этом запросе?
'INSERT INTO `'.db_prefix.'reply` (to,text,time,status)
VALUES (5,"fdgfgfgfg",'.time().',0)'
db_prefix объявлена, time() возвращает integer, но при запросе mysql выдает следующее:
Invalid query: 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 'to,text,time,status)
VALUES (5,"fdgfgfgfg",1342695237,0)' at line 1


532. Серега (19.07.2012 / 17:10)
все, разобрался

533. Иван (26.07.2012 / 16:53)
Здравствуйте у меня такая проблема.
Есть код
if(isset($_POST['name']) && !empty($_POST['name'])){
$name = protect($_POST['name']);
$work = substr_replace($name,'',1);
mysql_query('INSERT INTO `performer` SET `first_letter` = "'.$work.'",`name` = "'.$name.'"');
echo '<div class="infogreen">Добавлено!</div>';
}else{
echo '<form class="box_orange" action="" method="post">
*Исполнитель: <br /> <input class="search" size="20"  type="text" name="name"/><br />
<input class="searched" type="submit" value="Добавить"/>
</form>';
}

То есть пишем исполнителя в форму он записывает Полное слово в 1 ячейку а первую букву этого исполнителя во вторую. Все бы хорошо да вот если написать по русски слово то само слово запишется а первая буква нет. Подскажите как исправить?

534. Петр (27.07.2012 / 11:56)
Вероятно, проблема в том, что ты используешь многобайтную кодировку, например, utf-8. Попробуй заменить substr_replace($name, '', 1) на mb_substr($name, 0, 1, 'название кодировки');

535. Иван (27.07.2012 / 15:05)
535. Im-ieee, спс помогло
mb_substr($name, 0, 1, 'UTF-8'); теперь буква добавляется

536. Виталий (05.08.2012 / 13:45)
Есть код:
<?php
$t = $this -> db -> query("SELECT `id` FROM `tbl` WHERE `usr`={$usr} LIMIT 1;") -> fetchColumn(0);
if ( ! empty($t)) {
// Обновляем запись
$this -> db -> query("UPDATE `tbl` SET `time`=UNIX_TIMESTAMP() WHERE `usr`={$usr} LIMIT 1;");
} else {
// Добавляем запись
$this -> db -> query("INSERT INTO `tbl` (`time`, `usr`) VALUES (UNIX_TIMESTAMP(), {$usr});");
}
Задача в том, чтобы объединить все три запроса в один. Помогите, башка уже не варит

537. Андрюха (05.08.2012 / 13:56)
По моему никак ты не объеденишь SELECT, INSERT и UPDATE в одном запросе. Хотя хз, может и можно. А чем тебе этот код не угодил?

538. Виталий (05.08.2012 / 15:15)
538. Wapruks, в гугле полно решений, но все они вызывают синтаксическую ошибку sad

539. Петр (05.08.2012 / 15:55)
537. Виталик Альянс, если на usr индекс unique:
 INSERT INTO tbl (usr, time) VALUES ('usr', CURRENT_TIMESTAMP) ON DUPLICATE KEY UPDATE time=CURRENT_TIMESTAMP


540. Виталий (05.08.2012 / 17:09)
540. Im-ieee, спасибо, все прекрасно работает

541. Woff (10.08.2012 / 16:21)
Ребят помогите объединить два запроса в один

вот первый к которому нужно прикрепить второй
$posfiles=$db->get_array("SELECT file_id, name, time, downloads, file_ext FROM #__downloads_files ORDER BY time DESC LIMIT 10");
вот второй который нужно прикрепить к первому
		if(!$file = $this->db->get_row("SELECT *,
		 	(SELECT username FROM #__users AS u WHERE u.user_id = df.user_id) AS username,
		 	(SELECT COUNT(*) FROM #__comments_posts WHERE module = 'downloads' AND item_id = df.file_id) comments
		 	FROM #__downloads_files AS df WHERE df.file_id = '". intval($_GET['file_id']) ."'"))
			a_error('Файл не найден!');


542. Woff (10.08.2012 / 16:46)
быть точнее это
(SELECT COUNT(*) FROM #__comments_posts WHERE module = 'downloads' AND item_id = df.file_id) comments
		 	FROM #__downloads_files AS df WHERE df.file_id = '". intval($_GET['file_id']) ."'"))
нужно прикрепить к первому запросу

543. Woff (10.08.2012 / 17:40)
Срочно ребят(неужели никто не поможет

544. Петр (10.08.2012 / 19:58)
543. Plain, как "это" можно объединить с другим запросом, если "это" имеет ошибки синтаксиса?

545. Woff (11.08.2012 / 00:39)
545. Im-ieee, ну на других форумах пару неопытных пытались помочь и поняли суть.что не так?я подробней инфу дам если это не понятно.просто никто даже ещё не ответил ничего ни на одном wm форуме по данной проблеме,кроме 2 человек в общем со всех форумов которые я знаю

546. Woff (11.08.2012 / 01:03)
мой вопрос закрыт!Всё решилось!

547. Pashka13 (15.08.2012 / 17:42)
Подскажите, почему не создаётся таблица. Что не так с запросом?
"CREATE TABLE test (a TINYINT, b MEDIUMINT, c MEDIUMINT, d INT);"
Вопрос снят. Всё работает )

548. Суицидник (30.08.2012 / 19:54)
Перед тем как из пхп скрипта вставить данные в таблицу, ну например строку. То ее нужно сначало экранировать или можно не экранировать ?

549. ZipeR (30.08.2012 / 20:27)
549. SCRIPTOMAN, как ты представляешь всё это?! Из кода в файл. Синтаксис сравниваешь?

550. Суицидник (30.08.2012 / 20:35)
550. ZipeR, не в файл, а в таблицу бд.

551. Петр (01.09.2012 / 07:29)
549. SCRIPTOMAN, если уверен, что строка не содержит кавычек, используемых в запросе, и \, то можно не экранировать.

552. Ден (12.10.2012 / 20:05)
Добрый вечер, как вывести данные сразу из трёх таблиц?

553. JustZero (12.10.2012 / 21:05)
553: Sich, я даже не знаю что и сказать. здесь битва экстрасенсов?

554. Ден (12.10.2012 / 21:33)
вот так я вывожу одну таблицу
$querycomm = DB::run() -> query("SELECT * FROM `commstatus` WHERE `commstatus_my`=? ORDER BY `commstatus_time` DESC LIMIT ".$start.", 10;", array($log));

а мне надо три

555. Ден (13.10.2012 / 20:09)
Вобщем есть три таблицы с комментариями фоток, статусов и аватарки пользователя, я кочу сделать чтобы в одной страничке выводились сразу все комментарии, если вывожу с одной таблицы то делаю так:
$querycomm = DB::run() -> query("SELECT * FROM `commstatus` WHERE `commstatus_my`=? ORDER BY `commstatus_time` DESC LIMIT ".$start.", 10;", array($login));
а надо ещё:
$querycomm = DB::run() -> query("SELECT * FROM `commava` WHERE `commava_my`=? ORDER BY `commava_time` DESC LIMIT ".$start.", 10;", array($login));
$querycomm = DB::run() -> query("SELECT * FROM `commphoto` WHERE `commphoto_my`=? ORDER BY `commphoto_time` DESC LIMIT ".$start.", 10;", array($login));

556. Назар (14.10.2012 / 01:46)
Если правильно понял, то надо выбрать данные сразу с 3х таблиц?
Тогда так
SELECT
  `t1`.`название_поля1_с_таблицы_commstatus`,
  ...
  `t1`.`название_поляN_с_таблицы_commstatus`,
  `t2`.`название_поля1_с_таблицы_commava`,
  ...
  `t2`.`название_поляN_с_таблицы_commava`,
  `t3`.`название_поля1_с_таблицы_commphoto`,
  ...
  `t3`.`название_поляN_с_таблицы_commphoto`,
  FROM `commstatus` AS `t1`
  JOIN `commava` AS `t2` 
    ON `t1`.`commstatus_my` = `t2`.`commava_my`
  JOIN `commphoto` AS `t3`
    ON `t1`.`commstatus_my` = `t3`.`commphoto_my`
WHERE `t1`.`commstatus_my` = ?
ORDER BY `t1`.`commstatus_time` DESC
LIMIT ".$start.", 10;"


557. Изнаур (19.10.2012 / 17:24)
SELECT COUNT(*) FROM `prod` WHERE `rans`=1
SELECT COUNT(*) FROM `leng` WHERE `prig`=1
можно ли как то соединить эти запросы?

558. Изнаур (19.10.2012 / 18:16)
чтобы показало общее число данных

559. Петр (19.10.2012 / 19:19)
Iznaur95,
SELECT
(SELECT COUNT(*) FROM `prod` WHERE `rans`=1)
+
(SELECT COUNT(*) FROM `leng` WHERE `prig`=1)
?

560. Изнаур (19.10.2012 / 19:32)
560. Im-ieee, спасибо

561. Вова (26.10.2012 / 16:27)
Как в PDO rotora найти id последной вставленой записи)
юзал
http://php.net/manual/ru/function.mysql-insert-id.php
DblastInsertId();
иль как то по другому?
а то оно не работает

562. Изнаур (26.10.2012 / 16:55)
$is = DB::run()->lastInsertId();
должно работать

563. Вова (26.10.2012 / 17:41)
563: Iznaur95, спс) чтото похожее делал)
И вопрос) где почитать про PDO?

564. Tima94 (26.10.2012 / 17:46)
564. Layt, http://php.net/manual/ru/book.pdo.php

565. AlyOha (19.01.2013 / 12:02)
есть две таблицы
`text` 
`id`
`text`
`book`
`id`
`id_text`
`id_user`
`time`
Так получается
text
id text
1 123
2 223
3 323
id id_text id_user time
1 1 1 1111111111
2 2 1 1111110012
Вывожу то что пользователь уже использует из первой таблицы.
select `b`.*, `t`.* from `book` as `b` left join `text` as `t` on `b`.`id_text`=`t`.`id` where `b`.`id_user`=? order by `b`.`time`
а сделать наоборот, вывести то что он не использует я не смог, помогите.

566. AlyOha (19.01.2013 / 16:36)
Так что мне делать ?^^

567. Петр (20.01.2013 / 08:08)
То есть выбрать все записи из text, чей id не встречается в book?
select * from `text` where id not in (select `id_text` from `book` where `id_user`=1)


568. AlyOha (20.01.2013 / 15:25)
Im-ieee (20 Января 2013 / 08:08)
То есть выбрать все записи из text, чей id не встречается в book?
select * from `text` where id not in (select `id_text` from `book` where `id_user`=1)
Не получилось твоим запросом выполнить то что мне нужно.
Подробнее здесь:

569. Петр (21.01.2013 / 07:53)
Какой именно запрос выполняет неправильно?
select * from texts where text_id not in(select book_text_id from books where book_user_id=2);
- тексты 2 и 3,
select * from texts where text_id not in(select book_text_id from books where book_user_id=1);
- текст 3.

570. AlyOha (21.01.2013 / 09:45)
Im-ieee (21 Января 2013 / 07:53)
Какой именно запрос выполняет неправильно?
select * from texts where text_id not in(select book_text_id from books where book_user_id=2);
- тексты 2 и 3,
select * from texts where text_id not in(select book_text_id from books where book_user_id=1);
- текст 3.
Извиняюсь, сам сначала где то накосячил, сейчас снова использовал, работает, спасибо smile

571. ZipeR (21.01.2013 / 20:05)
571: AlyOha,оба запроса не правильны.

572. AlyOha (22.01.2013 / 13:09)
ZipeR (21 Января 2013 / 20:05)
571: AlyOha,оба запроса не правильны.
То есть? Почему тогда он правильно выводит данные.

573. ZipeR (27.01.2013 / 09:29)
AlyOha (22 Января 2013 / 18:09)
То есть? Почему тогда он правильно выводит данные.
я так понимаю речь про text_id колонку таблицы texts.
Фильтруем по НЕ вхождению в список, а вот подсписок формируется на основании фильтра совершенно другой таблицы books по колонке book_user_id.

И раз book_user_id никак не зависит от text_id то связи никакой нет. У автора может быть только text_id =3, а может text_id = 2 и 3. А может и text_id = 1,2,3,4,5,6,7. Никто ж не знает сколько он писал книжек.

PS
В таблице books называть колонку book_text_id бессмысленно. Там и так все только про books. Писать text_id логичнее.
А в таблице texts колонку text_id переименовать в id.

574. Петр (27.01.2013 / 09:49)
574. ZipeR, ну да, "совершенно другой таблицы", и что? Если у автора будет несколько book_text_id, то в таблице будет несколько записей и подзапрос выберет все из них. Названия колонок, соглашусь, не очень правильные, но запрос рабочий.

575. Александр (15.02.2013 / 13:39)
Вот вопрос есть таблица с юзерами есть поле баллы как запросом у всех пользователей сделать по 3000 баллов UPDATE `таблица`.`user` SET `balls` = '300' WHERE `user`.`id` =??????;

Добавлено через 00:48 сек.
UPDATE `таблица`.`user` SET `balls` = '3000' WHERE `user`.`id` =1-350; не канает . просто я чайник в этих делах

576. Изнаур (15.02.2013 / 13:49)
UPDATE `таблица`.`user` SET `balls` = '3000'
если всем юзерам сделать

577. Александр (15.02.2013 / 13:50)
577. Iznaur95,о спасибо ))))

578. AlyOha (21.02.2013 / 00:49)
Есть несколько записей БД, как мне разом изменить во всех них данные одной ячейки.
Например:
id text
1 one
2 two
3 tree
Мне нужно изменить на
<? null ?>
text второй и третьей ячейки.
Возможна реализация одним запросом?

579. Кевин Митник (21.02.2013 / 01:12)
UPDATE имя таблицы SET имя второй ячейки = NULL, имя третьей ячейки = NULL

580. AlyOha (21.02.2013 / 01:35)
Ячейки не с одной записи.

Добавлено через 02:36 сек.
Скорее всего я неправильно поставил вопрос, есть у меня несколько записей в БД:
id text
_____________________
1 one
2 two
3 tree
Мне нужно text второй и третьей записи изменить на пустое значение, это на каждую запись отдельный запрос делать придется или есть вариант проще?

581. Apeccc (21.02.2013 / 03:41)
UPDATE table SET text = '' WHERE id = '2' and id = '3'

582. ZaRiN (21.02.2013 / 04:21)
582. Ужасный У, твой запрос неправильный, условие никогда не выполнится

581. AlyOha,
UPDATE `tbl` SET `text`='' WHERE `id` IN (2,3)


583. Кевин Митник (21.02.2013 / 04:40)
Кстати, а что быстрее будет
UPDATE `tbl` SET `text`='' WHERE `id` IN (2,3)
или
UPDATE `tbl` SET `text`='' WHERE `id` NOT IN (1)
за условия что там 3 записи

584. Петр (21.02.2013 / 05:13)
584. Кевин Митник_HHTeam, на мой взгляд, первый код однозначно лучше, так как сразу видно, какие записи будут изменены.

585. ZaRiN (21.02.2013 / 05:15)
584. Кевин Митник_HHTeam, при 3х записях вообще не стоит о таком заморачиваться)

586. Жека (13.03.2013 / 13:01)
ребята, выручайте пжл. Есть
таблица
CREATE TABLE `prodavec` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(100) NOT NULL,
`otdel` varchar(10) NOT NULL,
`men` varchar(32) default NULL,
`summa` varchar(10) default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;


в ней есть 2 значения, тоесть заполнены 2 продавца.

Так вот, как мне возможно посчитать общую сумму всех продаж из ячейки summa

587. ZipeR (13.03.2013 / 15:51)
587: exelente, Если правильно понял. Делается с помощью оператора SUM
select sum(summa) as `men` from `prodavec`


588. Жека (13.03.2013 / 18:55)
588. ZipeR, спасибо, выручил))

589. Ден (23.03.2013 / 00:58)
Подскажите пожалуйста как сделать запрос к таблице к примеру в гостевой что бы человек мог добавлять какую ни будь запись в чёрный список.
Получается есть две таблицы gb и blacklist (в таблицу blacklist будет записыватся логин юзера и id сообщения из таблицы gb)
Надеюсь понятно обьяснил

590. ZipeR (23.03.2013 / 05:18)
590: Sich, у тебя скрипт движка?

591. Ден (23.03.2013 / 08:02)
591. ZipeR, да, это на ротор

592. Жека (26.03.2013 / 10:32)
вопрос вот в MySQL есть mysql_result() а в MySQLi как она идет ?

593. Петр (26.03.2013 / 12:13)
593. CoMMoN, там ее похоже нет. Пиши mysqli_fetch_row($query)[$index], например;

594. Жека (26.03.2013 / 16:30)
А более конкретнее можно?

595. Ден (27.03.2013 / 22:58)
Подскажите пожалуйста запрос mysql
К примеру в гостевой надо сделать что бы юзер мог добавлять определённую запись в чёрный список
Длаю такой запрос:
SELECT * FROM gb, gbtrash WHERE gb.gb_id = gbtrash.gbtrash_gid
Но показывает только те записи которые уже в чёрном списке, а надо на оборот
Как бы щас gb.gb_id РАВНО gbtrash.gbtrash_gid, а надо сделать что бы выводились gb.gb_id НЕ РАВНО gbtrash.gbtrash_gid

596. Петр (28.03.2013 / 06:22)
 select * from gb left join gbtrash on gb.gb_id=gbtrash.gbtrash_gid where gb.gb_id is null 

Добавлено через 03:10 сек.
595. CoMMoN, mysqli_fetch_row(mysqli_query('select count(*) from table'))[0]; тоже самое на mysql - mysql_result(mysql_query('select count(*) from table'), 0);

597. Ден (29.03.2013 / 22:57)
Созрел вопрос по поиску в msql. К примеру Имя и фамилию я ищу так:
query("SELECT `users_login` FROM `users` WHERE `users_name` LIKE ? AND `users_fam` LIKE ? ", array('%' . $_POST['name'] . '%', '%' . $_POST['fam'] . '%')););
А теперь вопрос, как мне допустим сделать поиск по вораст типа от 18 до 20 лет

598. iNeeXT (29.03.2013 / 23:23)
Sich (29 Марта 2013 / 20:57)
Созрел вопрос по поиску в msql. К примеру Имя и фамилию я ищу так:
query("SELECT `users_login` FROM `users` WHERE `users_name` LIKE ? AND `users_fam` LIKE ? ", array('%' . $_POST['name'] . '%', '%' . $_POST['fam'] . '%')););
А теперь вопрос, как мне допустим сделать поиск по вораст типа от 18 до 20 лет

<?php
query("SELECT `users_login` FROM `users` WHERE `users_name` LIKE ? AND `users_fam` LIKE ? AND `age` > ? AND `age` < ? ", array('%' . $_POST['name'] . '%', '%' . $_POST['fam'] . '%', 18, 20)););


599. Ден (01.04.2013 / 12:41)
Помогите сделать массовую рассылку привата
Переменная с никами выглядит так $spisok = 'login1, login2, login3';
query("INSERT INTO `inbox` (`inbox_user`, `inbox_text`) VALUES (?, ?);", array($spisok, $text));

600. Ден (02.04.2013 / 00:37)
Это вообще реально?

601. Tiker (02.04.2013 / 01:19)
Sich (1 Апреля 2013 / 12:41)
Помогите сделать массовую рассылку привата
Переменная с никами выглядит так $spisok = 'login1, login2, login3';
query("INSERT INTO `inbox` (`inbox_user`, `inbox_text`) VALUES (?, ?);", array($spisok, $text));
$spisok = 'login1, login2, login3';
$login = explode(",", $spisok);
$text ='Бом бом бом';
for($i=0;$i<=count($login); $i++) {
query("INSERT INTO `inbox` (`inbox_user`, `inbox_text`) VALUES (?, ?);", array($login[$i], $text));
}
Должно помочь.

602. Pachenko (12.04.2013 / 17:12)
извините может не в той теме!
вопрос как в базе можно пользователю дать должность?
и еще почему то через сайт не дается и не идет статистика кто сколько написал на форуме!пишешь сообщение а в статистике не прибавляется жвижок джон!
заранее огромное спасибо

603. Pachenko (12.04.2013 / 18:23)
подскажите пожалуйста

604. Изнаур (12.04.2013 / 18:42)
таблица users поле rights 9 это SV 8 вроде Adm и т.д

605. bretill (16.04.2013 / 01:29)
Есть таблица things, в ней более 50 записей, как вывести только последнюю?

606. Петр (16.04.2013 / 16:41)
SELECT * FROM things ORDER BY id DESC LIMIT 1

607. bretill (16.04.2013 / 19:11)
607. Im-ieee, спс

608. Максим (26.04.2013 / 00:11)
У меня запрос:
$sql=mysql_query("SELECT * FROM messages WHERE touser='$U_id' ORDER BY id DESC LIMIT 0,5",$db);
$messages=mysql_fetch_array($sql);
У меня таблица сообщений, вывожу самые новые сверху по цикле (в html коде) по 5 сообщений на страницу. Но почему то вывод начинается НЕ с новых сообщений (по id).
Как сделать чтобы новые сообщения выводились по 5 штук на страницу?

609. Aid78 (26.04.2013 / 00:18)
Посоны помогите, надеюсь туда) Всегда было интересно каким образом строятся запросы на вывод инфы по такому условию к примеру: выводить допустим опр. записи из таблицы моих друзей. (т.е. таблица где хранятся друзья и другая таблица типа с нужными записями) Хотя бы в каком направлении двигаться, как запрос составлять? Или мож кто пример накидает"

610. JustZero (26.04.2013 / 00:31)
SELECT таблица_с_записями.* FROM таблица_с_друзьями LEFT JOIN таблица_с_записями ON таблица_с_друзьями.id=таблица_с_записями.id WHERE блаблабла ORDER BY бебебе


611. Максим (26.04.2013 / 15:23)
Допустим у меня есть таблица, в ячейке test (DATETIME) есть какое-то время и дата. Как на php проверить что с того времени прошло например больше 2 часа?
if ($table['test'] больше 2 часа){
действие
}
else
{
действие
}

612. Eyler (26.04.2013 / 15:56)
$time = time(); // наше время
$test_time = - тут извлекаем запись из БД

$status = $time - $test_time; // нам нужна разница между нашим временем и тем что в БД

if((int)$status > 2){ echo "Больше";}else{ echo "Меньше";}


613. Erika (25.05.2013 / 12:07)
612. unimax,
<?php 
if($table['test'] < time() + 60 * 60 * 2)
 echo 'Перекур. Прошло 2 часа.'; 
else 
 echo 'Таки рановато'; 


614. Aid78 (04.07.2013 / 23:44)
Даж не знаю как сформулировать... Каким образом можно составить сложный запрос, если из одной таблицы надо вывести записи, при этом используя разные условия после where? Грубо говоря надо что-то вроде "where если так (всякие там поля, равенства, условия, and и т.д.) И если так (то же) И если эдак (то же)" и чтоб учитывая три разных комбинации условий выводились записи. И в них могут использоваться одни и те же поля таблички с разными условиями. Хотя бы в каком направлении искать решение?

615. Петр (05.07.2013 / 10:45)
615. Aid78, не очень понятно, чем тебя не устраивает обычный or.
select * from table where (условие1) or (условие2)


616. Aid78 (05.07.2013 / 14:39)
616. Im-ieee, оно то подходит, но ровно до того момента как я не добавлю туда так скажем третье условие, а оно с LEFT JOIN и выходит черти что, может я конечно что-то не так делаю.

то есть запрос сложный и в одном моменте необходим лефт джоин

617. Петр (05.07.2013 / 16:00)
617. Aid78, left join по сути то же самое, что и where, но при этом выбираются дополнительные записи. Может быть, ты приведешь пример запроса?

618. Aid78 (05.07.2013 / 19:05)
618. Im-ieee, грубо говоря надо совместить эти два запроса в один:

SELECT * FROM `tb1` LEFT JOIN `tb2` ON `tb1`.`bla`=`tb2`.`bla2` WHERE `tb2`.`a`=1 AND `tb1`.`a`=1

SELECT * FROM `tb1` WHERE (`a`=1 AND `b`=2) OR (`a`=1 AND `c`=1)

не суть важно что и зачем, важно как поместить еще один OR при этом сохранив лефт джоин, если подставляю их просто, то запрос много раз выводит одни и те же результаты, по отдельности же эти два запроса такого типа работают норм.

619. Петр (06.07.2013 / 15:02)
619. Aid78, вряд ли получится объединить, чтобы не было "повторов", поскольку в одном запросе выборка из двух таблиц, а в другом из одной.

620. Момору (08.07.2013 / 02:58)
619. Aid78, скинь таблицы и подробно опиши что, именно тебе надо. После, напиши мне в приват.

621. Максим (13.07.2013 / 22:27)
Подскажите пожалуйста что может быть не так в моторе 20 с форумом не создаются разделы, создал БД и подключил.

622. Sy-Lar (24.08.2013 / 15:12)
привет всем.
мне нужно поставить вот этот код $set['test1'] сюда(где написана здесь)
mysql_query("UPDATE `user` SET `test` = '".($user['test']+здесь)."' WHERE `id` = '$user[id]' LIMIT 1");
но выдает ошибку.
или как то по другому нужно вставить

623. Петр (24.08.2013 / 17:48)
Sy-Lar
но выдает ошибку.
Какую?

624. varloc (08.09.2013 / 20:03)
Скажите пожалуйста,что будет со вторым потоком, который параллельно делает запрос к бд, если на таблицу mysql поставить блокировку LOCK TABLES WRITE ? т.е. будет ли он дожидаться разблокировки или сценарий продолжится?

625. AlyOha (15.08.2014 / 06:09)
Подскажите с запросом и правильно ли я его понимаю.
запрашиваю id друзей select `friends`.`adopted`
из таблицы from `friends`, так же обращаюсь к таблице left join `accounts` чтобы on (проверить id друзей на существование `accounts`.`id`=`friends`.`adopted`(это работает), а так же хочу ограничить их тем что бы выбирались только те что имеют значение 1 или любое другое and `accounts`.`active`>'0'(а это условие не работает))
А так же если я хочу сортировать по `id`, появляется ошибка. order by `id` должен же использовать `id` из таблицы `friends`

626. Дмитрий (18.11.2014 / 09:07)
Лимит на заливку бд на джино 70мб, база из восьми таблиц, одна таблица с текстами весит 114 мб. Как ее залить? Файл превышает допустимый размер.дамп таблиц скрипта mch lib

627. Dmitry Kokorin (18.11.2014 / 09:10)
Разбей файл на три части в твоем случае

628. Антон (18.11.2014 / 10:04)
626. 888dimon, ппц а запаковать её что нельзя?

629. Aid78 (04.12.2014 / 12:03)
Подскажите пожалуйста как реализовать следующий запрос.
Есть допустим таблица `name`, в ней поле `test`, как сделать выборку по этому полю, ну допустим мне надо записи в которых это поле равно 1, 4, 5, 8 и вывести их надо все которые совпадают перечисленным цифрам.

$str = '1,4,5,8';
SELECT * FROM `name` WHERE `test` ???????

630. ramzes (04.12.2014 / 13:22)
WHERE test IN('1', '4', '5', '8')
Это?

631. Aid78 (04.12.2014 / 14:07)
630. ramzes, точно, спасибо)

632. Dmitry Kokorin (11.01.2015 / 21:36)
Задача:
Вывести 5 случайных записей из таблицы table_name у которых id=1
SELECT * FROM `table` WHERE `id`=1 ORDER BY RAND() LIMIT 5 не вариант, тк в таблице 10к записей , а скорость не хотелось бы терять

633. ramzes (11.01.2015 / 22:31)
rand для 10к записей - ни что. не передергивайте, это вполне себе скромный обьем таблицы

634. Dmitry Kokorin (11.01.2015 / 22:39)
633. ramzes, 0.00004
А если будет 100к или лям? 0.0004? 0.004?

635. Алексей (05.02.2015 / 14:16)
Возникла проблемка с бд, mysql матерится : Table 'game.locations' doesn't exist
таблица то есть такая, вон на скрине видно.
$db_host = 'localhost';
$db_name = 'game';
$db_username = 'root';
$db_password = '';
$db_table_to_show = 'locations';
$connect_to_db = mysql_connect($db_host, $db_username, $db_password) or die("Could not connect: " . mysql_error());
mysql_select_db($db_name, $connect_to_db) or die("Could not select DB: " . mysql_error());
$qr_result = mysql_query("SELECT * FROM " .$db_table_to_show) or die(mysql_error());
while($data = mysql_fetch_array($qr_result)){ 
echo $data['loc_id'];
echo $data['id'];
echo $data['data'];
}


636. Алексей (05.02.2015 / 14:36)
Проблема решена.
удалил бд гейм и заново создал, все нормализовалось.

637. ramzes (06.02.2015 / 00:04)
DimmoS (11 Января 2015 / 22:39)
633. ramzes, 0.00004
А если будет 100к или лям? 0.0004? 0.004?
я четко вижу в твоем посте 10к, ни 100к, ни 1кк, так же, я ясно выразился в своем посте, указав ту же цифру. 10к.
а если будет 1кк, то логику надо будет менять, но к твоему вопросу, и моему ответу это уже не относится

638. Александр (06.02.2015 / 12:09)
в чем может быть ошибка

Добавлено через 01:53 сек.
вот файл ошибка возникла после переноса

639. Алексей (13.02.2015 / 22:22)
Подскажите мою ошибку в запросе.
Уже не первый день над ним колдую, в переменной j передается user (это не столбец, а значение)
mysql_query("UPDATE `users` SET `title` = '$uptitle', `skills` = '$upskills', `loc` = '$uploc', `ghost` = '$upghost', `crim` = '$upcrim', `time` = '$uptime', `equip` = '".$upequip."', `items` = '".$upitems."', `magic` = '".$upmagic."', `msg` = '".$upmsg."' WHERE `login` =".$j);
Пишет Unknown column 'user' in 'where clause'
'".$."' так отправляются в базу массивы обработанные serialize (иначе не записываются.)

640. Dmitry Kokorin (13.02.2015 / 22:41)
639. XwiruS, синтаксис :
<?php
$mysqli->query("UPDATE `table` SET `stolbec` = '".$znachenie."'");
соответственно и копать нужно
<?php 
if($mysqli->query("запрос")->num_rows) echo 'пользователя не существует';


641. ramzes (13.02.2015 / 23:23)
WHERE `login` = ".$j.";");
если login не int то
WHERE `login` = '".$j."';");

642. Алексей (13.02.2015 / 23:27)
640. DimmoS, Нет, если бы пользователя не существовало бы, то и обновлять в бд ему нечего было бы.
Он существует инфа 100%.
столбцы что указаны в моем запросе, существуют все, я уже как только не вписывал переменные в sql запрос.
Не пойму, в чем причина может быть.

Добавлено через 00:32 сек.
641. ramzes, Спс, сейчас проверю. Об этом я и не догадывался.

Добавлено через 07:17 сек.
Рамзес благодарю, помог твой совет)

643. Dmitry Kokorin (14.02.2015 / 06:12)
641. ramzes, как-бы я то же самое написал `stolbec` = '".$znachenie."'

644. Dmitry Kokorin (19.02.2015 / 09:19)
Делаю запрос
<?php
"SELECT * FROM `mess` WHERE `to_send`=1 and `to_del`=0 and `from_send`=2 or `from_send`=1 and `from_del`=0 and `to_send`=2 ORDER BY `id` DESC LIMIT 0,10"

В таблице есть две записи
id=1 to_send=1 to_del=0 from_send=2 from_del=0
id=2 to_send=2 to_del=0 from_send=1 from_del=0

Через var_dump выдает false
В чем может быть косяк?

645. ramzes (19.02.2015 / 09:57)
И и ИЛИ нельзя в одном условии использовать, это противоречит логике.
бери в скобки

646. Dmitry Kokorin (19.02.2015 / 10:04)
645. ramzes, пока to_del и from_del не добавил было все норм
Ща попробую

Добавлено через 05:02 сек.
string(168) " SELECT * FROM `message` WHERE (`to_send`=1 and `to_del`=0 and `from_send`=2) or (`from_send`=1 and `from_del`=0 and `to_send`=2) ORDER BY `id` DESC LIMIT 0, 10" object(mysqli_result)#4 (0) { }

Добавлено через 05:50 сек.
Всеравно false

647. ramzes (19.02.2015 / 10:30)
$mysql-error выведи, что он скажет?

648. Dmitry Kokorin (19.02.2015 / 10:36)
647. ramzes, p.s: постоянно без скобок делаю и все норм
Щас error выведу

649. Dmitry Kokorin (19.02.2015 / 10:51)
$mysqli->error ничего не выводит

650. ramzes (19.02.2015 / 11:32)
До всяких fetch_assoc() ошибку выводишь? сразу после квери?

651. николай (19.02.2015 / 11:50)
как подключится к бд с другого сервера? при создании бд ставил галочку на доступ.

652. Александр (19.02.2015 / 11:52)
651. bygoodvin, вместо localhost использовать основной домен нужного сервера.

653. Dmitry Kokorin (19.02.2015 / 12:01)
650. ramzes,
<?php
$result = $mysqli->query(...);
if(!$result){ echo $mysqli->error;
}else{
$dd = $result->fetch_object();


654. Dmitry Kokorin (19.02.2015 / 12:11)
Если делать запрос без to_del и from_del то всё ровно! Стоит только добавить и result = 0

Мож логику как-то по-другому сделать?
Короче таба:
<?php
id | to_send | to_new | to_del | from_send | from_read | from_del | text | time
Стиль переписки как вк или одноклассники

Добавлено через 05:19 сек.
Соответственно нужен запрос:
Выбрать всё в таблице мессаги с условием( отправитель 1 - удалено мной 0 - получатель 2) или (отправитель 2 - удалено им 0 - получатель 1) ордер тайм лимит $page, 10
Как-то так

655. николай (19.02.2015 / 12:28)
652. klesh, не соединяет. пробовал

656. Александр (19.02.2015 / 13:35)
655. bygoodvin, если это не выделенный сервер то напиши в поддержку какой IP или домен указывать. Может быть домен хостинга или server.хостинг.ру и т.д.

657. ramzes (19.02.2015 / 16:46)
654. DimmoS, какие типы полей ту и фром дел? не енум случайно?

658. Dmitry Kokorin (19.02.2015 / 17:23)
657. ramzes, случайно да

Добавлено через 02:52 сек.
На int(1) '0','1' сменить? Ща попробую

659. Dmitry Kokorin (19.02.2015 / 17:39)
657. ramzes, о! С int все ровно!
Плюс не могу поставить, уже ставил, но спасибо!

660. ramzes (19.02.2015 / 17:47)
Просто при сравнение с полями типа енум, значение бери в кавычки, как строковое from_del = '1'

661. Dmitry Kokorin (19.02.2015 / 21:00)
660. ramzes, да я на int поменял уже, в базу лень лезть smile

Добавлено через 00:29 сек.
Но за совет спасибо

662. николай (20.02.2015 / 14:32)
656. klesh, это как раз дедик.

663. Dmitry Kokorin (28.02.2015 / 17:51)
"UPDATE `users` SET foreach($row as $k => $v){$k."=".$v} WHERE `id`='".$id."'");
Возможно ли что-то подобное реализовать? Если к примеру нужно обновить порядка 50 полей..

664. Dmitry Kokorin (28.02.2015 / 19:31)
664. ZiGR, тока как ни пробовал выдает ошибку синтаксиса, одну исправляешь вторая вылазит

Добавлено через 01:33 сек.
$k."=".$v
На этот кусок ругается

Добавлено через 04:59 сек.
В массиве ключи вида
array("key"=>$value);


665. ramzes (28.02.2015 / 20:32)
'".$id."' id как я понимаю автоинкримент. значит инт, убрать одиночные кавычки.
foreach($row as $k => $v){$k."=".$v}
вынеси из запроса во вне, собери строку
потом уже ее в запрос вставляй.
у тебя в ней нет запятых

666. Dmitry Kokorin (28.02.2015 / 23:09)
666. ramzes, в массиве после $value."," запятые

Добавлено через 02:14 сек.
array("key"=>$value.",")


667. Алексей (07.03.2015 / 11:14)
При запуске скрипта столкнулся с проблемой 5.5 и mysql.
Начал приводить скрипт в порядок используя PDO.
$res = $pdo->query('SELECT * FROM cat');
while ($categ = $res->fetch(PDO::FETCH_NUM)){echo'$categ[0]';}
виле мне выдает 1 результат, хотя должно быть 7 (7 строк в указанной таблице).
Кто может сказать почему?
__________________________________________
Вопрос исчерпан, я внутри виле использовал переменную $res для нового запроса к бд

668. Андрей (11.03.2015 / 21:52)
$total = DB::run() -> querySingle("SELECT count(*) FROM `users`;");
Считает сколько записей в таблице. Как сделать подсчет определенного поля с имеющейся в ней записью.

$total = DB::run() -> querySingle("SELECT count(*) FROM `users` WHERE LOWER(`users_email`);");
Показывает малое количество записей, хотя на самом деле их гораздо больше. Не считает только поля с записями E-Mail адресов, поля с содержанием цифр - все нормально.

669. Андрей (11.03.2015 / 22:05)
Подскажите пожалуйста.. Может есть выход?

670. Изнаур (11.03.2015 / 22:43)
$total = DB::run() -> querySingle("SELECT count(`users_email`) FROM `users` WHERE `users_email` IS NOT NULL");
не работает?

671. Андрей (12.03.2015 / 16:29)
671. Iznaur95, нет так считает все поля в таблице.

672. Андрей (12.03.2015 / 18:14)
$total = DB::run() -> querySingle("SELECT count(*) FROM `users` WHERE LOWER(`users_email`) REGEXP '^[a-z0-9]';");
Так решил проблему.

673. Андрей (12.03.2015 / 19:08)
Тут дело в чем было - добавил регистрацию через социальные сети, что бы удобней было просматривать пользователей, решил сделать их сортировку.

674. Богдан (12.03.2015 / 21:19)
674. Правильно понял что тебе нужно кол-во записей с не пустым полем users_email? тогда достаточно
$total = DB::run() -> querySingle("SELECT count(`users_email`) FROM `users` WHERE `users_email` IS NOT NULL AND `users_email`<>''");


675. Андрей (12.03.2015 / 22:17)
675. G_A_N_J_A_R, Спасибо! Так тоже работает smile
Можно еще пояснение в чем отличие от моего примера?
$total = DB::run() -> querySingle("SELECT count(*) FROM `users` WHERE LOWER(`users_email`) REGEXP '^[a-z0-9]';");


676. Богдан (13.03.2015 / 11:11)
676. Незшт. Тем, что быстрее будет и меньше нагрузка на БД. В твоем же случае будет выполнятся сначала функция LOWER а потом регулярка для каждого поля.

677. Андрей (13.03.2015 / 11:25)
677. G_A_N_J_A_R, Отлично, спасибо! Меньше нагрузки - это хорошо )))

678. Алексей (14.09.2015 / 11:56)
Ребята подскажите что за ошибка! На денвере все норм на хосте выдает вот это
Strict Standards: Resource ID#18 used as offset, casting to integer (18)

679. Dmitry Kokorin (14.09.2015 / 20:26)
679. Nasgul, если у тебя что-то типа
<?php
$array[$id] = mysql_fetch_array($id);
return $array[$id];
То попробуй так
<?php
return mysql_fetch_array($id)


680. Dmitry Kokorin (06.02.2016 / 09:48)
В общем есть запрос списка контактов
SELECT `id` FROM `users` WHERE
 `id` IN (SELECT `id_from` FROM `messages` WHERE
     `id_to` = ".$id." AND `del_to` = 0)
 OR `id` IN (SELECT `id_to` FROM `messages` WHERE `id_from` = ".$id." AND `del_from` = 0)
Нужно сделать вывод с сортировкой по последним сообщениям, пробовал так
SELECT `id` FROM `users` WHERE
 `id` IN (SELECT `id_from` FROM `messages` WHERE `id_to` = ".$id." AND `del_to` = 0 ORDER BY `id` DESC)
     OR `id` IN (SELECT `id_to` FROM `messages` WHERE `id_from` = ".$id." AND `del_from` =  0 ORDER BY `id` DESC)
не помогает, кто сообразит в чем загвоздка?

681. ramzes (06.02.2016 / 10:59)
Left join используй, выгребай сообщения и джоином их авторов

682. Dmitry Kokorin (06.02.2016 / 11:35)
682. ramzes, с ёинами пробовал, но у меня с ними криворуко пока получается, я их еще не вкурил))

683. Dmitry Kokorin (06.02.2016 / 12:29)
в общем попробовал с LEFT JOIN
$query = 'SELECT `u`.`id`,`u`.`name`,`u`.`family`,`u`.`avatar`,`u`.`online`, `m`.`id_to`,`m`.`id_from` 
FROM `users` `u`
LEFT JOIN `messages` `m` ON 
`m`.`id_from` = `u`.`id` WHERE `m`.`id_to` = '.$id.' 
OR 
`m`.`id_to` = `u`.`id` WHERE `m`.`id_from` = '.$id.'';
ругается На синтакс
syntax to use near 'WHERE `m`.`id_from` = 
где я накосячил?

684. Dmitry Kokorin (06.02.2016 / 19:44)
$query = 'SELECT DISTINCT `u`.`id`, `u`.`name`,`u`.`family`,`u`.`avatar`,`u`.`online` 
FROM `users` `u`
RIGHT JOIN `messages` `m` ON 
`m`.`id_from` = `u`.`id` OR `m`.`id_to` = `u`.`id` 
WHERE 
`m`.`id_to` = '.$id.' AND `m`.`id_from` = `u`.`id` 
OR 
`m`.`id_from` = '.$id.' AND `m`.`id_to` = `u`.`id` 
GROUP BY `u`.`id` ORDER BY `m`.`time` DESC';
Вот так выводит всё, но опять без сортировки, а нужна сортировка по последним сообщениям с группировкой по id юзера

685. Dmitry Kokorin (06.02.2016 / 22:42)
справился без join обычным подзапросом с union all

URL: https://visavi.net/topics/1212