Объектно-ориентированный язык сценариев php, страница 24

Сразу после создания функции идет инструкция if, в задачу которой входит следующее. Если переменная $surname и (and) переменная $email и переменная $tel не являются пустыми (!= "") строками (то есть вы заполнили все три поля для ввода информации), нужно передать их функции add_data() в качестве аргументов и вывести информационное сообщение, повествующее о том, какие данные добавлены в базу. Если хотя бы одна из этих переменных содержит пустую строку (например, кто-то забыл ввести фамилию или телефон), выводится предупреждающая строчка, данные в базу не добавляются.

В конце программы имеется HTML-блок, который позволяет вернуться назад на страницу add_user.html с помощью ссылки. Этой ссылка необходима для случая, когда кто-то захочет ввести еще данные.

 

Доступ к информации, содержащейся в базе данных

 

Пора научиться читать информацию из нашей базы данных. Для этого необходимо сделать SQL-запрос типа SELECT. Попробуем вывести все записи из таблицы telephones.

Пример 11.7 Просмотр и вывод всего содержимого таблицы (файл primer11_7.php)

<?php

$p = mysql_connect("имя хоста", "имя пользователя", "пароль");

mysql_select_db("имя базы данны ") or die ("NO BASE!");

$result=mysql_query("select * from telephones ");

for ($i=1; $i<=mysql_num_rows($result); $i++)

{

$row=mysql_fetch_array($result);

// получаем массив с данными одной записи – одного клиента и выводим их построчно

$content= $row['id']."  ".$row['surname']." -".$row['tel']."e-mail: ".$row['email']."<br>";

echo $content;

}

?>

Как обычно, сначала идет подключение к базе данных. Затем, с помощью запроса mysql_query(), считываем в переменную $result все записи из таблицы. Символ * означает «все» (все поля таблицы telephones). Чтобы перебрать все строчки (записи) таблицы нам понадобится цикл for. Количество записей (проходов по циклу) определит функция mysql_num_rows($result). А извлечение значений полей одной записи – функция mysql_fetch_array($result). Последняя функция возвращает ассоциотивный массив текущей записи или FALS, если записей больше не имеется.

Осталось сформировать строку вывода, ее поместим в переменную $content. Обращение к каждому полю нам знакомо по ассоциативным массивам. Теперь имена полей таблицы стали ключами массива $row.

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

 

Пример 11.8 Поиск по фамилии (файл primer11_8.php)

 

<?php

$p = mysql_connect("имя хоста", "имя пользователя","пароль");

mysql_select_db("имя базы данных") or die ("NO BASE!");

$name=$_POST['nam'];

$query = "SELECT surname , tel , email

            FROM telephones

            WHERE surname = '$name'" ;

 

$result = mysql_query($query) or die ("Can't execute");

 

while($mas_info = mysql_fetch_row($result))

foreach($mas_info as $temp)

                  {

                  print "$temp<br>";

                  }

?>

 

<html>

<head>

<title>       Find tel by name </title>

</head>

<body>

      <form method ="POST">

Surname: <input type = "text" name = "nam">

                   <input type = "submit" value = "FIND">

                   </form>                    

</body>

</html>

 

 

Cначала мы подключаемся к нашей базе. Затем формируем текст SQL-запроса, который должен помочь нам по фамилии получить другую информацию. В тексте запроса теперь мы выбираем не все поля (номер записи – id, нам не важен):

 $query = "SELECT surname , tel , email

                  FROM telephones

            WHERE surname = '$name'" ;