如何使用 PHP 在 MySQL table 上生成字母表数据?
How Generate data to alphabet on MySQL table using PHP?
你好,我有这样的表格:
员工
EmployeeID EmployeeName
1234 Sooyoung
1235 Yoona
1236 Tiffany
1237 Hyoyeon
1238 Taeyeon
1239 Seohyun
1240 Sunny
1241 Yuri
我想像这样按顺序生成员工 ID:
1234 as A
1235 as B
1236 as C
1237 as D
1238 as C
1239 as E
1240 as D
1241 as F
您知道我必须使用什么 mysql 代码和 php 什么吗?谢谢
这就是您在 PHP 中的做法,我假设这是您在标记 PHP 时希望看到的方法。
<?php
mysql_connect("localhost", "username", "password") or die(mysql_error());
mysql_select_db("yourdatabase") or die(mysql_error());
$employees = mysql_query("SELECT * FROM Employee ORDER BY EmployeeID")
or die(mysql_error());
$letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$position = 0;
$position2 = 0;
$toomany = '';
while($row = mysql_fetch_array( $employees )) {
echo "<DIV>" . $toomany.substr($letters, $position, 1) . " = " . $row['EmployeeName'] . " </div>";
$position ++;
if($position > 25) {
$position = 0;
$position2 ++;
if($position2 > 25) { echo "We need to rethink this idea."; break; }
$toomany = substr($letters, $position2, 1);
}
}
?>
编辑:如果你 运行 没有字母怎么办?你想要发生什么?我猜的,如果我猜的不对,你得再解释一下。
已编辑:TurdPile 有我所拥有的简化版本。采纳他的回答。
如评论中所述,我认为您不能直接使用数据并按您希望的字母表对其进行评估(当然您仍然可以将结果分配给变量)。
如果出于某种原因必须使用 A-Z,我认为最好的解决方案是使用 PHP 脚本来解析查询结果。如果是这种情况,您实际上不需要员工 ID 号,因为您可以处理结果的出现,但我还是将 ID 号留在了那里。
<?php
// DB connection info
include("mysql_connection.php");
$query = mysql_query("SELECT EmployeeID, EmployeeName FROM Employees WHERE EmployeeID >= 1234");
$results = mysql_fetch_array($query);
$iteration = "A";
echo "ID - Name";
while(list($empNumber,$empName) = $results)){
echo $iteration." - ".$empName;
++$iteration;
}
?>
注意:示例中使用了mysql_query
,一般情况下应该使用MySQLi
或PDO
。
注2:这里使用$iteration
会自动增加字母输出,当到达Z时,应该进入AA
.
你好,我有这样的表格:
员工
EmployeeID EmployeeName
1234 Sooyoung
1235 Yoona
1236 Tiffany
1237 Hyoyeon
1238 Taeyeon
1239 Seohyun
1240 Sunny
1241 Yuri
我想像这样按顺序生成员工 ID:
1234 as A
1235 as B
1236 as C
1237 as D
1238 as C
1239 as E
1240 as D
1241 as F
您知道我必须使用什么 mysql 代码和 php 什么吗?谢谢
这就是您在 PHP 中的做法,我假设这是您在标记 PHP 时希望看到的方法。
<?php
mysql_connect("localhost", "username", "password") or die(mysql_error());
mysql_select_db("yourdatabase") or die(mysql_error());
$employees = mysql_query("SELECT * FROM Employee ORDER BY EmployeeID")
or die(mysql_error());
$letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$position = 0;
$position2 = 0;
$toomany = '';
while($row = mysql_fetch_array( $employees )) {
echo "<DIV>" . $toomany.substr($letters, $position, 1) . " = " . $row['EmployeeName'] . " </div>";
$position ++;
if($position > 25) {
$position = 0;
$position2 ++;
if($position2 > 25) { echo "We need to rethink this idea."; break; }
$toomany = substr($letters, $position2, 1);
}
}
?>
编辑:如果你 运行 没有字母怎么办?你想要发生什么?我猜的,如果我猜的不对,你得再解释一下。
已编辑:TurdPile 有我所拥有的简化版本。采纳他的回答。
如评论中所述,我认为您不能直接使用数据并按您希望的字母表对其进行评估(当然您仍然可以将结果分配给变量)。
如果出于某种原因必须使用 A-Z,我认为最好的解决方案是使用 PHP 脚本来解析查询结果。如果是这种情况,您实际上不需要员工 ID 号,因为您可以处理结果的出现,但我还是将 ID 号留在了那里。
<?php
// DB connection info
include("mysql_connection.php");
$query = mysql_query("SELECT EmployeeID, EmployeeName FROM Employees WHERE EmployeeID >= 1234");
$results = mysql_fetch_array($query);
$iteration = "A";
echo "ID - Name";
while(list($empNumber,$empName) = $results)){
echo $iteration." - ".$empName;
++$iteration;
}
?>
注意:示例中使用了mysql_query
,一般情况下应该使用MySQLi
或PDO
。
注2:这里使用$iteration
会自动增加字母输出,当到达Z时,应该进入AA
.