@anonim666

Как вывести конкретную строку из базы данных 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);


Для вывода на странице обычно используется код:

<? echo $myrow ['author']; ?>

Запрос идет на все строки из пункта author. Чтобы вывести конкретное имя нужно указывать либо конкретный id либо конкретное имя автора. И тут сам вопрос: можно ли сделать так, чтоб шел запрос на все имена из пункта author из таблицы, но чтоб каждое имя можно было-бы вывести на страницу в разных местах кода ? И если можно - то как ?
Заранее спасибо )
  • Вопрос задан
  • 21826 просмотров
Пригласить эксперта
Ответы на вопрос 3
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
Используйте mysqli, а не mysql!

$db = new mysqli("сервер","название","пароль", "БД");
   $result = $db->query ("SELECT author FROM full_text", MYSQLI_USE_RESULT);
   while($row = $db->fetch_row()){
       //Что-то делаем с $row - каждой строкой из таблицы
   }
Ответ написан
Akdmeh
@Akdmeh
PHP, Yii2, Music
Ух, читайте далее учебники, у вас полное непонимание принципов получения данных.
Для того, чтобы все данные получить, нужно запустить mysql_fetch_array в цикле:
while(($row=mysql_fetch_array($result))!==false)
{
echo $row['author'];
}

Это выведет поочередно все имена. Если нужно потом в другом месте, можно сделать внутри цикла что-то типа:
$data_arr=array();
while(($row=mysql_fetch_array($result))!==false)
{
$data_arr[]=$row['author'];
}

И уже потом использовать данные с $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[] = $row['author']
}


Теперь в массиве $authors все имена авторов из таблицы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
24 апр. 2024, в 13:10
400000 руб./за проект
24 апр. 2024, в 13:01
5000 руб./за проект
24 апр. 2024, в 13:00
3000 руб./за проект