php - 我这里的代码太多了,想缩短这个
问题描述
我想将此代码缩短为函数,也许是一个简单的情况,它只替换“字符串”中的单词。我不想要你可能知道如何缩短的 10,000 行代码。我还要求对我想更好地学习什么PHP
和MySQL
当然,代码有效,但您可以看到它占用了多少空间。
我需要缩短代码settings.php
dbc.php
<?php
$DB_SERVER = 'localhost';
$DB_USERNAME = 'XXXX';
$DB_PASSWORD = 'XXXX';
$dev_db = mysqli_connect($DB_SERVER,$DB_USERNAME,$DB_PASSWORD,'sf');
$easy_db = mysqli_connect($DB_SERVER,$DB_USERNAME,$DB_PASSWORD,'easy');
$medium_db = mysqli_connect($DB_SERVER,$DB_USERNAME,$DB_PASSWORD,'medium');
$hard_db = mysqli_connect($DB_SERVER,$DB_USERNAME,$DB_PASSWORD,'hard');
设置.php
<?php
ini_set("display_errors", 0);
include'dbc.php';
//Fix Znaków
function fixSpecialChars($text)
{
$text = str_replace('/', '$s', $text);
$text = str_replace('http://', 'http:$c$s$', $text);
$text = str_replace('https://', 'https:$c$s$', $text);
$text = str_replace('%40', '@', $text);
return $text;
}
//Czas
$dt = date_timestamp_get(date_create()) - 1800;
$dt24 = date_timestamp_get(date_create()) - 86400;
//Aktywni dev
$dev_res = mysqli_query($dev_db, "SELECT ID, name, usysclass, banned FROM players WHERE poll >= $dt AND poll <= NOW() ORDER BY poll DESC");
$dev_res24 = mysqli_query($dev_db, "SELECT ID, name, usysclass, banned FROM players WHERE poll >= $dt24 AND poll <= NOW() ORDER BY poll DESC");
$dev_uno = mysqli_num_rows($dev_res);
$dev_uno24 = mysqli_num_rows($dev_res24);
$dev_user_counting = mysqli_query($dev_db, "SELECT count(*) as total_count from players");
$dev_user_count = mysqli_fetch_object($dev_user_counting);
$dev_all_acount = $dev_user_count->total_count;
$dev_all = $dev_all_acount + 0;
//Aktywni easy
$easy_res = mysqli_query($easy_db, "SELECT ID, name, usysclass, banned FROM players WHERE poll >= $dt AND poll <= NOW() ORDER BY poll DESC");
$easy_res24 = mysqli_query($easy_db, "SELECT ID, name, usysclass, banned FROM players WHERE poll >= $dt24 AND poll <= NOW() ORDER BY poll DESC");
$easy_uno = mysqli_num_rows($easy_res);
$easy_uno24 = mysqli_num_rows($easy_res24);
$easy_user_counting = mysqli_query($easy_db, "SELECT count(*) as total_count from players");
$easy_user_count = mysqli_fetch_object($easy_user_counting);
$easy_all_acount = $easy_user_count->total_count;
$easy_all = $easy_all_acount + 0;
//Aktywni medium
$medium_res = mysqli_query($medium_db, "SELECT ID, name, usysclass, banned FROM players WHERE poll >= $dt AND poll <= NOW() ORDER BY poll DESC");
$medium_res24 = mysqli_query($medium_db, "SELECT ID, name, usysclass, banned FROM players WHERE poll >= $dt24 AND poll <= NOW() ORDER BY poll DESC");
$medium_uno = mysqli_num_rows($medium_res);
$medium_uno24 = mysqli_num_rows($medium_res24);
$medium_user_counting = mysqli_query($medium_db, "SELECT count(*) as total_count from players");
$medium_user_count = mysqli_fetch_object($medium_user_counting);
$medium_all_acount = $medium_user_count->total_count;
$medium_all = $medium_all_acount + 0;
//Aktywni hard
$hard_res = mysqli_query($hard_db, "SELECT ID, name, usysclass, banned FROM players WHERE poll >= $dt AND poll <= NOW() ORDER BY poll DESC");
$hard_res24 = mysqli_query($hard_db, "SELECT ID, name, usysclass, banned FROM players WHERE poll >= $dt24 AND poll <= NOW() ORDER BY poll DESC");
$hard_uno = mysqli_num_rows($hard_res);
$hard_uno24 = mysqli_num_rows($hard_res24);
$hard_user_counting = mysqli_query($hard_db, "SELECT count(*) as total_count from players");
$hard_user_count = mysqli_fetch_object($hard_user_counting);
$hard_all_acount = $hard_user_count->total_count;
$hard_all = $hard_all_acount + 0;
home.php(我的页面)
<?php
include 'main.php';
checkLoggedIn();
head("Główna");
?>
<div class="content">
<h2>Home Page</h2>
<p>Welcome back, <?= $_SESSION['name'] ?>!</p>
</div>
<?php include 'settings.php' ?>
<table style="width: 100%;" border="0">
<tbody>
<tr>
<td style="vertical-align: top; padding-left: 0px;">
<div class="content"><h2 style="text-align: center"><span>Wybierz serwer:</span></h2></div>
<p class="news">
<div id="sfmenu">
<div class="btn2_main">
<a href="http://sf.sgsie.pl/dev/">
<div class="sfbt">
Beta
</div>
</a>
</div>
</div>
<div id="sfmenu">
<div class="btn2_main">
<a href="X.php">
<div class="sfbt">
Easy
</div>
</a>
</div>
<div class="btn2_main">
<a href="X.php">
<div class="sfbt">
Medium
</div>
</a>
</div>
<div class="btn2_main">
<a href="X.php">
<div class="sfbt">
Hard
</div>
</a>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<table style="width: 100%;" border="0">
<tbody>
<tr>
<td style="vertical-align: top; padding-left: 0px;">
<div class="content"><h2 style="text-align: center"><span>Aktywni Gracze:</span></h2></div>
<br>
<p class="news">
<table align="center" border="0" cellpadding="4" cellspacing="1" class="tableinborder" summary="none"
width="600px">
<tr>
<td align="left"><b><span style="color: #33cc00; font-size: small; ">Graczy online:</span>
<br>
<span>Dev: </span><span style="color: red; font-size: small; "><?= $dev_uno ?><span
style="color: #33cc00; font-size: small; "> / </span><?= $dev_all ?></span></b>
<br>
<span>Easy: </span><span style="color: red; font-size: small; "><?= $easy_uno ?><span
style="color: #33cc00; font-size: small; "> / </span><?= $easy_all ?></span></b>
<br>
<span>Medium: </span><span style="color: red; font-size: small; "><?= $medium_uno ?><span
style="color: #33cc00; font-size: small; "> / </span><?= $medium_all ?></span></b>
<br>
<span>Hard: </span><span style="color: red; font-size: small; "><?= $hard_uno ?><span
style="color: #33cc00; font-size: small; "> / </span><?= $hard_all ?></span></b>
</td>
</tr>
</table>
<br>
<br>
<table align="center" border="0" cellpadding="4" cellspacing="1" class="tableinborder" summary="none"
width="600px">
<tr>
<td align="left"><b><span style="color: #33cc00; font-size: small; ">Graczy online (24h):</span>
<br>
<span>Dev: </span><span style="color: red; font-size: small; "><?= $dev_uno24 ?><span
style="color: #33cc00; font-size: small; "> / </span><?= $dev_all ?></span></b>
<br>
<span>Easy: </span><span style="color: red; font-size: small; "><?= $easy_uno24 ?><span
style="color: #33cc00; font-size: small; "> / </span><?= $easy_all ?></span></b>
<br>
<span>Medium: </span><span style="color: red; font-size: small; "><?= $medium_uno24 ?><span
style="color: #33cc00; font-size: small; "> / </span><?= $medium_all ?></span></b>
<br>
<span>Hard: </span><span style="color: red; font-size: small; "><?= $hard_uno24 ?><span
style="color: #33cc00; font-size: small; "> / </span><?= $hard_all ?></span></b>
</td>
</tr>
</table>
<br>
<br>
</td>
</tr>
</tbody>
</table>
<?php
foot();
?>
解决方案
您可以像这样创建函数。
function count_row($connection,$query){
$query_sql = mysqli_query($connection, $query);
$counted_rows = mysqli_num_rows($query_sql);
return $counted_rows;
}
这个小函数将最小化您获取所有 rows_count 的代码,只需添加此方法并通过给定两个参数$connection
&来调用它$query
,connection 是您的数据库连接变量,query 是 mysql 的查询。它将返回行数。
推荐阅读
- google-sheets - 带有 MATCH 或 INDEX 查询的 FILTER
- django - Django,将两个外键添加到同一个模型
- django - django 中的用户登录视图无法正常工作?
- javascript - 使用 setTimeOut 再次调用 setState 来响应更改状态
- elasticsearch - 安装聚合插件(离线)Logstash
- java - WireMock 有时表现得很奇怪
- sql - 从 SQL Table(par1, par2, value) 创建 Par1 x Par2 UI 表视图
- android - 3D 模型未在 Android 设备上加载
- python - SqlAlchemy 中的查询对象是不可变的吗?
- excel - 当从另一个模块/子调用子时,应用程序警报/警告不会被抑制