我正在从MySQL的产品表中选择我的产品名称,然后我想将这些名称呈现给类似于$names = array(name1, name2, ...)
其中name1,...是来自MySQL的产品名称。我已经查看了建议的类似情况,但没有一个能解决我的问题。我是一个新手,只是试图学习。
$result = mysql_query("SELECT name FROM products");
$names=array();
while ($row = mysql_fetch_row($result)) $names[]=$row[0];
mysql_free_result($result);
你需要使用循环,因为没有直接获取完整结果集中所有行的方法。
$result = mysql_query("
SELECT `productname` FROM `products`
")or die($result."<br/><br/>".mysql_error());
$numrows = mysql_num_rows($result);
while ($row = mysql_fetch_assoc($result))
{
$productname[$i] = $row['productname'];
// to print out use the following
echo $productname[$i];
$i++;
}
从学术角度来看,我想做类似于这样的事情可能有一个“可行”的替代方案。
$names = explode('<|>', mysql_result(mysql_query(
"SELECT GROUP_CONCAT(name separator '<|>') FROM products GROUP BY 'name'"
), 0));
不知道为什么大家都喜欢一行代码,但无论如何,让你的代码更简洁总是一个好主意。
创建一个函数。
function dbGgetCol($sql) {
$ret = array();
$res = mysql_query($sql) or trigger_error(mysql_error()." in ".$sql);
if ($res) {
while ($row = mysql_fetch_row($result)) {
$ret[] = $row[0];
}
mysql_free_result($res);
}
return $ret;
}
将其放置在一些配置文件中,该文件包含在每个脚本中
然后使用这段简单的代码获取您的数组
$names = dbGetCol("SELECT name FROM products");