- Вывод данных из MySql на PHP
- Извлечь данные из таблицы MySql
- mysqli_connect
- mysqli_query
- mysqli_fetch_array
- Вывод переменной врутри строки
- Вывод одной строки из базы
- mysql_result
- Описание
- Список параметров
- Возвращаемые значения
- Примеры
- Примечания
- Смотрите также
- Как вывести конкретную строку из базы данных MySQL?
- Войдите, чтобы написать ответ
- Как экспортировать JSON в MYSQL с помощью языка программирования Python?
Вывод данных из MySql на PHP
Первое, что нам следует сделать для того, чтобы получить данные из таблицы базы данных, — установить соединение с БД.
Извлечь данные из таблицы MySql
После того, как мы установили соединение с БД, c помощью запроса можно получить данные из любой таблицы. А с помощью цикла while их вывести.
Теперь давайте разберем функции, которые мы использовали для вывода данных из MySql.
mysqli_connect
mysqli_connect(, , , ) — устанавливает соединение с базой данных.
mysqli_query
mysqli_query(, ) — выполняет запрос к БД, написанный на языке SQL.
mysqli_fetch_array
mysqli_fetch_array() — поочередно возвращает по одной строке из результата запроса.
Вывод переменной врутри строки
Заметьте, что если вы выводите строку оператором echo и строка заключена в двойные кавычки (именно двойные), то внутрь строки можно вставлять переменные в фигурных скобках и они будут подставленны в этот шаблон. Круто, да?
Понравилась или помогла статья? Самое лучшее, что ты можешь сделать — это поделиться ею в любой из своих соцсетей (даже если ты поделишься в твиттере или google+, которыми ты не пользуешься — это очень поможет развитию моего блога). Спасибо! А если ты еще и оставишь любой комментарий снизу в обсуждениях, то это будет двойное СПАСИБО!
Ссылка на статью на всякий случай:
Крутов Герман © 2009-2023
krutovgerman2007@ya.ru
Я ВКонтате
Вывод одной строки из базы
Подскажите, как вывести из базы на экран одну строку, id строки известен. Как вывести данные всех строк я знаю, а вот с одной строкой проблема. Мы знаем автоматически генерируемый номер (id), получаем его из сессии и сохраняем в переменную $userid. Я делал проверку, номер сохраняется корректно, т.е., с первой частью скриптика проблем нет. А вот после выбора базы я чего то намудрил, помогите разобраться?
Задача, получить данные из строки с таким то id, например выводим все данные, Фамилию, имя пользователя, место работы и т.д. Я сейчас для теста вывел только один столбец (echo $user[‘naziv_doo’], но, понятно, что можно их вывести и больше, мне пока нужно понять как это в принципе сделать.
1 2 3 4 5 6 7 8 9 10 11 12
session_start(); $userid = $_SESSION['id']; $conn = mysql_connect ("localhost", "123", "222"); mysql_select_db("222", $conn); $user = mysql_query('SELECT * FROM 'DOO_1osnivac WHERE id='.$userid'); while ($row = mysql_fetch_assoc($user)) { echo $user['naziv_doo']; } ?>
mysql_result
Данный модуль устарел, начиная с версии PHP 5.5.0, и удалён в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API. Альтернативы для данной функции:
Описание
Возвращает содержимое одного поля из набора результата MySQL.
Работая с большими результатами запросов, следует использовать одну из функций, обрабатывающих сразу целый ряд результата (указаны ниже). Так как эти функции возвращают значение нескольких ячеек сразу, они НАМНОГО быстрее mysql_result() . Кроме того, учтите, что указание численного смещения работает намного быстрее, чем указание колонки, или колонки с таблицей через точку.
Список параметров
Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query() .
Номер получаемого ряда из результата. Нумерация рядов начинается с 0 .
Имя или смещение получаемого поля.
Может быть как смещением поля, именем поля, так и именем поля вместе с таблицей (таблица.поле). Если для поля был указан псевдоним (‘select foo as bar from. ‘), используйте его вместо имени самого поля. Если не указан, возвращается первое поле.
Возвращаемые значения
Содержимое одного поля из набора результата MySQL в случае успешного выполнения, или false в случае возникновения ошибки.
Примеры
Пример #1 Пример использования mysql_result()
$link = mysql_connect ( ‘localhost’ , ‘mysql_user’ , ‘mysql_password’ );
if (! $link ) die( ‘Ошибка соединения: ‘ . mysql_error ());
>
if (! mysql_select_db ( ‘database_name’ )) die( ‘Ошибка выбора базы данных: ‘ . mysql_error ());
>
$result = mysql_query ( ‘SELECT name FROM work.employee’ );
if (! $result ) die( ‘Ошибка выполнения запроса:’ . mysql_error ());
>
echo mysql_result ( $result , 2 ); // выведет имя третьего сотрудника
?php
Примечания
Замечание:
Вызовы функции mysql_result() не должны смешиваться с другими функциями, работающими с результатом запроса.
Смотрите также
- mysql_fetch_row() — Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
- mysql_fetch_array() — Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
- mysql_fetch_assoc() — Возвращает ряд результата запроса в качестве ассоциативного массива
- mysql_fetch_object() — Обрабатывает ряд результата запроса и возвращает объект
Как вывести конкретную строку из базы данных MySQL?
Доброго времени суток !
Я не давно начал изучать MySQL и PHP, поэтому в этих языках еще туплю.
Допустим есть БД с таблицей и такими строками: id, author, text_name
Например:
id | auther | text_name |
1 | Пупкин | Новость 1 |
2 | Федоров | Новость 2 |
3 | Сидоров | Новость 3 |
4 | Иванов | Новость 4 |
На странице идет запрос к БД на вывод таблицы:
$db = mysql_connect ("сервер","название","пароль"); mysql_select_db ("название",$db); mysql_set_charset (utf8); $result = mysql_query ("SELECT author FROM full_text",$db); $myrow = mysql_fetch_array ($result);
Для вывода на странице обычно используется код:
Запрос идет на все строки из пункта author. Чтобы вывести конкретное имя нужно указывать либо конкретный id либо конкретное имя автора. И тут сам вопрос: можно ли сделать так, чтоб шел запрос на все имена из пункта author из таблицы, но чтоб каждое имя можно было-бы вывести на страницу в разных местах кода ? И если можно — то как ?
Заранее спасибо )
$db = new mysqli("сервер","название","пароль", "БД"); $result = $db->query ("SELECT author FROM full_text", MYSQLI_USE_RESULT); while($row = $db->fetch_row())< //Что-то делаем с $row - каждой строкой из таблицы >
Ух, читайте далее учебники, у вас полное непонимание принципов получения данных.
Для того, чтобы все данные получить, нужно запустить mysql_fetch_array в цикле:
while(($row=mysql_fetch_array($result))!==false)
Это выведет поочередно все имена. Если нужно потом в другом месте, можно сделать внутри цикла что-то типа:
$data_arr=array(); while(($row=mysql_fetch_array($result))!==false)
И уже потом использовать данные с $data_arr.
Кроме того:
1) mysql_set_charset(‘utf8’); (это должна быть строка)
2) решите, поле называется author или auther
3) откажитесь от использования библиотеки mysql и переходите на PDO или хотя бы mysqli. Данная библиотека устаревшая, и уже в новых версиях php она не работает.
www.proft.com.ua/2008/11/28/primery-ispolzovaniya-pdo вот краткая статья о PDO, а так — просто погуглите.
$result = mysql_query ("SELECT author FROM full_text",$db);
и есть запрос на все имена из колонки «author»;
Далее
$myrow = mysql_fetch_array ($result);
С каждым вызовом функции mysql_fetch_array() в $myrow помещается очередная строка из выборки, т.е. при первом вызове echo $myrow [‘author’] выведет «Пупкин», затем запрашиваешь следующую строку из выборки
$myrow = mysql_fetch_array ($result);
Теперь при вызове echo $myrow [‘author’] выведет следующее значение, т.е. «Федоров» и т.д.
Это я объяснил, как оно работает вообще.
Чтобы тебе иметь массив, $authors, например, чтобы получать из этого массива имена по порядку, как они идут в базе, то есть $authors[0] => «Пупкин», . , $authors[3] => «Иванов», нужно сделать следующее:
$result = mysql_query ("SELECT author FROM full_text",$db); $authors = array(); while ($row = mysql_fetch_array ($result))
Теперь в массиве $authors все имена авторов из таблицы.