Created
February 10, 2017 09:14
-
-
Save mol4anovma/245b1e0063b6accff710286f05763ae7 to your computer and use it in GitHub Desktop.
Вопрос 2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
//Что плохого в каждом из этих двух кусков кода? | |
//Первый: | |
$sql = "SELECT * FROM banners WHERE status_ban != 'Del'"; | |
$result = mysql_query($sql, $con) or die (mysql_error()); | |
$count = mysql_num_rows($result); | |
//Примечание: $result более нигде не используется. | |
//Второй: | |
$sql = "SELECT * FROM articles WHERE status_art!='Del' and id_art=" . $_GET['nId']; | |
$result = mysql_query($sql, $con) or die (mysql_error()); | |
//ПЕРВОЕ: | |
//Функции mysql_query()б mysql_error(), mysql_num_rows() считаются устаревшими в PHP 5.4 и удалены с PHP 5.6 | |
//ВТОРОЕ: | |
//Для определения кол-ва строк в базе данных, удовлетворяющих условию, не стоит получать все строки. | |
//Т.е. запрос может быть такой: | |
$sql = "SELECT COUNT(status_ban) FROM banners WHERE status_ban != 'Del'"; | |
$answer = mysqli_fetch_array(mysqli_query($con, $sql)); | |
$count = (is_array($answer)) ? reset($answer) : null; //Ну или вернуть false | |
//Лучше конечно подсчитать кол-во ID (первичных ключей, они кэшированы в базе), | |
//но я не знаю, есть ли они в данном случае. | |
//Вторая часть кода так же не содержит проверки GET параметра и возвращает неотформатированный вывод из базы | |
//вариант: | |
$sql = "SELECT * FROM articles WHERE status_art != 'Del' and id_art = " . (int)filter_input(INPUT_GET, "nId"); | |
$answer = mysqli_query($sql, $con) or die (mysqli_error()); | |
$result = mysqli_fetch_array($answer); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment