|
|
|
| Здравствуйте. Можно ли обойтись без вложенного запроса в цикле?
<?php
$query = "SELECT f.*,
u.id_post
FROM {$gl_db_prefix}faq as f, {$gl_db_prefix}users as u
WHERE f.answer_id_user = u.id_user";
$results = db_select($query);
if(is_array($results))
{
$cnt = count($results);
for($i = 0; $i < $cnt; $i++)
{
$id_post = $results[$i]['id_post'];
$answer_post = stripslashes(db_select_one("SELECT title FROM {$gl_db_prefix}posts WHERE id_post = {$id_post}"));
}
}
?>
|
| |
|
|
|
|
|
|
|
для: antf
(19.11.2014 в 18:28)
| | >Можно ли обойтись без вложенного запроса в цикле?
А запрос в цикле разве "вложенный"? Вот его можно перенести в первый запрос, или тот же JOIN.
А почему stripslashes() при извлечении данных а не при записи? | |
|
|
|
|
|
|
|
для: antf
(19.11.2014 в 18:28)
| |
<?php
$query =
"SELECT f.*,
u.id_post,
p.title,
FROM {$gl_db_prefix}faq as f
JOIN {$gl_db_prefix}users as u ON f.answer_id_user = u.id_user
LEFT JOIN {$gl_db_prefix}posts as p ON p.id_post = u.id_post
";
$results = db_select($query);
if(is_array($results))
{
$cnt = count($results);
for($i = 0; $i < $cnt; $i++)
{
$id_post = $results[$i]['id_post'];
$answer_post = stripslashes($results[$i]['title']);
}
}
?>
|
stripslashes и вправду неуместен здесь, и провоцирует вопросы по организации обработки данных. | |
|
|
|
|
|
|
|
для: Trianon
(22.11.2014 в 21:00)
| | >stripslashes и вправду неуместен здесь, и провоцирует вопросы по организации обработки данных.
addslashes при добавлении, stripslashes при выборке. Так было написано в книгах, по которым я учился. Вроде бы старинный метод, которого я пока придерживаюсь. Как по-другому? Как правильно обработать данные при добавлени их в бд и при выводе из нее? | |
|
|
|
|
|
|
|
для: antf
(25.11.2014 в 03:21)
| | Такой подход приводит к потенциальному риску искажения данных в самой таблице (addslashes) и на выборке из нее (stripslashes)
Подробно это раскрывалось в свое время в разборе решений задачи 21. | |
|
|
|