有没有更好的方法在MySQL中进行SELECT查询并在PHP中对它们进行排序?

时间:2010-12-28 01:42:15

标签: php mysql

我只是学习PHP / MySQL,我必须要做的很多就是将先前插入数据库的数据显示到用户的浏览器中。所以我这样做:

$select = mysql_query('SELECT * FROM pages');

while ($return = mysql_fetch_assoc($select))
{
     $title = $return['title'];
     $author = $return['author'];
     $content = $return['content'];
}

然后我可以在页面中使用这些变量。现在,当我在数据库中只有3列时,以上述方式执行此操作不是问题,但如果我正在处理具有更多列的大型数据库,那该怎么办呢?

我有一种唠叨的感觉,专业人士以一种更有效的方式做到这一点,他们可能会在他们选择的表中循环查找它拥有的所有列并自动将它们与变量相关联。是这样的吗?或者上面你们是怎么做的?

修改

感谢你们的答案,他们帮助我更好地解释了我的想法。我试图这样做的原因是我必须少写。

是否可以自动获取表格列的名称。然后有一个循环,它将自动创建变量,命名它们与列名相同:

some type of loop 
{

   $nameofcolumn = $return['$nameofcolumn'];

}

这样我就不必手动重复了一遍:

 $title = $return['title'];
 $author = $return['author'];
 $content = $return['content'];

因为通常我只是将变量命名为与表列名相同。

2 个答案:

答案 0 :(得分:1)

正如所指出的那样extract会比我最初的解决方案更好:

$select = mysql_query('SELECT * FROM pages');

while ($return = mysql_fetch_assoc($select))
{
     extract($return, EXTR_OVERWRITE);
}

两种解决方案都会使用列的名称覆盖任何已存在的变量。

但我不知道为什么有人会这样做。 我必须说我明白你要做什么,但不是为什么:D

答案 1 :(得分:0)

可能会偏离主题,但考虑使用PDO扩展来学习MySQL,因为它可以帮助您避免常见错误,并帮助您迁移到更复杂的解决方案,如Zend_DB,Doctrine或Propel

相关问题