将MySQL结果转换为字符串数组

3

我正在从MySQL的产品表中选择我的产品名称,然后我想将这些名称呈现给类似于
$names = array(name1, name2, ...)
其中name1,...是来自MySQL的产品名称。我已经查看了建议的类似情况,但没有一个能解决我的问题。我是一个新手,只是试图学习。

4个回答

5
$result = mysql_query("SELECT name FROM products");
$names=array();
while ($row = mysql_fetch_row($result)) $names[]=$row[0];
mysql_free_result($result);

你需要使用循环,因为没有直接获取完整结果集中所有行的方法。


-1
$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++;

    }

-1

从学术角度来看,我想做类似于这样的事情可能有一个“可行”的替代方案。

$names = explode('<|>', mysql_result(mysql_query(
    "SELECT GROUP_CONCAT(name separator '<|>') FROM products GROUP BY 'name'"
), 0));

在一行代码中拥有循环和数组的全部功能,售价仅为让耶稣宝宝哭泣。是的,你应该可能使用循环。除非你因为小时候一个循环在学校门口等你并打了你而对循环有恐惧症,我猜。

从学术角度来看,一个人必须创建一个函数。但是似乎没有PHP用户(至少在这个网站上)听说过这样的功能。 - Your Common Sense
只有在您打算重复使用代码时,才会使用函数本身,否则它们会导致代码膨胀。 - Naltharial
否则一行代码将毫无意义。(请注意,这个案例是最可重用的之一) - Your Common Sense
那取决于应用程序的目的。函数并不是万能的解决方案。如果你认为它没有意义,那就属于编程中“适当注释代码”的条款。并不是我主张使用这种代码,只是陈述一下对实践的看法。 - Naltharial
这种实践确实需要一个倡导者。 - Your Common Sense

-1

不知道为什么大家都喜欢一行代码,但无论如何,让你的代码更简洁总是一个好主意。

创建一个函数。

  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");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接