在表中选择几个非顺序行

时间:2014-01-28 19:26:11

标签: php select field row

我的一个表中有18行,有几列。我想从几个不同的非连续行中提取数据,并在页面的不同部分单独回显它们。

例如,假设我想从column_1中选择记录5,9和13,并将它们回显到不同位置的页面。我怎么做到这一点?我是否需要分别执行一个查询来检索这些唯一字段?到目前为止,这是我的代码:

// $database connect code, blah blah...

$sql = "SELECT page_id FROM pages WHERE (not sure if something should go here)";
$query = mysqli_query($connect, $query);
while ($row = mysqli_fetch_array($query)){

maybe some code here, not sure...

};

使用while循环很容易对特定列中的所有记录执行此操作,但这不是我所追求的。我认为可能有一种方法可以使用像$ fetchRow ['row'] ['row_number']这样的关联数组来挑选特定行,但这似乎不起作用。对每个唯一实例执行一个查询似乎非常低效。

我熟悉如何从数据库中检索内容并在页面上显示它们。我是中等水平,但这让我很难过。

有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:1)

您需要IN条款。

$sql = "SELECT page_id FROM pages WHERE column_1 IN (5, 9, 13)";

或者如果您更愿意使用PHP数组,请执行以下操作:

$cols = array(5,9,13);
$in_cols = implode(',', $cols);
$sql = "SELECT page_id FROM pages WHERE column_1 IN ({$in_cols}})";

如果你要使用#2,请确保在执行之前正确清理/准备语句。

答案 1 :(得分:0)

我认为你要找的是data_seek

但是,因为你只有18行...我会将所有结果集存储在一个数组中,并使用这个数组来回显我想要的页面上的行元素。这样你就不会有输入补充代码的开销(最好的代码是没有代码)并且必须检索你想要的特定行。此外,您是否想要检索其他记录,则无需修改您的查询。