@TechNOIR

PHP+MYSQL как упростить схему получения данных из MySQL?

Добрый день. Постигаю PHP постепенно. Получаю данные путем подключения к MYSQL с разными запросами в разных функция. Может как-то можно ускорить и упростить код? Одним подключением например может.. Спасибо заранее за напутствия..
Схема кода:
spoiler
function allpackets_func($mainports, $con, $db, $date_from, $date_to)
{

$sql = "SELECT SUM(packets) from flow_table where stamp BETWEEN '".$date_from."' AND '".$date_to."'";
$result = mysql_query($sql,$con);
 while($row=mysql_fetch_array($result)){
$allpr = $row['SUM(packets)'];
return $allpr;
echo $allpr;
 }
}
function mainports_func($mainports, $con, $db, $date_from, $date_to)
{
foreach($mainports as $mainport){ 
$sql = "SELECT SUM(bytes) from flow_table where src_port='$mainport' AND stamp BETWEEN '".$date_from."' AND '".$date_to."'";
$result = mysql_query($sql,$con);
 while($row=mysql_fetch_array($result)){
	if ($row[0] > 0)
{
    $mainport_result = $row['SUM(bytes)'];
$main="";
echo $main;
}
else
{
$mainport_result = 0;
$main="";
echo $main;
} 

 }
}
return $main;
}
function outports_func($mainports, $con, $db, $outports, $date_from, $date_to)
{
$sql = "SELECT SUM(bytes) from flow_table where src_port NOT IN ($outports) AND (stamp BETWEEN '".$date_from."' AND '".$date_to."')";
$result = mysql_query($sql,$con);
 while($row=mysql_fetch_array($result)){
$outbr = $row['SUM(bytes)'];
$outb = "";
return $outb;
echo $outb;
 }
  • Вопрос задан
  • 149 просмотров
Пригласить эксперта
Ответы на вопрос 1
OKyJIucT
@OKyJIucT
Sunshine reggae
Есть масса оберток для работы с базой данных, я пользовался вот этой https://github.com/catfan/Medoo если нет необходимости использовать фреймворки с уже готовыми абстракциями для работы с БД.

Это проще, безопасней и наглядней, чем то, что пишете вы. Например, ваша первая функция выглядела бы так
function allpackets_func($database, $date_from, $date_to)
{
	return $database->sum('flow_table', 'packets', ["stamp[<>]" => [$date_from, $date_to]]);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы