Вы научились делать сайты , оформлять их , изучили javascript , php ... Установили на свой компьютер XAMPP . Создаёте и проверяете сайты на локальном сервере . Хотите научиться подключить базу данных MySql к своему сайту . В интернете много об этом написано , но в основном это фрагменты программ , отдельные строки . Начинающему трудно в этом разобраться .
Вот я нашёл хороший сайт Website-create.ru Анны Котельниковой . Есть там замечательные статьи : начинаем с этой Создание баз данных , затем Добавление информации в базу данных, затем Вывод информации на веб страницу , затем Изменение информации в базе данных .
1) https://website-create.ru/sozdanie-baz-dannih/
2) https://website-create.ru/vstavka-dannih-mysql/
3) https://website-create.ru/vivod-iz-bazi-mysql/
4) https://website-create.ru/update-mysql/
Там всё чётко и ясно объясняется . Понятно даже новичку . Приводятся и готовые программы . Скопировать вставить себе и ... .
И XAMPP выдаёт ошибку типа :"Fatal error: Uncaught Error: Call to undefined function mysql_connect..." . Или такого типа : Warning: mysqli expects 2 parameters ,1 given in ... или mysqli_select_db expects parameter 1 to be mysqli, string given in ...
Дело в том , что программы написаны на mysql , а xampp требует mysqli .
По крайней мере у меня так ( версия xampp 7.3.2 ; версия MySql 10.1.38-MariaDB ).
Если кому надо я вот разобрался в этом и могу предложить работающие коды .
connect.php :
<?php
$con = mysqli_connect("localhost","anna","12345","new_db");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
}
?>
form.php:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
</head>
<body>
<?php
require 'connect.php';
$first_name = trim($_REQUEST['first_name']);
$last_name = trim($_REQUEST['last_name']);
$email = trim($_REQUEST['email']);
$facebook = trim($_REQUEST['facebook']);
$position = true;
if(preg_match("/^http:\/\/www.facebook.com\//", $facebook))
{$position = false;}
else if(preg_match("/^www.facebook.com\//", $facebook))
{$position = false;
$facebook = "http://" . $facebook;}
else if($position)
{$facebook = "http://www.facebook.com/" . $facebook;}
$insert_sql = "INSERT INTO users (first_name, last_name, email, facebook)" .
"VALUES('{$first_name}', '{$last_name}', '{$email}', '{$facebook}');";
mysqli_query($con,$insert_sql);
echo "<p>Новая запись вставлена в базу!</p>";
?>
</body>
</html>
select_user.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Selected User</title>
</head>
<body>
<?php
require 'scripts/connect.php';
$first_name = trim($_REQUEST['first_name']);
$last_name = trim($_REQUEST['last_name']);
$sql_select = "SELECT * FROM users WHERE first_name='$first_name' && last_name='$last_name'";
$result = mysqli_query($con,$sql_select);
$row = mysqli_fetch_array($result);
if($row)
{
printf("<p>Пользователь: " .$row['first_name'] . " " .$row['last_name'] ."</p>
<p><i>Контактные данные </i>:</p><p>E-mail: " .$row['email'] . "</p><p>Facebook: " .$row['facebook'] . "</p>-------------------------------------------------------<br/>"
);
}
else{echo ("Пользователя с таким именем в базе нет<br/><br/>");}
?>
<a href="search_user.html">Вернуться к поиску</a><br/><br/>
<a href="info_form.html">Добавить пользователя</a></br>
<a href="select_change.php">Редактировать запись базы данных</a><br/>
</body>
</html>
edit.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Вносим изменеиния</title>
</head>
<body>
<?php
require 'scripts/connect.php';
$id = $_REQUEST['user'];
$select_sql = "SELECT * FROM users WHERE id= $id";
$result = mysqli_query($con,$select_sql);
$row = mysqli_fetch_array($result);
printf("<form action='scripts/update.php' method='post' name='forma'>
<fieldset>
<input type='hidden' name='id' value='%s'><br/>
<label for='first_name'>Имя:</label><br/>
<input type='text' name='first_name' size='30' value='%s'><br/>
<label for='last_name'>Фамилия:</label><br/>
<input type='text' name='last_name' size='30' value='%s'><br/>
<label for='email'>Email:</label><br/>
<input type='text' name='email' size='30' value='%s'><br/>
<label for='facebook'>Facebook</label><br/>
<input name='facebook' type='text' size='30' value='%s'>
</fieldset>
<br/>
<fieldset>
<input id='submit' type='submit' value='Редактировать запись'><br/>
</fieldset>
</form>",$row['id'], $row['first_name'], $row['last_name'], $row['email'], $row['facebook']);
?>
<a href="info_form.html">Добавить пользователя</a><br/><br/>
<a href="search_user.html">Вернуться к поиску</a><br/><br/>
<a href="select_change.php">Вернуться к выбору записей для редактирования</a><br/><br/>
</body>
</html>
all-users.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset=utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Selected User</title>
</head>
<body>
<?php
require 'scripts/connect.php';
$sql_select = "SELECT * FROM users";
$result = mysqli_query($con,$sql_select);
$row = mysqli_fetch_array($result);
do
{
printf("<p>Пользователь: " .$row['first_name'] . " " .$row['last_name'] ."</p>
<p><i>Контактные данные</i></p><p>E-mail: " .$row['email'] . "</p><p>Facebook: " .$row['facebook'] . "</p>---------<br/>"
);
}
while($row = mysqli_fetch_array($result));
?>
<a href="search_user.html">Вернуться к поиску</a><br/><br/>
<a href="info_form.html">Добавить пользователя</a>
</body>
</html>
select_change.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css" type="text/css">
<title>Выбор пользователя для редактирования.</title>
</head>
<body>
<form action="edit.php" method="post">
<fieldset>
<?php
require 'scripts/connect.php';
$select_sql = "SELECT id, first_name, last_name FROM users";
$result = mysqli_query($con,$select_sql);
$row = mysqli_fetch_array($result);
do
{
printf("<input type='radio' name='user' value='%s'>%s %s<br/><br/>", $row['id'], $row['first_name'], $row['last_name']);
}
while($row = mysqli_fetch_array($result))
?>
</fieldset>
<fieldset>
<input type="submit" value="Выбрать элемент">
</fieldset>
</form>
<a href="info_form.html">Добавить пользователя</a><br/><br/>
<a href="search_user.html">Вернуться к поиску</a><br/><br/>
</body>
</html>
Здесь только коды которые работают на xampp .
При работе с базами данных MySql возникает проблема с кодировками ,
вместо кириллицы появляются какие то непонятные символы , как говорят кракозябры . Я это исправил таким образом : во первых везде в программах проставил кодировку utf-8 , когда создавал базу данных и таблицы -utf8_general_ci (как все рекомендуют). Но на этом ещё не всё , при просмотре таблиц через phpMyAdmin чтобы кириллица правильно отображалась включил строку на config .my.ini (убрал символ решётки ) как на этих скриншотах
На панели управления xampp нажимаем кнопку Config затем my.ini , находим раздел UTF 8 settings и убираем решётки как на скриншоте ниже .
мне кажется другие одинарные тоже можно убрать , но пока не проверял .
Продолжение можете найти здесь https://zen.me/1tyZIu .
Удачи !