kudraem
Новичок
Здравствуйте, я начинающий программист. Знакомый попросил написать скрипт для его интернет магазина. Написал. Данный скрипт предназначен для вывода списка товаров из базы данных в зависимости от того,
как отличается цена, по которой товар продается пользователям интернет магазина (продажная цена), от той, по которой товар закупается магазином (оптовая цена). При этом пользователь данного скрипта вводит значения в процентах. Процент может быть так же отрицательным, что означает вывод товаров, которые продаются в убыток, т.е. оптовая цена выше, чем продажная.
Код работает.
Очень прошу посмотреть и оценить бывалых php программистов. Оцените, пожалуйста с функциональной точки зрения и с точки зрения стиля написания. Просто очень боюсь стать или быть генератором говнокода.
Заранее всем спасибо.
Вот этот скрипт:
как отличается цена, по которой товар продается пользователям интернет магазина (продажная цена), от той, по которой товар закупается магазином (оптовая цена). При этом пользователь данного скрипта вводит значения в процентах. Процент может быть так же отрицательным, что означает вывод товаров, которые продаются в убыток, т.е. оптовая цена выше, чем продажная.
Код работает.
Очень прошу посмотреть и оценить бывалых php программистов. Оцените, пожалуйста с функциональной точки зрения и с точки зрения стиля написания. Просто очень боюсь стать или быть генератором говнокода.
Заранее всем спасибо.
Вот этот скрипт:
PHP:
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<title>Администрирование цен</title>
<link href="http://bootstrap.veliovgroup.com/assets/css/bootstrap.css" rel="stylesheet" />
<link href="http://bootstrap.veliovgroup.com/assets/css/bootstrap-responsive.css" rel="stylesheet" />
<style>
.font {
font-size: 1.5em;
}
.butt {
margin-top: 16px;
margin-left: 14%;
}
</style>
</head>
<body>
<form method='GET' class="well form-inline">
<span class='font'>от: </span><input type='text' name='from' style='width: 4%; height: 4%; font-size: 1.4em;'/><span class='font'> до: </span><input type='text' name='to' style='width: 4%; height: 4%; font-size: 1.4em;'/>
<br/>
<input type='submit' class='btn btn-success btn-large butt' value='Вывести список'/>
</form>
<?php
/*
Данный скрипт предназначен для вывода списка товаров из базы данных в зависимости от того,
как отличается цена, по которой товар продается пользователям интернет магазина (продажная цена),
от той, по которой товар закупается магазином (оптовая цена). При этом пользователь данного
скрипта вводит значения в процентах. Процент может быть так же отрицательным, что означает вывод
товаров, которые продаются в убыток, т.е. оптовая цена выше, чем продажная.
*/
function diff($from, $to, $from_minus, $to_minus, $price, $opt_price) {
$min = ($opt_price / 100) * $from; // минимальное значение, с которой цена может отличаться
$max = ($opt_price / 100) * $to; // // максимальное значение, с которой цена может отличаться
//
if($from_minus AND $to_minus) {
$difference = $opt_price - $price;
}
elseif(!($from_minus) AND !($to_minus)) {
$difference = $price - $opt_price;
}
elseif ($from_minus AND !($to_minus)) {
$difference = $price - $opt_price;
$difference_negative = $opt_price - $price;
}
if(isset($difference_negative)) {
if($min <= $difference_negative) return $difference_negative;
elseif($max >= $difference) return $difference;
else return 0;
}
else {
if(($min <= $difference) AND ($max >= $difference)) return $difference;
else return 0;
}
}
if(($_GET['from']!='') AND ($_GET['to']!='')) {
$from = $_GET['from'];
$to = $_GET['to'];
// проверка значения переменнных на отрицательное значение
if($from < 0) $from_minus = 1;
else $from_minus = 0;
if($to < 0) $to_minus = 1;
else $to_minus = 0;
if (preg_match('/\d+/', $from, $arr)) $from = $arr[0];
if (preg_match('/\d+/', $to, $arr)) $to = $arr[0];
$db_hostname = '';
$db_database = '';
$db_username = '';
$db_password = '';
$db_server = mysql_connect($db_hostname, $db_username, $db_password);
if(!$db_server)die('Error connection' . mysql_error());
mysql_select_db($db_database) or die("Error DB access" . mysql_error());
mysql_query("SET NAMES utf8");
// запрос для вывода всех товаров из ИМ
$query = "SELECT Price, Price_opt, product_code_hid, name_ru FROM SC_products WHERE pr_1=1 OR pr_2=1";
$result = mysql_query($query);
$rows = mysql_num_rows($result);
for($c=0; $c<$rows; $c++) {
$row = mysql_fetch_row($result);
$price = $row[0]; // цена закупки товара
$opt_price = $row[1]; // цена продажи товара
$diff_result = diff($from, $to, $from_minus, $to_minus, $price, $opt_price);
if($diff_result) {
// формируем массив с необходимыми товарами для последующего вывода
$products[]['name'] = $row[3];
$key = count($products)-1;
$products[$key]['difference'] = $diff_result;
$products[$key]['sku'] = $row[2];
}
}
echo "<img src='http://telestudia.ru/excel_logo.png' title='Экспортировать в excel' style='width: 35px; height: 35px; margin-left: 97%; padding-bottom: 18px;' onclick=\"document.getElementById('excel').submit()\"/>";
echo "<form id='excel' action='excel_export.php' method='POST'/>";
echo "<table class='table table-striped'>";
echo "<tr><th>Наименование</th><th>Артикул</th><th>Разность</th></tr>";
foreach ($products as $key) {
echo "<input type='hidden' name='products_names[]' value='{$key[name]}' />";
echo "<input type='hidden' name='products_skus[]' value='{$key[sku]}' />";
echo "<input type='hidden' name='products_differences[]' value='{$key[difference]}' />";
echo "<tr><td>{$key[name]}</td><td>{$key[sku]}</td><td>{$key[difference]}</td></tr>";
}
echo "</table>";
echo "</form>";
}
?>
</body>
</html>