[PHP] Множество запросов к БД
|
|
dima9595 | Дата: Суббота, 18 Октября 2014, 18:12 | Сообщение # 1 |
почти ветеран
Сейчас нет на сайте
| Доброго времени суток! Всё разрабатываю свой сайт. И как всегда появился очередной вопрос: У меня есть класс работы с БД: Код <?php class DB{ // Здесь пропущен код
public function select($tables, $table, $where, $sort){ ## Запрос SELECT (получение данных столбцов -> из таблицы -> по условию -> с сортировкой) $this->select = mysql_query("SELECT $tables FROM $table $where $sort"); }
public function fetch_array(){ ## Получаем данные из SELECT и записываем в массив $this->fetch_array = mysql_fetch_array($this->select); }
// Здесь пропущен код }
// Здесь пропущен код ?>
В различных файлах я использую функции в таком стиле: Код $db->select(...); $db->fetch_array();
Это всё работает. А когда мне нужно будет несколько запросов select (и т.п.) сделать, то они у меня в перемешку уходят.
Так в чём проблемма: мне нужен совет по разделению запросов...
Пробовал таким образом - не работало, как и ожидалось: Код $sel = $db->select(...); $sel_a = $db->fetch_array();
Так как мне всё это сделать? Подскажите пожалуйста!
Сообщение отредактировал dima9595 - Суббота, 18 Октября 2014, 18:13 |
|
| |
lvovand | Дата: Суббота, 18 Октября 2014, 19:04 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| судя по коду, как-то так $sel1 = $db->select(...); $arr1 = $db->fetch_array();
$sel2 = $db->select(...); $arr2 = $db->fetch_array();
Разработка и продвижение сайтов. Дизайн
|
|
| |
dima9595 | Дата: Суббота, 18 Октября 2014, 19:10 | Сообщение # 3 |
почти ветеран
Сейчас нет на сайте
| Цитата lvovand ( ) судя по коду, как-то так $sel1 = $db->select(...); $arr1 = $db->fetch_array();
$sel2 = $db->select(...); $arr2 = $db->fetch_array();
Цитата dima9595 ( ) Пробовал таким образом - не работало, как и ожидалось:
|
|
| |
lvovand | Дата: Суббота, 18 Октября 2014, 19:24 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| сделай вывод того,что в классе происходит, чтобы понять что не работает
Разработка и продвижение сайтов. Дизайн
|
|
| |
dima9595 | Дата: Суббота, 18 Октября 2014, 22:16 | Сообщение # 5 |
почти ветеран
Сейчас нет на сайте
| lvovand, работать-то работает, а вот если делать несколько запросов, допустим, "$db->select();", то будет последний рабочий. Т.е. мне нужно как-то разделить запросы в переменные, что ли...
|
|
| |
lvovand | Дата: Суббота, 18 Октября 2014, 22:41 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| запутал если честно, что значит несколько зарпосов? сделал одну выборку, получил данные, потом сделал вторую, так? покажи код, где ты вызов запросов делаешь
Разработка и продвижение сайтов. Дизайн
|
|
| |
last2424 | Дата: Суббота, 18 Октября 2014, 23:18 | Сообщение # 7 |
30 мл. блоков
Сейчас нет на сайте
| Он имеет ввиду что ему надо через $db проводить несколько выборок одновременно, скорее всего у него как то не правильно база настроена в конфиге.
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
|
|
| |
lvovand | Дата: Воскресенье, 19 Октября 2014, 03:33 | Сообщение # 8 |
старожил
Сейчас нет на сайте
| last2424, как я понял, выборка то может и одна, но если в ней больше одного значения, то строка mysql_fetch_array($this->select) уже не прокатит, нужно пройтись по всем строкам результата while($row = mysql_fetch_array($this->select)){ $arr[] = $row; }
и тогда в $arr уже будет массив из всех строк
Разработка и продвижение сайтов. Дизайн
|
|
| |
dima9595 | Дата: Воскресенье, 19 Октября 2014, 19:40 | Сообщение # 9 |
почти ветеран
Сейчас нет на сайте
| По ходу ни кто ни чего не понял. Я имел ввиду то, что если использовать 2 $db->select(); (т.е. 2 различных вопроса), то функция $db->fetch_array(); поместит только 1 запрос $db->select();...
Это тоже самое, что и: Код $select = mysql_query(...); $select = mysql_query(...);
$fetch = mysql_fetch_array($select); $fetch = mysql_fetch_array($select);
Сообщение отредактировал dima9595 - Понедельник, 20 Октября 2014, 17:52 |
|
| |
last2424 | Дата: Воскресенье, 19 Октября 2014, 20:53 | Сообщение # 10 |
30 мл. блоков
Сейчас нет на сайте
| dima9595, лол, так вайл нельзя использовать, каждый раз изменять значение?
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
|
|
| |
dima9595 | Дата: Понедельник, 20 Октября 2014, 17:55 | Сообщение # 11 |
почти ветеран
Сейчас нет на сайте
| last2424, хз) мне кажется что слишком много кода выйдет, если у меня на странице >3 запросов необходимые для вывода. Попробую что нибудь сегодня да замутить)Добавлено (20.10.2014, 17:55) --------------------------------------------- Всем спасибо за советы!
|
|
| |
Snake174 | Дата: Вторник, 21 Октября 2014, 06:11 | Сообщение # 12 |
участник
Сейчас нет на сайте
| Попробуй так: Код public function select( $tables, $table, $where, $sort ) { ## Запрос SELECT (получение данных столбцов -> из таблицы -> по условию -> с сортировкой) $this->select = mysql_query("SELECT $tables FROM $table $where $sort");
return $this->select; // добавить }
public function fetch_array( $select ) // параметр select { ## Получаем данные из SELECT и записываем в массив $this->fetch_array = mysql_fetch_array( $select );
return $this->fetch_array; // добавить }
И уже нормально пользоваться тем, что писал выше: Код $sel1 = $db->select(...); $arr1 = $db->fetch_array( $sel1 );
$sel2 = $db->select(...); $arr2 = $db->fetch_array( $sel2 );
Не следует обманывать инспектора Pipmak Assistant Love2D Exporter Love2D-Helpers Old Consoles Games
|
|
| |
dima9595 | Дата: Среда, 22 Октября 2014, 16:23 | Сообщение # 13 |
почти ветеран
Сейчас нет на сайте
| Snake174, Благодарю за помощь. Попробую) Добавлено (22.10.2014, 16:23) --------------------------------------------- всё работает! + всем поставлю!
|
|
| |