Пример 3
Примеры обработки запросов к базе
query.php
<?
session_start();
?>
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<title>Примеры обработки запросов к базе</title>
</head>
<body>
<h2>Примеры обработки запросов к базе</h2>
<?
# Определяем имя скрипта
$script = $_SERVER["PHP_SELF"];
############################################################################
#############
# #
# Блок 1 # --> Подключение к базе данных
# #
#############
# Определяем основные параметры для работы с базой
$HostName = "localhost";
$UserName = "root";
$Password = "";
$DBName = "Example";
# Подключаемся к серверу MySQL. Если подключение прошло неуспешно - выводим соответствующее сообщение
if(@!mysql_connect($HostName, $UserName, $Password)) {
echo "Не могу соединиться с сервером MySQL!<br>";
echo mysql_error();
exit;
}
# Выбираем нужную для работы базу
@mysql_select_db($DBName) or exit("Нет такой базы");
# Указываем кодировку для кириллического текста
mysql_query("SET NAMES 'cp1251'");
# Определяем, существует ли таблица 'murphy'
# Проверку осуществляем с помощью 'пустого' запроса к таблице, после чего анализируем результат
if(!mysql_query("SELECT 1 FROM murphy WHERE 0")){
echo "<p><b>Таблица 'murphy' не существует</b></p>";
echo "<p class=back><a href='admin.php?query=write'>Вам необходимо её создать</a></p>";
}else{
############################################################################
#############
# #
# Блок 2 # --> Вывод формы для ввода запроса к базе
# #
#############
# Если метод запроса к скрипту не равен POST, то выводим форму
$method = $_SERVER['REQUEST_METHOD'];
if($method != "POST"){
$query = (isset($_SESSION['query'])) ? $_SESSION['query'] : "SELECT * FROM murphy WHERE 1";
show_query_examples($query);
} else { # иначе если метод запроса равен 'POST' - обрабатываем запрос
############################################################################
#############
# #
# Блок 3 # --> Обработка запроса - РАБОТА С БАЗОЙ
# #
#############
# Осуществляем поиск в базе с запросом $query, переданным из формы
$query = @$_POST['query'];
if(get_magic_quotes_gpc()) $query = stripslashes($query);
$r = mysql_query($query);
$_SESSION['query'] = $query;
# Вывод результата поиска
echo "<p><a href='$script' class='back'>назад</a></p>\n";
echo "<p> </p>\n";
echo "<p><b>запрос:</b> <span style='color: #0000CC;'>$query</span></p>\n";
echo "<p> </p>\n";
if ($f = mysql_fetch_array($r)) { # Если что-то в базе нашли, то:
$number = mysql_num_rows($r); # Определяем количество найденных записей
$result = '';
$s = 1;
do { # перебераем в цикле все найденные записи
$result .= "<span style='color: #0000CC;'><b>$s</b>:</span> ";
if(isset($f[counter])) $result .= "$f[counter] -> ";
if(isset($f[law])) $result .= "$f[law] -> ";
if(isset($f[formula])) $result .= "$f[formula]";
$result .= "\n\n";
$s++;
} while($f = mysql_fetch_array($r)); # перебираем в цикле все найденные записи
echo "<p>В базе найдено записей: $number</p>";
echo "<pre>$result</pre>";
} else {
echo "<h3>извините, ничего не найдено</h3>";
}
}
}
?>
</body>
</html>
<?
function show_query_examples($query) {
global $script;
echo <<<END
<h3 style='margin-bottom: 30px;'>Введите запрос к базе</h3>
<form action='$script' method='post' name='form'>
<p>Запрос <input type='text' name='query' size='80' value='$query'><br> </p>
<p><input type='submit' name='submit' value='Отправить'></p>
</form>
<hr size='1' noshade style='margin: 35px 0;'>
<h3>Примеры запросов</h3>
<ol>
<li style='color: #606060; padding-bottom: 20px;'>Вывод всего содержимого базы<br>
<span class='cursor_hand' style='color: #0000CC;' onclick="form.query.value='SELECT * FROM murphy WHERE 1'; location.href='#top';
document.form.submit.focus();">SELECT * FROM murphy WHERE 1</span></li>
<li style='color: #606060; padding-bottom: 20px;'>Вывод всех полей, у которых <b>counter=5</b><br>
<span class='cursor_hand' style='color: #0000CC;' onclick="form.query.value='SELECT * FROM murphy WHERE counter=5'; location.href='#top';
document.form.submit.focus();">SELECT * FROM murphy WHERE counter=5</span></li>
<li style='color: #606060; padding-bottom: 20px;'>Вывод всех полей, у которых <b>counter<=5</b><br>
<span class='cursor_hand' style='color: #0000CC;' onclick="form.query.value='SELECT * FROM murphy WHERE counter<=5'; location.href='#top';
document.form.submit.focus();">SELECT * FROM murphy WHERE counter<=5</span></li>
<li style='color: #606060; padding-bottom: 20px;'>Вывод всех полей, у которых <b>law ='Принцип IBM'</b><br>
<span class='cursor_hand' style='color: #0000CC;' onclick="form.query.value='SELECT * FROM murphy WHERE law =\'Принцип IBM\''; location.href='#top';
document.form.submit.focus();">SELECT * FROM murphy WHERE law ='Принцип IBM'</span></li>
<li style='color: #606060; padding-bottom: 20px;'>Вывод всех полей, у которых <b>law ='Законы программирования'</b><br>
<span class='cursor_hand' style='color: #0000CC;' onclick="form.query.value='SELECT * FROM murphy WHERE law=\'Законы программирования\''; location.href='#top';
document.form.submit.focus();">SELECT * FROM murphy WHERE law='Законы программирования'</span></li>
<li style='color: #606060; padding-bottom: 20px;'>Вывод всех полей, у которых <b>counter=12</b>, а также <b>law='Законы программирования'</b><br>
<span class='cursor_hand' style='color: #0000CC;' onclick="form.query.value='SELECT * FROM murphy WHERE counter=12 && law=\'Законы программирования\''; location.href='#top';
document.form.submit.focus();">SELECT * FROM murphy WHERE counter=12 && law='Законы программирования'</span></li>
<li style='color: #606060; padding-bottom: 20px;'>Вывод только поля <b>formula</b>, у которого <b>law ='Законы программирования'</b><br>
<span class='cursor_hand' style='color: #0000CC;' onclick="form.query.value='SELECT formula FROM murphy WHERE law=\'Законы программирования\''; location.href='#top';
document.form.submit.focus();">SELECT formula FROM murphy WHERE law='Законы программирования'</span></li>
<li style='color: #606060; padding-bottom: 20px;'>Вывод всех полей, удовлетворяющих заданному условию и ограниченных указанным диапазоном<br>
<span class='cursor_hand' style='color: #0000CC;' onclick="form.query.value='SELECT * FROM murphy WHERE 1 LIMIT 5, 10'; location.href='#top';
document.form.submit.focus();">SELECT * FROM murphy WHERE 1 LIMIT 5, 10</span></li>
<li style='color: #606060; padding-bottom: 20px;'>Сортировка по полю 'law' (по возрастанию)<br>
<span class='cursor_hand' style='color: #0000CC;' onclick="form.query.value='SELECT * FROM murphy WHERE 1 ORDER BY law'; location.href='#top';
document.form.submit.focus();">SELECT * FROM murphy WHERE 1 ORDER BY law</span></li>
<li style='color: #606060; padding-bottom: 20px;'>Сортировка по полю 'law' (по убыванию)<br>
<span class='cursor_hand' style='color: #0000CC;' onclick="form.query.value='SELECT * FROM murphy WHERE 1 ORDER BY law DESC'; location.href='#top';
document.form.submit.focus();">SELECT * FROM murphy WHERE 1 ORDER BY law DESC</span></li>
<li style='color: #606060; padding-bottom: 20px;'>Сортировка по полю 'law' (по убыванию), вывод полей в заданном диапазоне<br>
<span class='cursor_hand' style='color: #0000CC;' onclick="form.query.value='SELECT * FROM murphy WHERE 1 ORDER BY law DESC LIMIT 5, 10'; location.href='#top';
document.form.submit.focus();">SELECT * FROM murphy WHERE 1 ORDER BY law DESC LIMIT 5, 10</span></li>
<li style='color: #606060; padding-bottom: 20px;'>Поиск по фрагменту<br>
<span class='cursor_hand' style='color: #0000CC;' onclick="form.query.value='SELECT * FROM murphy WHERE law LIKE \'%Закон%\''; location.href='#top';
document.form.submit.focus();">SELECT * FROM murphy WHERE law LIKE '%Закон%'</span></li>
<li style='color: #606060; padding-bottom: 20px;'>Поиск по фрагменту<br>
<span class='cursor_hand' style='color: #0000CC;' onclick="form.query.value='SELECT * FROM murphy WHERE law NOT LIKE \'%Закон%\''; location.href='#top';
document.form.submit.focus();">SELECT * FROM murphy WHERE law NOT LIKE '%Закон%'</span></li>
<li style='color: #606060; padding-bottom: 20px;'>Получение уникальных значений столбцов<br>
<span class='cursor_hand' style='color: #0000CC;' onclick="form.query.value='SELECT DISTINCT law FROM murphy WHERE 1'; location.href='#top';
document.form.submit.focus();">SELECT DISTINCT law FROM murphy WHERE 1</span></li>
</ol>
END;
}
?>