Проблема в том я не знаю а что с таблицей users делать? Если я сейчас создам 2 таблицы, то таблица users не будет что ли задействована?
Ничего не делать. Так и оставь --- Добавлено --- Что значит не задействована?А откудова ты тогда будешь пользователей брать? Куда регистрировать? Откуда аутентифицировать?
@SamyRed Ах ну да) Слушай создаю таблицы сейчас в базе requests и friends не знаю в каком типе хранить данные, от таблицы friends, случайно не в int? Если что уже разобрался в каком типе хранить) Теперь надо запросы придумать, если получится их создать я буду рад, что хоть что то получилось! --- Добавлено --- @SamyRed У меня еще вопрос, а через switch стоит писать запросы? То-есть все запросы в одном файле? И сразу второй, как после того когда пользователь принял заявку, удалять из таблицы requests и подставлять в таблицу friends данные? Тут просто я в тупике, сейчас.
Не стоит. Потом вообще не понять будет, что куда и откуда. Единая точка входа по-другому делается. Функциями и/или классами
@mkramer Мне даешь совет, функциями писать? А можно запросы сделать все в одном файле, это хочу узнать? В одной функции, и добавления, и удаления и подтверждения? --- Добавлено --- @mkramer @SamyRed Посмотрите пожалуйста, делаю запрос на добавления в друзья: PHP: <?php $sql = 'INSERT INTO `requests`(`sender_id`, `receiver_id`, `accept`) VALUES(:sender_id, :receiver_id, 0)'; $stmt = $pdo->prepare($sql); $stmt->bindParam(':sender_id', $sender_id); $stmt->bindParam(':receiver_id', $receiver_id); $sender_id = (int)$_SESSION['user_id']; $receiver_id = (int)$_GET['add_friend']; //Подскажите что я вот тут не так сделал, что от принимателя заявки подставлять, какие данные??? if($stmt->execute()){ echo '<br>Вы подали заявку в друзья'; } } ?> И как этот запрос можно запихнуть в function? Спасибо всех кто помогает)
@_ne_scaju_, ты задаёшь вопросы, будто не читал ссылки, которые я тебе давал PHP: function addRequest($sender_id, $receiver_id) { $sql = 'INSERT INTO `requests`(`sender_id`, `receiver_id`, `accept`) VALUES(:sender_id, :receiver_id, 0)'; $stmt = $pdo->prepare($sql); $stmt->bindParam(':sender_id', $sender_id); $stmt->bindParam(':receiver_id', $receiver_id); return $stmt->execute(); } И такие вещи надо не GET-ом, а post-ом делать. Хотя пока и так сойдёт, в принципе, но на будущее --- Добавлено --- PHP всё равно, сколько ты строк в одном файле запихаешь. Можно хоть весь код vk.com сделать в одном файле. Одно но - потом ни один человек, включая тебя, не поймёт, что там к чему и зачем.
@mkramer Не много понял с функциями) так и знал что преобразовать можно именно как то так, вопрос еще один. Если правильно я понял функции, то пишу запрос на подтверждение дружбы: PHP: <?php function requests(){ $sql ="UPDATE `requests` SET `accept`= '1' WHERE `id`='".(int)$_GET['add_friend']."'"; $stmt = $pdo->prepare($sql); return $stmt->execute(); } ?> Правильно ли функция написана, и эту функцию можно записать под той которую вы написали, то-есть одним файлом, друг под другом?
не лучший вариант. Дело даже не в интерпретаторе PHP десериализует массив просто. А вот допустим задача: - Найти всех, у кого %name% есть в друзьях как реализовать при таком подходе? @_ne_scaju_ - не подставляй данные напрямую. Пусть сейчас это типо и обучался, но не привыкай к таким вещам сразу. Ты же сам в добавлении правильно делал, через bindParam. Делай и тут также. - Я не видел весь код, как что у тебя там работает, но есть прям дикое предположение. Вот запрос на обновление реквеста, как он должен работать? ищется в таблице запись с id-таким_то. А айди то ты как узнаёшь? Мож ты конечно и сделал это, но если нет - вот тебе пища для размышлений. И не гнушайся ссылками, что дают ребята. Если они их дают - значит они полезные. Будешь отпираться - все просто забьют на помощь тебе, посчитав её бессмысленной. И программист всегда должен читать документацию. Ребята с 20-30-летним стажем читают документацию. Все, без исключения. А когда научишься её читать и использовать - считай просто огромный скачок совершил в мир разработки.
@_ne_scaju_, давай-ка я по-простому объясню, чтобы ты понимал вообще, что происходит. Функции придуманы для того, чтобы упростить жизнь разработчику. У тебя в коде часто происходят такие действия? Если да - мы пишем функцию. И в коде уже вызываем её. Вызов функции - одна строчка. Вот допустим, вся функция занимает 500 строк. Такое действие на странице надо произвести 10 раз. А теперь два варианта: 1. Без использования функции. 10 раз мы написали на странице 500 строк. В итоге получилось 5000 строк. 2. С использованием функции. Один раз написали 500 строк в функции. Потом 10 раз вызвали функцию. В итоге получилось 510 строк. Разница очевидна. Читать проще? да. Поддерживать проще? да. А насчёт правильно/нет, если я сейчас начну говорить, как бы сделал я, ты пока что всё равно не поймёшь. Поэтому пытайся сам подумать о целесообразности любого своего кода
То-есть тот код сделал через bindparam PHP: function requests($add_friend){ $sql ='UPDATE `requests` SET `accept`= '1' WHERE `id`= "$add_friend"'; $stmt = $pdo->prepare($sql); $stmt->bindParam(':id', $add_friend); $receiver_id=(int)$_GET['add_friend']; return $stmt->execute(); } Я правильно тебя понял?
@_ne_scaju_, ну сравни же свои два запроса. инсерт и апдейт. Посмотри на данные в биндПарам, потом на запрос.
@acho Ты сейчас говоришь посмотреть на функцию апдейт? или просто запрос апдейт? Вот так? PHP: function requests($add_friend){ $sql ='UPDATE `requests` SET `accept`= '1' WHERE `id`= "$add_friend"'; $stmt = $pdo->prepare($sql); $stmt->bindParam(':id', $add_friend); $add_friend=(int)$_GET['add_friend']; return $stmt->execute(); }
Ох, извини. Так много времени уделять такой глупости у меня нет. Ты не хочешь читать документацию, ты не можешь сравнить два запроса, которые якобы написал сам. Ты даже, кажется, не понимаешь, как они работают. Тебе нужно учить азы. $sql='UPDATE `requests` SET `accept`= '1' WHERE `id`= "$add_friend"'; $sql='UPDATE `requests` SET `accept`= '1' WHERE `id`= :id';
@acho Ай ты за это :id говоришь, понял, я и так азы знаю запросов sql. Например: update обновить, insert вставить вроде, delete понятно удалить, select выбрать И так далее если есть еще. Ну понятно с id накрутил, теперь выглядит так: PHP: function assume($add_friend){ $sql="UPDATE `requests` SET `accept`= '1' WHERE `id`= :id"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':id', $add_friend); return $stmt->execute(); } Да извини за мою глупость) бывает я вообще восстанавливаюсь что изучал раньше, вспоминаю!
Почему такая ерунда между запросами этот срабатывает а этот нет? Этот срабатывает запрос PHP: $sql = 'INSERT INTO `requests`(`sender_id`, `receiver_id`, `accept`) VALUES(:sender_id, :receiver_id, 0)'; $stmt = $pdo->prepare($sql); $stmt->bindParam(':sender_id', $sender_id); $stmt->bindParam(':receiver_id', $receiver_id); $sender_id = (int)$_SESSION['user_id']; $receiver_id = (int)$_GET['add_friend']; $stmt->execute(); А этот нет( PHP: function addRequest($sender_id, $receiver_id) { $sql = 'INSERT INTO `requests`(`sender_id`, `receiver_id`, `accept`) VALUES(:sender_id, :receiver_id, 0)'; $stmt = $pdo->prepare($sql); $stmt->bindParam(':sender_id', $sender_id); $stmt->bindParam(':receiver_id', $receiver_id); $sender_id = (int)$_SESSION['user_id']; $receiver_id = (int)$_GET['add_friend']; return $stmt->execute(); } В чем причина?
это не глупость, а отсутствие понимания/опыта. это приходящее. Все когда-то чего-то не знали. Просто когда знаешь - кажется, что это просто. Поэтому удивляешься, как этого можно не понимать. Эту особенность своей психологии не все учитывают в общении с менее опытными товарищами. На самом же деле у него самого несколько лет назад кипели мозги от подобного простого вопроса. Просто он об этом уже забыл.
@TeslaFeo ))) Это конечно хорошо, так а в чем проблема, то? Да опыта у меня мало, да и навыков, учу же просто.
ага. кипели. и до сих пор у меня бывают затыки на оооочень простых вопросах, в то время как сложные как-то легко обрабатываются. Но с самого начала у меня была какая-то предрасположенность к документации. Этим можно считать, что мне было гораздо проще. Всё придёт, конечно. Если не лениться. @_ne_scaju_, давай я тебе дам одно небольшое задание, и если ты его выполнишь прям в точности, как я скажу, то и сам поймёшь, как работают функции, и к тому же найдёшь пару лишних строк у себя в коде. Идёт?
@_ne_scaju_ Вот твой код, я добавил после него ещё одну строчку. (использовать его не пытайся, там пока не всё рабочее.) PHP: function addRequest($sender_id, $receiver_id) { $sql = 'INSERT INTO `requests`(`sender_id`, `receiver_id`, `accept`) VALUES(:sender_id, :receiver_id, 0)'; $stmt = $pdo->prepare($sql); $stmt->bindParam(':sender_id', $sender_id); $stmt->bindParam(':receiver_id', $receiver_id); $sender_id = (int)$_SESSION['user_id']; $receiver_id = (int)$_GET['add_friend']; return $stmt->execute(); } addRequest(); Напиши по пунктам, что происходит в каждой строчке этого куска кода. Прям в каждой. По-русски. Просто человеческим языком то, что делает компьютер.