最初,这个简单的数组和foreach语句工作得很完美,但我需要从php数组更改为从数据库中获取信息:
$serversArray = array(
"domainname1.com",
"domainname2.com:port",
"domainname3.org",
"000.000.000.000:port");
foreach($serversArray as $server)
ID IP Port
1 domainname1.com
2 domainname2.com 12345
3 domainname3.org
4 000.000.000.000 54321
我需要弄清楚的是如何将IP和Port列格式化为ip:port(中间带冒号),然后让foreach语句识别每一个,以便它可以使用其他一些脚本处理它,就像它已经与数组一起工作一样。 (我也试过在foreach中使用sprintf,但这打破了页面。)
答案 0 :(得分:2)
以下是如何让查询以正确的格式返回:
SELECT IF(`PORT` IS NULL, `IP`, CONCAT(`IP`,":",`PORT`)) as `Formatted IP`
FROM YOUR_TABLE;
答案 1 :(得分:1)
您想从数据库查询构建$ serversArray吗?
$serversArray = array();
$sql = "SELECT ip, port FROM my_table";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
// if have port include it after : otherwise just include ip
$serversArray[] = $row['port'] ? "{$row['ip']}:{$row['port']}" : $row['ip'];
}
<小时/> 旧时尚sql查询只是为了显示构建数组的过程。目前,我们应该使用MySQL Functions (PDO_MYSQL)