Подключение к MySQL и вывод данных из базы

Чтобы подключиться к базе данных MySQL нужно прописать в начале файла следующие строки:

$db = mysql_connect("localhost","user","password");
mysql_select_db("example",$db);


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

$resultat = mysql_query("SELECT * FROM spisok",$db);

$array = mysql_fetch_array($resultat);
echo "Имя: ".$array['name']."<br>Возраст: ".$array['age']."<br>Пол: ".$array['sex']."<br><br>";

$array = mysql_fetch_array($resultat);
echo "Имя: ".$array['name']."<br>Возраст: ".$array['age']."<br>Пол: ".$array['sex']."<br><br>";

$array = mysql_fetch_array($resultat);
echo "Имя: ".$array['name']."<br>Возраст: ".$array['age']."<br>Пол: ".$array['sex']."<br><br>";

Теперь рассмотрим, что здесь происходит. Мы сделали запрос к базе данных, который вытащил всю таблицу в виде массива, и занесли в переменную $resultat. (SELECT — выбрать *- все поля FROM — из spisok — таблица из которой берутся записи). Ну чтобы мы могли обратиться к любому из полей, нужно воспользоваться функцией mysql_fetch_array, которая из массива всей таблицы выбирает только первую запись тоже в виде массива и результат помещается в переменную $array. И теперь мы можем обратиться к данным в виде этой переменной с индексом нужного поля. Чтобы вытащить из базы вторую строку, нужно снова обратиться к функции mysql_fetch_array и т.д. Результатом этого скрипта будет вывод на экран трех первых записей. Но такую форму записи некогда не используют, для этого применяют циклы:

$resultat = mysql_query("SELECT * FROM spisok",$db);
$array = mysql_fetch_array($resultat);
do
{
echo "Имя: ".$array['name']."<br>Возраст: ".$array['age']."<br>Пол: ".$array['sex']."<br><br>";
}
while($array = mysql_fetch_array($resultat));

В этом примере мы сделали запрос к базе и в переменную $array занесли первую запись таблицы. С помощью функции echo вывели первую запись. В условия цикла мы снова обращаемся к функции mysql_fetch_array, котроя вытаскивает вторую запись, а поскольку условие выполняется (в базе еще имеются записи), цикл повторяется. Происходит это до тех пор пока в таблице не закончатся записи.

Если же мы хотим вытащить только одну строку, то в таком случае придется воспользоваться условием, которое будет говорить, что вытаскивать из базы нужно только одну строку:

$resultat = mysql_query("SELECT * FROM spisok WHERE id='3'",$db);
//Выберем все поля из таблицы spisok, где id равно 3
$array = mysql_fetch_array($resultat);
echo "Имя: ".$array['name']."<br>Возраст: ".$array['age']."<br>Пол: ".$array['sex'];

В этом случае из базы будет выбрана только та строка, у которой id равно 3. Для этого нам и нужно поле id.

Чтобы мы могли вывести на экран какое-то конкретное поле мы должны сделать запрос к базе так же с условием, но в место звездочки указать те поля, которые нам потребуются:

$resultat = mysql_query("SELECT name FROM spisok WHERE id='3'",$db);
//Выберем поле name из таблицы spisok, где id равно 3 (это Марина)
$array = mysql_fetch_array($resultat);
echo $array['name'];

В переменную $resultat попадает массив, в котором содержатся все поля name из таблицы spisok у которых id равно 3.

Если мы хотим вывести несколько полей, то мы просто перечисляем их через запятую:

$resultat = mysql_query("SELECT name,age FROM spisok WHERE id='3'",$db);
$array = mysql_fetch_array($resultat);

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

Получение списка таблиц базы данных MySQL из PHP

Для листинга таблиц в MySQL имеется специальный запрос SHOW TABLES, — мне лишь остается привести небольшой код, просто выбирающий в массив список таблиц базы данных MySQL:

function get_database_tables()
{
	$ret = array();
	$r = mysql_query("SHOW TABLES");
	if (mysql_num_rows($r)>0)
	{
		while($row = mysql_fetch_array($r, MYSQL_NUM))
		{
			$ret[] = $row[0];
		}
	}
	return $ret;
}

 


Комментарии: