Доступ к MySQL посредством PHP | Динамический веб-сайт
Вставка
- Опубліковано 16 вер 2024
- Весь процесс общения языка программирования PHP с базой данных MySQL состоит из следующих этапов:
1. Подключаемся к самой базе MySQL
2. Готовим наш запрос
3. Выполняем запрос
4. Получаем данные и обрабатываем (например вывод на страницу)
5. Отключаемся от базы MySQL
МОЯ IDE:
www.jetbrains....
ССЫЛКА НА МАТЕРИАЛ (google disk):
drive.google.c...
Спасибо Андрей. Ваш труд бесценен!
Спасибо за урок! Идеально всё разжевали
Дякую за вашу роботу!!!
Будь ласка
Cмотрел я короче 7 уроков, вроде все понимал, все получалось. Тут появились какие-то циклы, и говорят нет смысла дальше что-то делать если не знаешь. Класс) ткните носом что и где учить пожалуйста
php базу 🤓
Спасибо Андрей. Легко, грамотно.
Большое спасибо за уроки
Привет! Спасибо за видео!
почему-то, если соединение с бд НЕ работает, то сообщение 'Error connection' (ну и вообще ничего, что там в скобках) не выдаётся - только сообщение MySQL об ошибке доступа и дальше программа прерывается
У меня в БД 3 строки. Если вывожу только имя, то выводятся все 3. Если же начинаю выводить ID и имя, то идет смещение. ID 1 присваивается второму юзеру, ID 2 - соответственно третьему, ID 3 выводится, но без имени.
В видеоуроке я заметил тот же момент. Имя первого юзера было Dimon. После выведения ID Димон куда-то пропал, а Андрей уже стал под ID 1, так же третья строка пустая.
Подскажите в чем может быть проблема? Просто дайте направление куда копать.
абсолютно аналогично и у меня! Пните, когда ответят.
разобрался. Нужно просто между вот этими двумя "fetch_assoc"-ами вставить $result->data_seek($i);
Связано с тем, что fetch_assoc сдвигает позицию на единицу.
@@ALEXANDERRAMMST на уроке пишется fetch_assoc 2 раза он обрабатывает каждую строку два раза по этому надо создать обект с fetch_assoc и обрашатся к обьекту
$rows = $result->num_rows;
for ($i = 0; $i < $rows; ++$i){
$result->data_seek($i);
$data = $result->fetch_assoc();
echo 'Lgin: ' . $data ['login'] . ' ';
echo 'Name: ' . $data ['name'] . '';
} примерно так
можно проще сделать: $result->data_seek($i);
$row = $result->fetch_assoc();
echo 'ID: ' . $row ['id_user'] . ' ' ;
echo 'Name: ' . $row ['name'] . '' ;
Лучший))
как подключится к localhost, как у вас в видео? заступорилась на этом моменте (8:32). не понимаю как именно открыть нужный localhost(
Получилось решить эту проблему?
@@user-pf6tn2rd1l А у вас?
@@ЛевицкаяКристина у меня получилось)
@@user-pf6tn2rd1l а не расскажите как?
Такая же проблема
Класс 👍👍👍
как включить вывод ошибок?
указал неверный пароль, браузер показывает просто белый фон. я бы хотел чтобы вывод ошибок был даже когда запрашиваю не существующий id в GET запросе
Да, перерыв был действительно долгим. Заждались... Спасибо за видео. Все интересные и с удовольствием смотрю. Но вот вопрос. Какой может быть mysqli в 2020 году ? (почти в 2021-ом). Уже PHP 8 вышел... Где PDO ?
Будет в следующем уроке или через урок
@@andrievskii с возвращением))))
@@andrievskii Просто совет, не нашел видео по отладчику, а так бы отлично было бы вообще в первых уроках рассказывать, как им пользоваться и искать ошибки самостоятельно, какой бы язык не изучался с отладчиком можно понять, что в коде происходит и где всё крашится или как работает чужой код
Спасибо!
Объясните пожалуйста зачем нужна строчка
$result->data_seek($i);
Ну это как проверка перед выводом, перемещает указатель результата на выбранную строку
Спасибо!
Но почему у меня при выводе двух колонок выдаёт ошибку: Trying to access array offset on value of type null in. По одной колонке нормально выводит, а если пытаюсь вывести id и names, первое имя теряется, а 3 id пустой + ошибка?! Я так подозреваю это из-за более новой версии пхп в амппс?
Пофиксил, додумался. Перед каждым выводом поидее нужно выводить проверку и всё работает:
$result->data_seek($i);
echo 'ID: ' . $result->fetch_assoc()['id'] . ' ';
$result->data_seek($i);
echo 'Name: ' . $result->fetch_assoc()['name'] . '';
@@Kenny_buzz спасибо, что решение написал, с этой же фичей столкнулся
@@Kenny_buzz Спасибо, у меня уж мозг закипел))
Спасибо
У меня выдает ошибку Error result, делал все как говорил, что делать?
отслеживать откуда ошибка, делать дебагинг
Скорее всего ты подключился в setting.php к другой базе данных проверь есть ли у тебя в подключенной БД таблица users
Ждем js react
Пишет ошибку Fatal error: Uncaught Error: Class "mysqli" not found
Привет !) 24-18 , ответ какой то не тот , под id 1 должен быть Dimon , т.е. все съехало . Учусь на ваших видео и сам не могу понять что не так написано и почему съезжает.
Да вижу, странно что сразу не заметил))
Попробуйте в тексте, вместо 'ID' написать 'Номер пользователя'
@@andrievskii fetch_assoc сдвигает позицию на 1 , у многих такая проблема (нагуглил) , решил через цикл while . Почитал другие решения , но так как только учусь не понял , что там понаписано . Было бы интересно разобрать этот вопрос в одном из следующих уроков . while ($row = mysqli_fetch_assoc($result)){} и из row уже все вынимал.
Еще как вариант явно указать строчку, перед каждым выводом в цикле.
for ($i = 0; $i < $result->num_rows; $i++) {
$result->data_seek($i); // метод data_seek() обращается к строке
echo "name: " . $result->fetch_assoc()["name"] . " "; // метод fetch_assoc() обращается к столбцу(ячейке)
$result->data_seek($i);
echo "ID_user: " . $result->fetch_assoc()["id_user"] . "";
foreach ($result as $value){
echo 'ID:' . $value['id'] . ''
. 'Ism:' . $value['name'] . ''
. 'Yosh:' . $value['age'] . ''
. 'Login:' . $value['login'] . '';
}
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"]. " Ism: "
. $row["name"]. " Yoshi: "
. $row["age"]. " Login:"
. $row["login"] . "";
}
} else {
echo "Ma'lumot topilmadi!";
}
можно ли использовать такой способ если юзеров будет 100к+?
Используйте PDO для работы с БД, там далее по курсу это будет!
вы путаете когда говорите база данных а выбираете таблицу, получается каша
у меня выдаёт ошибку Warning: mysqli::__construct(): (HY000/1045): Access denied for user 'first'@'localhost' (using password: YES) in D:\it prgms\Ampps\www\index.php on line 4
error connection
хотя пароль правильный
Есть ли ответы на домашнее задание? Хочу глянуть решение
Только от пользователей, если они выкладывали в комментарии. Я ответы не писал
переменную запроса надо былол назвать отличнее от метода всеж
Плохо пишет код автор, всё запутывает код грязный сложный и не нужный.
Просто не смотри)) Не трать зря время))
@@andrievskii Это я и сделала)
бля чел, я надеюсь ты когда нибудь научишься полносью излагать свои мысли. И я щас про дз...
смотрел и был разочарован, чел украл у меня 25 мин времени.
почему? потомучто на следующем уроке он скажет так не надо писать, пишем на ПДО .... тогда какого Х ты этому учишь? неужто трудно сразу дать так как должно быть?
..... ну да конечно, нужны лайки и 25 мин чтобы ютюб оплотил....дерьмо все это
Когда будете рефакторить легаси код (а такой работы много), будете понимать что это за mysqli и на что его заменить. Всего то 25 минут, что бы знать.
Большое спасибо за уроки
что делать если ошибка выходит "fatal error: uncaught error: class "mysqli" not found in..."
Если вы получаете ошибку "Fatal error: Uncaught Error: Class 'mysqli' not found in...", это указывает на то, что расширение mysqli не активировано или не установлено в вашем PHP-окружении.
@@andrievskii Fatal error: Uncaught mysqli_sql_exception: Access denied for user 'roo'@'localhost' (using password: YES) in C:\OSPanel\domains\test-mysite\index.php:8 Stack trace: #0 C:\OSPanel\domains\test-mysite\index.php(8): mysqli->__construct() #1 {main} thrown in C:\OSPanel\domains\test-mysite\index.php on line 8 У меня такой код ошибки , не пробрасывает ошибку $connection = new mysqli($host, $user, $password, $data);
if ($connection->connect_errno) die('Error connection');
OPen server use
HELP Братья разрабі
Как это настроить?