Разберем PHP-код файла firstsql.php. Начнем с собственно запроса к таблицам базы данных (БД). $query = "SELECT * FROM `my_sql_table`"; Данный запрос можно расшифровать так: выбрать из таблицы my_sql_table БД все записи из всех полей. Таким образом знак * после слова SELECT означает "выбрать абсолютно все". Итак, запрос сформирован. Теперь его надо выполнить: $res = mysql_query($query); В случае успешного выполнения запроса функция mysql_query() вернет нам идентификатор ресурса $res. Его мы должны передать в качестве параметра в функцию mysql_fetch_array(). Название этой функции говорит само за себя. Т.е. она формирует и выдает массив по выборке из таблицы БД. В случае нашей таблицы массив будет состоять из числа элементов, равных количествам записей (строк) в таблице и содержать значения id, firstname, surname для каждой строки таблицы. Следовательно, следующий код: while($row = mysql_fetch_array($res)) { echo "Номер: ".$row['id']."<br>
"; echo "Имя:".$row['firstname']."<br>
"; echo "Фамилия:".$row['surname']."<br><hr>
"; } можно прокомментировать так: пока введенная нами переменная $row получает не нулевые результаты работы функции mysql_fetch_row следует выдать в броузер значение полей $row['id'], $row['firstname'], $row['surname'] с помощью echo. Если запрос выполнить так: $query = "SELECT firstname FROM `my_sql_table`"; то это будет означать, что из всех строк выбирается только значения поля firstname. Следовательно предыдущий код следует переписать как: $res = mysql_query($query); while($row = mysql_fetch_array($res)) { echo "Имя:".$row['firstname']."<br>
"; } Если Вы хотите выбрать строки таблицы с конкретным значением id где фамилия (surname) будет Петров, то запрос перепишется следующим образом: $query = "SELECT id FROM `my_sql_table` where surname='Петров'"; А вот если потребуется узнать фамилию того, кто находится под номером, к примеру, 5, то запрос будет таким: $query = "SELECT surname FROM `my_sql_table` where id=5"; В этом случае Вы знаете, что результатом запроса будет всего одна строка из таблицы. Т.е. нет смысла организовывать цикл с использованием while. И обработка запроса будет следующей $res = mysql_query($query); $row = mysql_fetch_row($res); echo "Фамилия пятого человека в списке: ".$row[0]."
"; Здесь вместо mysql_fetch_array() мы применили mysql_fetch_row(). Т.е. получить значение поля (или полей) конкретной строки. Поскольку поле у нас было одно - surname - мы можем обратиться к единственному элементу массива $row как $row[0];. Далее мы не будем столь подробно останавливаться на обработке запросов, а будем рассматривать наиболее типичные примеры собственно запросов. |