29.08.2014 / 12:31 | |
Ксакеп Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| Чем плох данный запрос? public function getCurriculum($course_id)
{
$course_id = (int) $course_id;
if($course_id > 0)
{
$q = "SELECT `curriculum`.*, `subjects`.*, `studygroups`.*, `specializations`.*, `teachers`.*, `curriculum`.`ID` AS `CID` "
. "FROM curriculum "
. "RIGHT JOIN `subjects` ON `subjects`.`ID` = `SubjectID` "
. "RIGHT JOIN `teachers` ON `teachers`.`ID` = `TeacherID` "
. "RIGHT JOIN `studygroups` ON `studygroups`.`ID` = `StudyGroupID` "
. "RIGHT JOIN `specializations` ON `specializations`.`ID` = `studygroups`.`SpecializationID` "
. "WHERE `CourseNum` = ".$course_id." ORDER BY `GroupNum`";
return $this->DB->Query($q);
}
else
return false;
}
Например, мне кажется, что JOIN'ы довольно трудоёмка для базы. Изменено Ксакеп (29.08 / 12:32) (всего 1 раз) |
29.08.2014 / 14:01 | |
web_demon Супервизор Сейчас: Offline
Регистрация: 11.01.2010
| Ксакеп, Не очень то, трудоемок поикс по базе, который выполняется в каждой "приджоеной" таблице.
Но с другой стороны, джоин лучше чем куча запросов в цикле. А в приведенном тобой примере плох не запрос, а структура базы.
|
31.08.2014 / 17:16 | |
Koenig Модератор форума Сейчас: Offline
Имя: Дмитрий Откуда: Калининград(Koenigsberg) Регистрация: 23.01.2011
| Ксакеп, сразу бы написал select * а так много букв получается
__________________
Магистр Мёда |
31.08.2014 / 21:16 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Koenig, ты что, это ж Ксакеп, если хоть одно поле из 20 таблиц не будет нужно, то он перечислит все поля этих таблиц кроме ненужного. Ведь нельзя допустить, чтобы mysql переусердствовал, ни-ни!
__________________
let live |
31.08.2014 / 22:04 | |
Ксакеп Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| aNNiMON, дядь, ну ты загнул Это не мой код, я лишь ревью делал. |
17.09.2014 / 20:23 | |
progerokbasic Пользователь Сейчас: Offline
Имя: kirik Регистрация: 11.08.2013
| Здравствуйте снова На это раз вопрос не менее нубский. Ругается на mysql запрос, а именно на создание строки в бд... Кто сможет помочь? <?php
echo '<meta charset="utf-8">';
session_start();
$_SESSION['tms']=$_POST['mst'];
$tms=$_SESSION['tms'];
$fr=$_SESSION['nick'];
$to=$_SESSION['onick'];
mysql_connect("mysql.hostinger.com.ua", "u595243217_hstn", "pass") or die(mysql_error());
mysql_select_db("u595243217_frlt") or die(mysql_error());
mysql_query( "INSERT INTO pos (fr,to,msg) values ('".$fr."','".$to."','".$tms."') ") or die(mysql_error());
mysql_close();
echo '<b>Успешно отправлено!</b><br><a href="pl.php">Назад</a>';
?>
Изменено Koenig (17.09 / 20:34) (всего 1 раз) |
17.09.2014 / 20:33 | |
Koenig Модератор форума Сейчас: Offline
Имя: Дмитрий Откуда: Калининград(Koenigsberg) Регистрация: 23.01.2011
| progerokbasic, мст тмс , может тут где опечатка, а так попробуй перед запросом посмотреть что в переменных содержится, ну и мускул ошибку вывести
__________________
Магистр Мёда |
17.09.2014 / 20:46 | |
progerokbasic Пользователь Сейчас: Offline
Имя: kirik Регистрация: 11.08.2013
| 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 Пользователь Сейчас: Offline
Имя: kirik Регистрация: 11.08.2013
| Все. решил проблему, видимо, слово 'to' является зарезервированным в мускуле, вот и кричало. Заменил название и заработало.
|