Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
 Аватар для epog333
2 / 2 / 1
Регистрация: 16.01.2011
Сообщений: 256

Не могу понять реализацию

27.06.2013, 21:37. Показов 1204. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть таблица юзер ид, френд ид. Пример.
epog333 still
epog333 bot
epog333 bot2

В другое таблице есть изображения.
still img.jpg
still img2.jpg

Нужно вывести фотки друзей, не могу понять как это сделать, то есть нужно взять ники из френд ид и вытащить для каждого его изображение

Добавлено через 1 час 21 минуту
Двойной цикл меня спас!

Добавлено через 36 минут
А нет, ничего не получилось, сначала выводит записи одного друга, а потом другого, а мне надо что бы они были в перемешку и выводились последний записи с верху не важно от какого друга, прошу помощи!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.06.2013, 21:37
Ответы с готовыми решениями:

Не могу понять реализацию кода
Всем доброго времени суток. В PHP не сильно силён, только начал изучать Есть такой код <div class="sub-categories"> ...

Как понять поставленную задачу. Не могу понять этот полиморфизм?
A software academy teaches two types of courses: local courses that are held in some of the academy’s local labs and offsite courses held...

Пытаюсь понять комбинаторику.Не могу понять какую формулу использовать
Добрый день. Уже второй день бьюсь над комбинаторикой. Проблема стоит в том, что не могу понять, какую формулу нужно...

19
 Аватар для lagrei
6 / 6 / 1
Регистрация: 20.06.2013
Сообщений: 45
28.06.2013, 00:18
в личке написал

 Комментарий модератора 
Обсуждение вопросов - только в теме на форуме. Приглашения к обсуждению еще где-либо (в том числе и с помощью системы личных сообщений) запрещены, за исключением коммерческих разделов.
0
 Аватар для epog333
2 / 2 / 1
Регистрация: 16.01.2011
Сообщений: 256
28.06.2013, 02:04  [ТС]
Актуально, делаю так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
                 $query = mysql_query("SELECT * FROM friends WHERE user_id = '$id'");
 
while ($b= mysql_fetch_assoc($query)) {
    
 
 
 
 
 
 
 
  $query5 = mysql_query("SELECT * FROM img WHERE author = '$b[friend_id]' ORDER BY date DESC");
 
while ($b5= mysql_fetch_assoc($query5)) {
    echo "<b>".$b5['author'].":</b><br/>";
    echo "<div id='news'><a href='http://freights.ru/view.php?id=".$b5['id']."'><img src='http://freights.ru/img/".$b5['img']."' style='max-width: 650px;'/></a></div><br/>";
    }
0
11 / 11 / 1
Регистрация: 04.03.2013
Сообщений: 62
28.06.2013, 14:26
SQL
1
2
SELECT `img_field` FROM `img` WHERE `img_table`.`friend_id` IN 
(SELECT `friend_id` FROM `friends` WHERE user_id = 'epog333')
0
 Аватар для epog333
2 / 2 / 1
Регистрация: 16.01.2011
Сообщений: 256
28.06.2013, 14:49  [ТС]
@DennisRU777, Если вот так:
PHP
1
2
  $query5 = mysql_query("SELECT `img` FROM `img` WHERE `img`.`friend_id` IN 
(SELECT `friend_id` FROM `friends` WHERE user_id = 'epog333'");
То
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Z:\home\freights.ru\www\news.php on line 66

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Z:\home\freights.ru\www\news.php on line 66
0
11 / 11 / 1
Регистрация: 04.03.2013
Сообщений: 62
28.06.2013, 14:52
Прикрепи дамп базы, чтобы проверить синтаксис
0
 Аватар для epog333
2 / 2 / 1
Регистрация: 16.01.2011
Сообщений: 256
28.06.2013, 20:39  [ТС]
@DennisRU777,
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
-- phpMyAdmin SQL Dump
-- version 3.5.1
-- [url]http://www.phpmyadmin.net[/url]
--
-- Хост: 127.0.0.1
-- Время создания: Июн 28 2013 г., 10:56
-- Версия сервера: 5.5.25
-- Версия PHP: 5.2.12
 
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
 
--
-- База данных: `fr8day`
--
 
-- --------------------------------------------------------
 
--
-- Структура таблицы `comments`
--
 
CREATE TABLE IF NOT EXISTS `comments` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `author` text NOT NULL,
  `img_id` text NOT NULL,
  `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `comment` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=14 ;
 
--
-- Дамп данных таблицы `comments`
--
 
INSERT INTO `comments` (`id`, `author`, `img_id`, `date`, `comment`) VALUES
(11, 'still', '6', '2013-06-26 23:50:40', ' Царский кусок!'),
(12, 'still', '6', '2013-06-27 00:01:29', ' Согласен!'),
(13, 'epog333', '6', '2013-06-27 00:10:24', ' Трухля!');
 
-- --------------------------------------------------------
 
--
-- Структура таблицы `friends`
--
 
CREATE TABLE IF NOT EXISTS `friends` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `user_id` text NOT NULL,
  `friend_id` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=42 ;
 
--
-- Дамп данных таблицы `friends`
--
 
INSERT INTO `friends` (`id`, `user_id`, `friend_id`) VALUES
(39, 'still', 'epog333'),
(40, 'still', 'bot'),
(41, 'epog333', 'still');
 
-- --------------------------------------------------------
 
--
-- Структура таблицы `img`
--
 
CREATE TABLE IF NOT EXISTS `img` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `img` text NOT NULL,
  `author` text NOT NULL,
  `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
 
-- --------------------------------------------------------
 
--
-- Структура таблицы `users`
--
 
CREATE TABLE IF NOT EXISTS `users` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `login` VARCHAR(15) NOT NULL,
  `password` VARCHAR(15) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=28 ;
 
--
-- Дамп данных таблицы `users`
--
 
INSERT INTO `users` (`id`, `login`, `password`) VALUES
(23, 'epog333', '395267900'),
(24, 'still', 'HqHwo9ac'),
(25, 'huylo', '123456'),
(26, 'pidaras', '123456'),
(27, 'bot', '395267900');
 
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Вот это вот?

Добавлено через 5 часов 42 минуты
Помогите пожалуйста
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
28.06.2013, 21:06
У вас не правильная структура базы. В таблице друзей, вместо их логинов, должен храниться их id. То же самое и для изображений.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
28.06.2013, 21:08
Цитата Сообщение от epog333 Посмотреть сообщение
`user_id` text
.........
`friend_id` text
Зачем text !?
0
 Аватар для epog333
2 / 2 / 1
Регистрация: 16.01.2011
Сообщений: 256
28.06.2013, 21:09  [ТС]
@Dolphin, А в чём разница то заключается?

Добавлено через 16 секунд
@KOPOJI, А что?
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
28.06.2013, 21:14
Цитата Сообщение от epog333 Посмотреть сообщение
А в чём разница то заключается?
Разница огромная.
Во-первых, если у пользователя сменился логин, вам не придется во всех таблицах искать его старый логин и менять.
Во-вторых, выборка по целым числам на много быстрее проходит
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
28.06.2013, 21:15
@epog333, отвечу на оба вопроса. Потому что удобнее (и быстрее будет) использовать числовые индексы, как уже говорили выше. К тому же, места они занимают тоже меньше. И уж тем более, даже если вы решили хранить логины в текстовом виде - то уж никак не TEXT, не думаю, что логин у вас будет занимать 65 с лишним тысяч символов - VARCHAR хватило бы с лихвой
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
28.06.2013, 21:16
Не плохо было бы почитать про БД, в частности про нормализацию БД
0
28.06.2013, 21:16

Не по теме:

да, и еще один аргумент - у вас даже сами поля называются ..._id. В каком месте строки находится это самое "id" ? Все вместе - это уникальный идентификатор? А что будет, если какого-то пользователя удалили, а с новым логином зарегился кто-то еще? :)

0
 Аватар для epog333
2 / 2 / 1
Регистрация: 16.01.2011
Сообщений: 256
28.06.2013, 21:17  [ТС]
@KOPOJI, Хорошо, спасибо вас и Dolphin, но для меня сейчас важно осуществить функционал, неважно рационально или нет, как я понял ники или id не имеют значения в решении моей проблемы?
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
28.06.2013, 21:22
MySQL
1
2
3
SELECT * FROM `friends` AS `f`
LEFT JOIN `img` AS `i` ON `f`.`friend_id`=`i`.`author`
WHERE `f`.`user_id`='$user_name'
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
28.06.2013, 21:22
SQL
1
2
3
4
SELECT * FROM `first_table` `t1`
INNER JOIN `second_table` `t2`
ON `t1`.`имя_поля_первой_таблицы` = `t2`.`имя_поля_второй_таблицы`
WHERE .....дополнительные_условия
1
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
28.06.2013, 21:24
Цитата Сообщение от KOPOJI Посмотреть сообщение
MySQL
1
INNER JOIN
inner join тут не подходит, так как если у друга нет фото, то он не попадет в список друзей
1
 Аватар для epog333
2 / 2 / 1
Регистрация: 16.01.2011
Сообщений: 256
28.06.2013, 21:31  [ТС]
PHP
1
2
3
SELECT * FROM `friends` AS `f`
LEFT JOIN `img` AS `i` ON `f`.`friend_id`=`i`.`author`
WHERE `f`.`user_id`='$id' ORDER BY date DESC
Сделал вот так, вроде бы всё работает, большое вам спасибо!
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
28.06.2013, 21:44
Цитата Сообщение от Dolphin Посмотреть сообщение
inner join тут не подходит, так как если у друга нет фото, то он не попадет в список друзей
Именно поэтому я и написал INNER JOIN, т.к.
Цитата Сообщение от epog333 Посмотреть сообщение
Нужно вывести фотки друзей
я интерпретировал как "если нет фотки - значит не выводить"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.06.2013, 21:44
Помогаю со студенческими работами здесь

Стек на основе массива структур - эт как понять читаю литературу и не могу понять!
Стек статически (на основе массива структур). Пример структура &quot;Товар&quot; которая включает в себя: № по каталогу(ключ), Название, цена, срок...

Не могу понять понять смысл резидентной программы
Суть препод кинул резидент, сказал чтобы сами разбирались. Увидел что ее выкладывали уже, но в ветке этой темы, там тоже не объяснили, как...

Не могу вынести реализацию за предел класса
Создаю, в целях практики, свой класс List(на основе std::list). Вот написал саму &quot;обертку&quot; этой структуры данных и перешел к написанию...

Движение разных Image (не могу продумать реализацию)
Не могу продумать реализацию вот такой программы: Есть аэропорт, в нем есть стоянка самолетов, рулежные дорожки, взлетная полоса, и...

Не могу сделать полиморфизм. Не могу до конца понять пример по этому поводу
Есть такая задача: Класс Animal должен быть абстрактным, имеет имя и вес. Класс Reptile имеет habitate, который держит в себе среду...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru