Вниз  MySQL и мелкие вопросы
- 29.08.2014 / 12:31
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
Чем плох данный запрос?
  1. public function getCurriculum($course_id)
  2.     {
  3.         $course_id = (int) $course_id;
  4.         if($course_id > 0)
  5.         {
  6.             $q = "SELECT `curriculum`.*, `subjects`.*, `studygroups`.*, `specializations`.*, `teachers`.*, `curriculum`.`ID` AS `CID` "
  7.             . "FROM curriculum "
  8.             . "RIGHT JOIN `subjects` ON `subjects`.`ID` = `SubjectID` "
  9.             . "RIGHT JOIN `teachers` ON `teachers`.`ID` = `TeacherID` "
  10.             . "RIGHT JOIN `studygroups` ON `studygroups`.`ID` = `StudyGroupID` "
  11.             . "RIGHT JOIN `specializations` ON `specializations`.`ID` = `studygroups`.`SpecializationID` "
  12.             . "WHERE `CourseNum` = ".$course_id." ORDER BY `GroupNum`";
  13.             return $this->DB->Query($q);
  14.         }
  15.         else
  16.             return false;
  17.     }    
Например, мне кажется, что JOIN'ы довольно трудоёмка для базы.

Изменено Ксакеп (29.08 / 12:32) (всего 1 раз)
- 29.08.2014 / 14:01
web_demon
  Супервизор

web_demon 
Сейчас: Offline
Ксакеп, Не очень то, трудоемок поикс по базе, который выполняется в каждой "приджоеной" таблице.

Но с другой стороны, джоин лучше чем куча запросов в цикле. А в приведенном тобой примере плох не запрос, а структура базы.
- 31.08.2014 / 17:16
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
Ксакеп, сразу бы написал
select *
а так много букв получается
__________________
 Магистр Мёда
- 31.08.2014 / 21:16
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Koenig, ты что, это ж Ксакеп, если хоть одно поле из 20 таблиц не будет нужно, то он перечислит все поля этих таблиц кроме ненужного. Ведь нельзя допустить, чтобы mysql переусердствовал, ни-ни!
__________________
 let live
- 31.08.2014 / 22:04
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
aNNiMON, дядь, ну ты загнул :-D

Это не мой код, я лишь ревью делал.
- 17.09.2014 / 20:23
progerokbasic
  Пользователь

progerokbasic 
Сейчас: Offline
Здравствуйте снова :) На это раз вопрос не менее нубский. Ругается на mysql запрос, а именно на создание строки в бд... Кто сможет помочь?
  1. <?php
  2. echo '<meta charset="utf-8">';
  3. session_start();
  4. $_SESSION['tms']=$_POST['mst'];
  5. $tms=$_SESSION['tms'];
  6. $fr=$_SESSION['nick'];
  7. $to=$_SESSION['onick'];
  8. mysql_connect("mysql.hostinger.com.ua", "u595243217_hstn", "pass") or die(mysql_error());
  9. mysql_select_db("u595243217_frlt") or die(mysql_error());
  10. mysql_query( "INSERT INTO pos (fr,to,msg) values ('".$fr."','".$to."','".$tms."') ") or die(mysql_error());
  11. mysql_close();
  12. echo '<b>Успешно отправлено!</b><br><a href="pl.php">Назад</a>';
  13. ?>


Изменено Koenig (17.09 / 20:34) (всего 1 раз)
- 17.09.2014 / 20:33
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
progerokbasic, мст тмс , может тут где опечатка, а так попробуй перед запросом посмотреть что в переменных содержится, ну и мускул ошибку вывести
__________________
 Магистр Мёда
- 17.09.2014 / 20:46
progerokbasic
  Пользователь

progerokbasic 
Сейчас: Offline
Koenig, проверял кучу раз.
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,msg) values ('никотправившего','никполучателя','сообщение')' at line 1
- 17.09.2014 / 22:38
progerokbasic
  Пользователь

progerokbasic 
Сейчас: Offline
Все. решил проблему, видимо, слово 'to' является зарезервированным в мускуле, вот и кричало. Заменил название и заработало.
- 18.09.2014 / 14:09
web_demon
  Супервизор

web_demon 
Сейчас: Offline
progerokbasic, http://annimon.com/article/479
Пункт 5.
Наверх  Всего сообщений: 750
Фильтровать сообщения
Поиск по теме
Файлы топика (22)