Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
1 / 1 / 0
Регистрация: 30.10.2011
Сообщений: 62

Несколько условий подряд

14.09.2012, 19:34. Показов 4511. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вот собственно код, который не совсем корректный, помогите как его исправить, или если можно предложить свой вариант
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
--
-- Структура таблицы `friends`
--
 
CREATE TABLE IF NOT EXISTS `friends` (
  `friends_id` INT(9) NOT NULL AUTO_INCREMENT,
  `friends_data_dob` datetime NOT NULL COMMENT 'Дата добавления',
  `friends_who_user` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'Кто подает заявку',
  `friends_whom_user` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'Получатель заявки',
  `friends_cat_friends` VARCHAR(35) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'Категория',
  `friends_status_dob` VARCHAR(11) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Подписчик' COMMENT 'Статус добавления(подписчики)',
  PRIMARY KEY (`friends_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
 
--
-- Дамп данных таблицы `friends`
--
 
INSERT INTO `friends` (`friends_id`, `friends_data_dob`, `friends_who_user`, `friends_whom_user`, `friends_cat_friends`, `friends_status_dob`) VALUES
(2, '0000-00-00 00:00:00', 'Петя', 'Ваня', '', 'Друг');
PHP
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
<?php
$result = mysql_query("SELECT * FROM users WHERE id='$id'",$db);
$myrow = mysql_fetch_array($result);
$result89 = mysql_query("SELECT * FROM friends",$db);
$myrow89 = mysql_fetch_array($result89); 
mysql_query('SET NAMES utf8');
if ($myrow89['$friends_whom_user']=="{$_SESSION['login']}" && $myrow89['$friends_who_user']=="{$myrow['login']}" && $myrow89['$friends_status_dob']=="Друг")
/*Проверяем находиться ли пользователь в друзьях или подписчиках*/
{
$status_friends = "Он(а) находиться у вас в Друзьях";
/*Информируем о том что пользователь, уже находиться в друзьях*/
}
elseif ($myrow89['$friends_whom_user']=="{$_SESSION['login']}" && $myrow89['$friends_who_user']=="{$myrow['login']}" && $myrow89['$friends_status_dob']=="Подписчик")
{
$status_friends = "Он(а) подписан(а) на вас  <input type='submit' id='button2' value='Добавить в друзья'>";
/*Информируем о том что пользователь, находиться в подписчиках, добавляем кнопку Добавить в друзья*/
}
elseif ($myrow89['$friends_who_user']=="{$_SESSION['login']}" && $myrow89['$friends_whom_user']=="{$myrow['login']}" && $myrow89['$friends_status_dob']=="Подписчик")
/*Информируем о том мы подписаны на данного пользователя*/
{
$status_friends = "Вы подписаны, подождите добавления";
/*Информируем о том стоит ждать одобрения*/
}
else
{
$status_friends = "<input type='submit' id='button2' value='Добавить в друзья'>";
/*Если пользователи не подавали заявки Добавить в друзья, ставим кнопку Добавить в друзья*/
}
echo "$status_friends";
?>
<!--Конец проверки на нахождения пользователя в друзьях-->
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.09.2012, 19:34
Ответы с готовыми решениями:

Как прописать несколько условий при ИСТИНА и несколько условий при ЛОЖЬ?
Всем доброго времени суток. If &amp; Else как прописать несколько условий при ИСТИНА и несколько условий при ЛОЖЬ ? Напр В11:С18...

while несколько условий
Нужно сделать чтоб при вводе символа проверяла тот ли символ #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt;...

Несколько условий
Как грамотно оформить несколько условий? так можно? if( $x == 1 and $y == 2 and $z == 3 and $i == 4 and ) {

3
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
14.09.2012, 19:38
Предложить свой вариант? Любой?
Вот мой вариант кода
PHP
1
if (1) die('error');
Если же не любой, то хотя бы описали:
что вы хотите получить?
что делает данный код?
что именно вы считаете не корректным в данном коде и как бы вы хотели что бы было корректно?
0
1 / 1 / 0
Регистрация: 30.10.2011
Сообщений: 62
14.09.2012, 19:45  [ТС]
наделся на прочтение комментариев,ну да ладносуть проста вывести ссылку на Добавления в друзья либо надпись Вы находитесь в подписчиках,ждите одобрения, или Данный пользователь у вас в друзьях. Данный код не корректно отображается, и показывает кнопку всегда Добавить в друзья, я новичок и просто решил это реализовать через (простое) условие, может кто поможет подправить его, либо что нибудь предложит по короче и более актуальнее
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
14.09.2012, 20:02
Ну в коментах описано как я понимаю как оно работает. Но что то же не коректно работает, вот и не понятно что, а может оно работает так как в коментах, а надо по другому, это же лучше знать сразу

PHP
1
2
$result = mysql_query("SELECT * FROM users WHERE id='$id'",$db);
$myrow = mysql_fetch_array($result);
Выбрали пользователя по ИД и больше не работаете с этими данными, зачем выбирали?

PHP
1
$myrow89
что значит 89? Это уроки Попова что ли? Зачем эти цифры?
PHP
1
$result89 = mysql_query("SELECT * FROM friends",$db);
Вы выбрали все записи из таблицы.
PHP
1
$myrow89 = mysql_fetch_array($result89);
А потом взяли только первую строку. Зачем тогда выбирать все строки, если использовать только одну? А если строк 100500? Вы тоже все выбирать будите? И сервер рухнет

PHP
1
mysql_query('SET NAMES utf8');
А потом указали кодировку. Зачем? Вы же запрос на выборку уже выполнили, указание кодировки теперь не чего не даст...

Вам нужно выбрать только записи, где есть оба ИД, текущего пользователя и того с кем идёт сравнение.
У вас будет максимум 2 записи.
Дальше можно проверить например так
Code
1
2
3
4
5
6
7
8
если (количество выбраных записей == 0)
    кнопка
иначе если  (количество выбраных записей == 2)
    вы друзья
иначе если (в первой записи в поле кто пригласил ваш ид)
    вы подписанны
иначе
    на вас подписанны
Добавлено через 1 минуту
Вот только ещё такой момент, лучше хранить ID юзеров кто пригласил и кого пригласили, это гораздо меньше по объёму таблицы будет. На ИД хватит всего 4 байта.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.09.2012, 20:02
Помогаю со студенческими работами здесь

Несколько условий
Помогите пожалуйста разобраться как лучше оформить условие в Excel: Есть список, необходимо составить формулу для скидок учитывающую...

Несколько условий if then
if (w&lt;=0) and (r=&gt;0) then writeln('Игрок den победил!') ; if (r&lt;=0) and (w=&gt;0) then writeln('Игрок kot победил!'); if (w&lt;=0) and...

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

Несколько условий в if
Доброго времени суток. Подскажите пожалуйста, как вставить в элемент if несколько условий, например: if(a &lt; 0, b &lt; 0, c &lt; 0)...

If несколько условий
здравствуйте. ошибка в нескольких условий по IF $status = $_GET; if ($status = 1){ $Shp_s = 'Сведения об объекте'; } elseif...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru