我的一个表中有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']这样的关联数组来挑选特定行,但这似乎不起作用。对每个唯一实例执行一个查询似乎非常低效。
我熟悉如何从数据库中检索内容并在页面上显示它们。我是中等水平,但这让我很难过。
有什么想法吗?
感谢。
答案 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行...我会将所有结果集存储在一个数组中,并使用这个数组来回显我想要的页面上的行元素。这样你就不会有输入补充代码的开销(最好的代码是没有代码)并且必须检索你想要的特定行。此外,您是否想要检索其他记录,则无需修改您的查询。