Web-программирование и базы данных. Учебный практикум
.pdf
Упражнение 2.21. Случайное выделение ячейки из таблицы
<html>
<head> <title>заголовок</title> </head>
<body>
вывод динамически таблицы из одной колонки <br> с помощью оператора цикла for... <br>
случайное выделение ячейки с помощью функции rand <br> <br>
<?php //Задание
//попробуйте работу //измените программу, так чтобы она
//окрашивала зеленым цветом случайную ячейку //(сейчас она окрашивает первую)
//сохраните и попробуйте работу
echo “<table cellspacing=’3’bordercolor=’#000000’border=’1’>” ; //$k=rand(1,10);
for ($i = 1; $i <= 10; $i++) { echo “<tr bgcolor=’#99FF99’>”; if ($i==1) {
}
echo “<td>”;
else
{
echo “<td bgcolor=’#999999’>”;
}echo $i; echo “</td>”; echo “</tr>”;
}
echo(«</table>»)
?>
</body>
</html>
Вупражнении необходимо генерировать HTML-таблицу
свыделением случайной ячейки цветом. Для получения случайного номера строки выделяемой ячейки нужно использовать функцию rand.
61
Упражнение2.22.Случайноевыделениедвухячеекизтаблицы
<html>
<head> <title>заголовок</title> </head>
<body>
вывод динамически таблицы из одной колонки <br> с помощью оператора цикла for... <br>
случайное выделение ячейки с помощью функции rand <br> <br>
<?php //Задание
//попробуйте работу //измените программу, так чтобы она
//окрашивала зеленым цветом две случайные ячейки //(сейчас она окрашивает первые две ячейки) //сохраните и попробуйте работу
echo “<table cellspacing=’3’bordercolor=’#000000’border=’1’>” ; //$k=rand(1,10);
//$m=rand(1,10);
for ($i = 1; $i <= 10; $i++) { echo “<tr bgcolor=’#99FF99’>”;
if (($i==1 )||($i==2 )) { // логическое ИЛИ echo “<td bgcolor=’#999999’>”;
}
echo “<td >”;
echo $i; echo “</td>”; echo “</tr>”;
}
echo(“</table>”)
?>
</body>
</html>
Вупражнении необходимо генерировать HTML-таблицу
свыделением двух случайных ячеек цветом. Для получения номера строки выделяемой ячейки нужно использовать функ-
цию rand.
Упражнение знакомит с использованием логической операции || (логическое ИЛИ).
62
Упражнение 2.23. Вывод динамически таблицы из нескольких столбцов
<html>
<head> <title>заголовок</title> </head>
<body>
вывод динамически таблицы из нескольких столбцов
с помощью оператора цикла for...
<br>
<?php //Задание
//попробуйте работу //измените программу, так чтобы она выводила 3 строки и 2 столбца //сохраните и попробуйте работу
echo “<table cellspacing=’3’bordercolor=’#000000’border=’1’>” ; for ($i = 1; $i <= 6; $i++) {
echo “<tr bgcolor=’#99FF99’>”; for ($j = 1; $j <= 4; $j++) { echo “<td>”;
}
echo $i.’.’.$j; echo “</td>”;
}
echo “</tr>”;
echo(“</table>”)
?>
</body>
</html>
Это упражнение показывает, как можно генерировать HTML-таблицу из двух столбцов.
В каждую ячейку таблицы записывается соответствующий номер строки и столбца.
63
Упражнение 2.24. Вывод динамически таблицы из одной колонки с переключением цвета ячеек по строкам
<html>
<head> <title>заголовок</title> </head>
<body>
вывод динамически таблицы из одной колонки
с помощью оператора цикла for... с переключением цвета ячеек
<br>
<?php //Задание
//попробуйте работу //измените программу, так чтобы она использовала другие цвета //сохраните и попробуйте работу
$flag=true;
echo “<table cellspacing=’3’bordercolor=’#000000’border=’1’>” ; for ($i = 1; $i <= 10; $i++) {
if ($flag){
}
echo “<tr bgcolor=’#999999’>”;
{
else
}
echo “<tr bgcolor=’#99FF99’>”;
}
$flag=!$flag; echo “<td>”; echo $i; echo “</td>”; echo “</tr>”;
echo(“</table>”)
?>
</body>
</html>
Это упражнение показывает, как можно генерировать HTML-таблицу из одной колонки с переключением цвета строк. Этот прием полезен для легкости чтения данных и придания красоты большой таблице.
Упражнение показывает, как работать с логическими переменными на примере работы с логической переменной $flag.
64
Упражнение 2.25. Вывод динамически таблицы из нескольких столбцов с переключением цвета столбцов
<html>
<head> <title>заголовок</title> </head>
<body>
вывод динамически таблицы из нескольких столбцов <br>
с помощью оператора цикла for... с переключением цвета ячеек <br> внутри столбца должен быть один цвет <br>
<br>
<?php //Задание
//попробуйте работу //измените программу, чтобы внутри столбца был один цвет
//для этого перед входом во внутренний цикл должно быть восстановление $flag
//сохраните и попробуйте работу $flag=true;
echo “<table cellspacing=’3’bordercolor=’#000000’border=’1’>” ; for ($i = 1; $i <= 10; $i++) {
echo “<tr>”;
for ($j = 1; $j <= 5; $j++) {
if ($flag){echo “<td bgcolor=’#999999’>”;
}
else
{
echo “<td bgcolor=’#99FF99’>”;
}
$}flag=!$flag; echo $i.‘.‘.$j; echo “</td>”;
}
echo “</tr>”;
echo(“</table>”)
?>
</body>
</html>
Это упражнение показывает, как можно генерировать HTMLтаблицу из нескольких столбцов с переключением цвета столбцов.
65
Упражнение 2.26. Описание массивов с помощью array
<html>
<head>
<title>array</title>
</head>
<body>
работа с массивом <br /> <?php
//ЗАДАНИЕ //Запишите в описании массива 5 фамилий
//однокурсников из вашей группы; //поместите вашу фамилию первой
//$fams = array(«Иванов», «Петров», «Сидоров»);
//Вывод целиком массива в отформатированном виде
//тег <PRE> используется, чтобы не пропадало внутреннее форматирование, // (пробелы, новые строки и символы табуляции)
//
echo “<pre>”; print_r($fams) ; echo «</pre>»; ?>
</body>
</html>
Это упражнение показывает, как можно описывать массивы и выводить их содержимое целиком с помощью функции print_r. Обратите внимание на необходимость вставки тега
HTML <pre>.
66
Упражнение 2.27. Использование конструкции list для разбора элементов массива по переменным
<html>
<head>
<title>array</title>
</head>
<body>
работа с массивом <br /> <?php
//ЗАДАНИЕ //Запишите в описании массива 5 фамилий
//однокурсников из вашей группы; //(поместите вашу фамилию первой)
//Выведите их с помощью echo, используя новые переменные //конструкции list
$fams = array(«Иванов», «Петров», «Сидоров», «Павлов», «Инин»); list($f, $ff, $fff, $ffff, $fffff)=$fams;
echo $f,”<br />”; echo $ff,”<br />”; echo $fff,”<br />”; echo $fffff,”<br />”; echo $fffff,”<br />”;
?>
</body>
</html>
Если необходимо обеспечить отдельный доступ к элементам массива, то можно использовать функцию list.
Вэтомупражнениимассивразбираетсяпоотдельнымпеременным, которые затем выводятся с помощью функции echo.
67
Упражнение 2.28. Работа с массивом без использования конструкции array()
<html>
<head>
<title>array</title>
</head>
<body>
работа с массивом <br />
без использования конструкции array() <br /> <?php
//ЗАДАНИЕ //Запишите в описании массива фамилии 5 фамилий
//однокурсников из вашей группы; //поместите вашу фамилию первой
//
$fams[] = «Иванов»; $fams[] = «Петров»; $fams[] = «Сидоров»;
echo «<pre>»;
print_r($fams) ; //Вывод целиком массива в отформатированном виде echo «</pre>»;
?>
</body>
</html>
Можно не описывать массив с помощью конструкции array(). В этом упражнении массив создается автоматически при присвоении начального элемента (необходимо после переменной указать квадратные скобки). Аналогично присваиваются и остальные элементы, причем это можно сделать в другом месте программы, так как это отдельные операторы.
68
Упражнение 2.29. Явное указание индексов при заполнении массива
<html>
<head>
<title>array</title>
</head>
<body>
работа с массивом <br />
явное указание индексов при заполнении массива <br /> <?php
//ЗАДАНИЕ //присвойте элементам массива 5 фамилий
//однокурсников из вашей группы; //поместите вашу фамилию первой
//
$fams[2] = «Иванов»; $fams[0] = «Петров»; $fams[1] = «Сидоров»;
echo “<pre>”; print_r($fams) ; echo «</pre>»; ?>
</body>
</html>
При первичном присвоении элементов массива или при извлечении отдельных элементов можно использовать индексы (номера) элементов. Индексация начинается с нуля. Присвоение и извлечение элементов может происходить в любом порядке.
69
Упражнение 2.30. Возможность для переменной принимать значения различного типа
<html>
<head>
<title></title>
</head>
Метаморфозы переменной <br /> <br />
Переменная может принимать значения различного типа <br /> Для определения типа переменной <br />
можно использовать функцию gettype <br /> ЗАДАНИЕ: <br />
Попробуйте работу программы <br />
Поочередно добавляйте вывод типа переменной <br /> после каждого нового присваивания, <br />
как это сделано для целого числа (integer) <br /> <br />
<body>
<?php
$z=1; //целое (integer) echo gettype($z),” <br />”;
$z=1.3; $z=”one”; $z=true; $z=false;
$z=“1“;
settype($z, „integer“);
$z=1;
settype($z, „string“); $z[0]=“0-й элемент массива“
?>
</body>
</html>
Переменные или элементы массива на протяжении работы программы могут менять тип. Например, переменная для хранения чисел может стать переменной для хранения текста. Бывает полезно определять текущий тип переменной с помощью функции gettype.
70
