Создание таблицы mysql через php. Как вывести данные из MySQL – руководство для не шаманов. Что можно сделать по сложнее

  • 20.02.2024

Откройте базу данных. Для создания таблицы вам необходимо иметь базу данных, которая будет ее содержать. Вы можете открыть базу данных, набрав USE database в командной строке MySQL.

  • Если вы не помните имя базы данных, наберите SHOW DATABASES , чтобы вывести список баз данных на сервере MySQL.
  • Если у вас пока нет базы данных, вы можете ее создать, набрав CREATE DATABASE . Имя базы данных не может содержать пробелы.

Изучите основные типы данных. Каждая запись в таблице сохраняется как определенный тип данных. Это позволяет MySQL взаимодействовать с ними различными способами. Типы данных, которые вы будете использовать, зависят от назначения вашей таблицы. Есть много типов кроме нижеперечисленных, но вы можете их использовать для создания базовой, пригодной для использования таблицы:

Создайте таблицу. Чтобы создать таблицу из командной строки, вам нужно создать все поля с помощью одной команды. Вы создаете таблицы, используя команду CREATE TABLE с последующей информацией о таблице. Чтобы создать базовую запись о сотруднике, вам нужно ввести следующую команду:

CREATE TABLE employees (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT , lastname VARCHAR (20 ) , firstname VARCHAR (20 ) , phone VARCHAR (20 ) , dateofbirth DATE )

  • INT NOT NULL PRIMARY KEY AUTO_INCREMENT создает числовой идентификатор для каждого работника, который добавляется в запись. Это число каждый раз автоматически увеличивается. Это позволяет вам легко ссылаться на сотрудников с помощью других функций.
  • Хотя VARCHAR позволяет уменьшать размер в зависимости от введенных данных, вы можете установить максимум для него, чтобы пользователь не мог ввести слишком длинные строки. В приведенном выше примере имя и фамилия ограничены 20-ю символами.
  • Заметьте, что запись о телефонном номере хранится как VARCHAR, поэтому символы тоже обрабатываются корректно.
  • Проверьте, что ваша таблица была создана правильно. Как только вы создадите таблицу, вы получите сообщение, что она была успешно создана. Теперь вы можете использовать команду DESCRIBE , чтобы убедиться, что вы включили все поля, что хотели, и что у них правильные типы данных. Наберите DESCRIBE database; и посмотрите на появившийся график, чтобы проверить структуру вашей таблицы.

    Создайте таблицу с использованием PHP. Если вы используете PHP для администрирования вашей базы данных MySQL через веб-сервер, вы можете создать таблицу, используя простой PHP-файл. Предполагается, что база данных уже существует на сервере MySQL. Для создания такой же таблицы, как и в Шаге 3, введите следующий код, заменив информацию о соединении на актуальную для вас:

    "Failed to connect to MySQL: " . mysqli_connect_error () ; } $sql = "CREATE TABLE employees (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, lastname VARCHAR(20), firstname VARCHAR(20), phone VARCHAR(20), dateofbirth DATE)" ; if (mysqli_query ($connection , $sql ) ) { echo "Table employees created successfully" ; } else { echo "Error creating table: " . mysqli_error ($connection ) ; } ?>

    В отдельных статьях расписаны другие основы работы с базами данных и не только MySQL.

    Создание таблицы MySQL через PHP и другие подробности

    Теперь рассказываю более подробно для любознательных, где и что куда совать.

    Итак, давайте создадим простенькую таблицу, чтобы было легче понимать материал без лишнего фанатизма и умных слов. Ниже приведен скрипт, который легко можно выполнить в закладке SQL панели управления phpmyadmin, для этого достаточно всего лишь скопировать текст и нажать кнопку выполнить:

    CREATE TABLE `base_name`.`table_name` (`id` INT NULL AUTO_INCREMENT COMMENT "ID номер записи", `text_` VARCHAR(500) NULL COMMENT "Текстовое поле", PRIMARY KEY (`id`)) ENGINE=MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT="Экспериментальная таблица";

    Теперь в нашей базе данных (БД) есть таблица с именем `table_name`

    Несколько важных замечаний.

    • Возьмите в привычку сразу заполнять комментарии к полям, это позволит вам выработать привычку комментирования и впоследствии не будет проблем при разработке больших и динамических полей, так как я сомневаюсь в том, что в вы наизусть будете помнить 10 тысяч полей и для чего и на кой каждое поле нужно.
    • Забудьте про все ранее существующие кодировки и работайте только в UTF. перед остальными очевидны, читайте информацию по ссылке.
    • Все поля пишите либо только маленькими, либо только большими буквами. К сожалению PHP придирчив к регистру и в случае, если регистр будет скакать, то многие скрипты и поля могут не выводиться у вас, либо выводиться, но не корректно.

    Вот как будет выглядеть уже совсем готовый код HTML страницы:

    Запись id=".$row["id"].". Текст: ".$row["text_"]."

    "; }// /while ?>

    Проблема с UTF-8 кодировкой

    Как показала статистика, это настолько популярная проблема, что я решил вывести ее в отдельную главу. Но на самом деле нет никаких проблем, только сразу после процедуры соединения с базой данных добавьте три строчки, выделенные внизу, отвечающие за переключение кодировки выводимых результатов, вот пример:

    // установка связи с сервером (@ подавление возможных ошибок) @mysql_connect($sdd_db_host,$sdd_db_user,$sdd_db_pass); // переключение на нужную базу данных @mysql_select_db($sdd_db_name); // установка кодировки, при помощи которой отправляются данные от PHP скрипта в MySQL @mysql_query("set character_set_client="utf8""); // установка кодировки, в которой выдаются данные от БД MySQL в PHP скрипт @mysql_query("set character_set_results="utf8""); // установка кодировки, в которой будут посылаться служебные команды для сервера @mysql_query("set collation_connection="utf8_general_ci"");

    Многие употребляют строчку:

    Mysql_query("set NAMES utf8");

    Это действует, но в следующих версиях MySQL данный вызов будет отменен. Об этом заявлено на сайте MySQL, поэтому крайне не рекомендуется использовать данную форму переключения кодировки.

    Если вы совсем потеряли рассудок и решили вернуться к программированию в 90 годы и мертвую кодировку cp1251 считаете своим идеалом то, просто замените UTF на соответствующие значения cp1251 и cp1251_general_ci .

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

    Основные проблемы и хитрости работы с таблицами в MySQL через PHP

    Вот некоторые хитрости которые также часто возникают у новичков:

    Зачем нужен знак @ перед командами mysql?

    Этот знак подавляет вывод информации об ошибках на движке. Так как статья для новичков, то до корректной вы дойдете еще не скоро, поэтому чтобы вас не грузить морем лишней информации и ни что не отвлекало я ставлю этот знак.

    Что можно сделать по сложнее?

    По сложнее есть целый на этом сайте и также расписаны основные и самые распространенные , которых для началу на первых год изучения вам вполне будет достаточно на все ваши нужды.

    Спасибо diego_lott26 за указание ошибки в коде.

    В предыдущем уроке мы узнали, как создать соединение с сервером БД. Следующий шаг - создание БД и таблиц.

    Рассмотрим два способа создания БД и таблиц. Первый, как это делается в PHP, второй - с помощью более дружественной утилиты PhpMyAdmin, которая является стандартной на большинстве вэб-хостов и в XAMPP.

    Если у вас на хосте есть сайт с поддержкой PHP и MySQL, БД, возможно, уже создана для вас, и вы можете пропустить это раздел урока и начать создавать таблицы. Не забывайте консультироваться со страницами помощи хоста.

    Создание БД и таблиц с помощью PHP

    Функция mysql_query используется для отправки запроса БД MySQL. Запросы записываются на языке S tructured Q uery L anguage (SQL). SQL - наиболее широко распространённый язык запросов БД - не только для БД MySQL - он очень логичен и прост для изучения. В этом и следующем уроках вы узнаете всё самое важное о SQL-запросах.

    При создании БД используется SQL-запрос CREATE DATABASE с таким синтаксисом:

    CREATE DATABASE имя БД

    Легко и просто, не так ли!? Попробуем вставить это в PHP-скрипт:

    Mysql_connect("mysql.myhost.com", "user", "sesame") or die(mysql_error()); mysql_query("CREATE DATABASE mydatabase") or die(mysql_error()); mysql_close();

    Сначала соединяемся с MySQL-сервером. Затем создаём БД "mydatabase". И наконец - закрываем соединение с MySQL-сервером.

    Пока неплохо... но всё несколько усложняется, когда мы хотим создать таблицы в PHP. При создании таблиц мы используем SQL-запрос CREATE TABLE с таким синтаксисом:

    CREATE TABLE имя таблицы (имя_столбца1 ТИП_ДАННЫХ, имя_столбца2 ТИП_ДАННЫХ, имя_столбца3 ТИП_ДАННЫХ, ...)

    имя_таблицы и имя_столбца это, понятное дело, соответствующие имена. ТИП_ДАННЫХ используется для специфицирования типа данных, вставляемых в столбец. Вот наиболее распространённые типы:

    Целые числа Десятичные числа Краткий текст до 255 символов длиной Обычный текст до 65,535 символов Длинные куски текста до 4,294,967,295 символов Даты в формате ГГГГ-MM-ДД Время в формате ЧЧ:MM:СС Время и дата в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС

    В целом логично и относительно просто. Попробуем вставить это в наш пример:

    Mysql_connect("mysql.myhost.com", "user", "sesame") or die(mysql_error()); mysql_select_db("people") or die(mysql_error()); mysql_query("CREATE TABLE MyTable (id INT AUTO_INCREMENT, FirstName CHAR, LastName CHAR, Phone INT, BirthDate DATE PRIMARY KEY(id))") Or die(mysql_error()); mysql_close ();

    В этом примере мы начинаем с соединения с MySQL-сервером. Затем используем функцию для выбора БД "people". Далее создаём таблицу "persons" из 5 столбцов.

    Обратите внимание, что для столбца "id" мы используем для специфицирования того, что столбец содержит числа, а затем добавляем для автоматического инкремента этих чисел и гарантирования тог, что для каждого ряда будет сгенерирован уникальный ID.

    В конце мы используем для установки столбца "id" как первичного ключа/primary key. Первичный ключ уникально идентифицирует каждую запись (/ряд) в таблице, что особенно пригодится при последующих обновлениях БД.

    Создание БД и таблиц с использованием phpMyAdmin

    Бывает полезно иметь возможность создавать БД и таблицы напрямую в PHP. Но часто проще использовать phpMyAdmin (или любую иную утилиту администрирования MySQL), которая является стандартной на большинстве вэб-хостов и в XAMPP. Скриншот ниже показывает, как создавать БД и таблицы с применением phpMyAdmin.

    В виде таблицы. Например, все позиции вашего прайса в магазине, цены, наименование товара и так далее. Да и много чего. Потому что это нужно практически ежедневно. Сейчас не будем говорить о том, что для профессионалов это уже старая избитая тема. Это статья только для начинающих веб программистов.

    Так как же сделать таблицу на странице сайта используя php ?

    Таблицу, обычно выводят, используя достаточно известную функцию while или for. Профессионалы используют уже готовые скрипты или функции, где просто меняют несколько переменных и файлы, отвечающие за дизайн. Для начинающих скажу, чтобы понять как все работает мы рассмотрим небольшой скрипт чуть ниже. А сейчас немного теории как все работает.

    Атрибут ORDER by `id` DESC означает что мы сортируем всех пользователей по убыванию id пользователей. То есть вверху будут максимальное значение id. А если в конце указать вместо атрибута desc указать asc. То сортировка по id будет в противоположную сторону, то есть по возрастанию и вверху будет самое меньшее значение по id.

    Полученный запрос обрабатываем функцией mysql_fetch_array. Она достаточно универсальная потому что возвращает ассоциативный массив с двумя индексами с численными индексами и индексами по значению таблиц.
    Вместо этогй функции многие используют запрос mysql_fetch_assoc который возвращает массив только с индексами по значению таблиц в базе данных.

    Далее все помещаем в один массив $mass и выводим в цикле while по индексу значения таблиц. А поскольку мы выводим все значения в виде таблицы пишем функцию вывода заначений echo ‘(начало строки)(ячейка, квадрат)$mass[‘id’](переменная по индексу значения таблицы id)(закрывающий тег ячейки)(следующая ячейка, квадрат)$mass[‘mail’](закрывающий тег ячейки)… (закрывающий тег строки).

    После закрывающей фигурной скобки, который показывает закрытие цикла while выводим закрывающий тег таблицы.

    А вот, и сам пример скрипта

    Пример скрипта авторизации

    `; echo ``; } ?>
    ID LOGIN MAIL Дата регистрации
    `.$id.` `.$login.` `.$mail.` `.$reg_time.`

    А здесь можно скачать и посмотреть наглядно как все работает на странице. Следует иметь в виду путь к файлу конфигурации в вашем варианте может быть другим.Это напрямую зависит куда вы поместите сам файл конфигурации для всего сайта. Для наглядности файл конфигурации вы найдете в zip-архиве.

    Сегодня мы рассмотрели, как работает скрипт для вывода таблицы на php. Скажу сразу, что это всего лишь пример, чтобы иметь представление как все работает. Мы не стали рассматривать как сделать дизайн таблицы, прописать , изменить заголовок таблицы. Думаю, если вы изучили или изучите в будущем CSS, вам абсолютно не трудно будет это сделать самому.