Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: внешний ключ

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
jonston
Отправлено: 06 Января, 2012 - 15:54:16
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


Помог: 3 раз(а)




Здравствуйте!Всех с наступившим!Есть две таблицы вопросы и ответы.У таблицы ответов есть внешний ключ ссылающийся на id вопроса.При выводе должно выводится вопрос и ответы(может быть много) которые прикреплены к нему.Спасибо!
Сори напишите плиз запрос!)Я так понимаю там join нужно использовать?

(Отредактировано автором: 06 Января, 2012 - 15:57:49)



-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
PATCH
Отправлено: 06 Января, 2012 - 15:57:58
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




PHP:
скопировать код в буфер обмена
  1. $query = mysql_query("SELECT * FROM table") //запрос на вопрос
  2.  
  3. while($array=mysql_fetch_array($query))
  4. {
  5.  $query2 = mysql_query("SELECT * FROM table2 WHERE id=".$array['id']); //ищем все ответы  этого вопроса
  6.  $array2 = mysql_fetch_array($query2);
  7.  
  8. echo $array['title']."<br>"; - выводим вопрос
  9. while( $array2 = mysql_fetch_array($query2))
  10. {
  11. echo $array2['title']."<br>"; - выводим ответы
  12. }
  13. }

типо такого?) сто пудова можно и перекресным запросом, я ток не силен в Mysql) так сморозил 5 сек

(Отредактировано автором: 06 Января, 2012 - 15:59:44)

 
 Top
jonston
Отправлено: 06 Января, 2012 - 15:59:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


Помог: 3 раз(а)




[quote=PATCH]
Не так не идет!)Спасибо!Нужен один запрос а не в цикле!Но все равно спасибо!


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
Зверь
Отправлено: 06 Января, 2012 - 16:01:46
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Окт. 2011  


Помог: 7 раз(а)




mysql_fetch_array лучше не использовать, туда сваливаются сразу 2 массива, ассоциативный и нумерованный, а используется только 1
 
 Top
PATCH
Отправлено: 06 Января, 2012 - 16:05:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




Зверь пишет:
mysql_fetch_array лучше не использовать, туда сваливаются сразу 2 массива, ассоциативный и нумерованный, а используется только 1


Цитата:
Важно заметить, что mysql_fetch_array() работает НЕ медленне, чем mysql_fetch_row(), в то время, как предоставляет более удобный доступ к данным.


Цитата:
Важно заметить, что mysql_fetch_assoc() работает НЕ медленнее, чем mysql_fetch_row(), предоставляя более удобный доступ к данным.


вывод?) вообще можно и из mysql_fetch_array($query,MYSQL_ASSOC); - если кого то спасет сотая доля секунды) что он не вытащит числовой массив)

(Отредактировано автором: 06 Января, 2012 - 16:23:22)

 
 Top
Зверь
Отправлено: 06 Января, 2012 - 16:23:09
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Окт. 2011  


Помог: 7 раз(а)




Работает может и не медленнее, но если в БД 1000 записей ?
*2 = 2 массива в каждом по 1000 элементов, что вообще не гуд для сервера

А если этих записей в десятки раз больше, чем 1000?
 
 Top
PATCH
Отправлено: 06 Января, 2012 - 16:24:20
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




а ты вытаскиваеш сразу тысячей записей? пичаль я использую постраничную навигацию там де вывод с бд идет через параметр LIMIT в запросе
 
 Top
LIME
Отправлено: 06 Января, 2012 - 16:28:20
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Зверь вообще да...даже если не применять LIMIT приходит не вся результирующая таблица
 
 Top
Зверь
Отправлено: 06 Января, 2012 - 16:29:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Окт. 2011  


Помог: 7 раз(а)




Всякое бывает, возможно надо сразу все записи...

У себя я LIMIT использую
 
 Top
PATCH
Отправлено: 06 Января, 2012 - 16:34:55
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




покажи мне когда тебе надо хотя бы 200 записей выборку сделать?) единствено что интернет магазин но и там постраничная навигация есть и там записей вреатли 200 записей на странице выводит) поставил на самописной cms параметр ,MYSQL_ASSOC на пару тысячных вроде бы стало быстрее генерироватся )

(Отредактировано автором: 06 Января, 2012 - 16:35:29)

 
 Top
Зверь
Отправлено: 06 Января, 2012 - 16:41:39
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Окт. 2011  


Помог: 7 раз(а)




"Я только начал изучать PHP еще не слышал про постраничную разбивку и леплю все на 1 страничке Ха-ха "

А вообще, я даже не представляю зачем может понадобиться такой объем данных)

(Отредактировано автором: 06 Января, 2012 - 16:48:07)

 
 Top
jonston
Отправлено: 06 Января, 2012 - 16:43:56
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


Помог: 3 раз(а)




PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT * FROM questions right JOIN answers ON questions.id = answers.question WHERE moderate = 1 ORDER BY questions.id DESC";

вот такой запрос уже ближе к теме


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
LIME
Отправлено: 06 Января, 2012 - 16:44:46
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Зверь пишет:
Всякое бывает, возможно надо сразу все записи...
ты не понял
в скрипт не поступает вся результирующая таблица
приходит только ссылка и фетчем вытягивается по 1ой записи
потому память скрипта не занимает
 
 Top
Зверь
Отправлено: 06 Января, 2012 - 17:06:07
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Окт. 2011  


Помог: 7 раз(а)




Перечитал ман. по функции понял что ошибался, спасибо
 
 Top
Мелкий Супермодератор
Отправлено: 06 Января, 2012 - 18:05:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




PATCH пишет:
покажи мне когда тебе надо хотя бы 200 записей выборку сделать?

0) Построить график статистики
1) собрать данные таблицы, расширяемой по произвольным параметрам в обе стороны
2) загрузить простейшее дерево - вытянуть 2 сотни записей выгоднее, чем тягать каждый уровень отдельно. Особенно пример - вытянуть только ветку дерева - и тысячу записей вытянуть лучше, чем циклом запрашивать.
3) это не затрагивая экспорт данных как класс. Например, в CSV, где и 40тыс записей выдать - нормальное дело.
4) список дней рождения пользователей за 1 января!

LIME пишет:
приходит только ссылка и фетчем вытягивается по 1ой записи
потому память скрипта не занимает

0) приходит весь результат сразу и помещается в ресурс
1) память расходуется
2) и ещё раз расходуется, когда запрашивается строка fetch'ем к-л.


-----
PostgreSQL DBA
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB