如何检查Mysql中是不是存在数组元素?
Posted
技术标签:
【中文标题】如何检查Mysql中是不是存在数组元素?【英文标题】:How can I check to see if a element of an array exists in Mysql?如何检查Mysql中是否存在数组元素? 【发布时间】:2015-07-31 15:15:16 【问题描述】:我有一个包含课程列表的静态菜单,一切都是静态的。
我希望菜单上只显示活动的课程,我想接受相同的订单。
我将所有子菜单的内容都放在一个变量中,如果在 DB 中处于活动状态则显示,如果不处于活动状态则不显示。
我正在学习,我想以正确的方式去做。
但是这段代码还不能工作。有人可以帮我吗?
<?php
//conexion DB
$dbLink = new PDO('mysql:host=localhost;dbname=dbname;charset=utf8', 'username', 'password', [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
//array for order
$coursesarr = array('spanish', 'english', 'latin');
//query mysql
$qry_courses = "SELECT `shortname`, `visible` FROM `courses` WHERE visible = 1";
//define static varibles
$spanish = '<li><a href="/spanish.html">spanish</a>
<ul>
<li>task 1 select course</li>
<li>task 2 select course</li>
<li>task 3 select course</li>
...
</ul></li>';
$english = '<li><a href="/english.html">English</a>
<ul>
<li>task 1 select course</li>
<li>task 2 select course</li>
<li>task 3 select course</li>
...
</ul></li>';
$latin = '<li><a href="/latin.html">Latin</a>
<ul>
<li>task 1 select course</li>
<li>task 2 select course</li>
<li>task 3 select course</li>
...
</ul></li>';
//PDO execute
$stmt = $dbLink->prepare($qry_courses);
$stmt->execute();
//Generate query DB and create menu
echo '<nav><ul>';
while($row_courses = $stmt->fetchAll(PDO::FETCH_ASSOC))
if(in_array("$row_courses['shortname']", $coursesarr)
echo $.'$row_courses['shortname']'.;
echo '<ul><nav>';
?>
谢谢
【问题讨论】:
请stop usingmysql_*
functions。它们不再被维护并且是officially deprecated。改为了解 prepared statements,并考虑使用 PDO,it's not as hard as you think。
对于这一行:if($row_courses['shortname'] == $coursesarr)
,看看in_array()函数。
@JayBlanchard 谢谢朋友我改成 PDO,请检查我是否正确。仙人掌我改成 in_aaray()
fetchAll
返回所有行,因此您需要遍历结果数组以检查每一行。
【参考方案1】:
如下改变
if(in_array("$row_courses['shortname']", $coursesarr)
echo $.'$row_courses['shortname']'.;
到
if($row_courses['shortname'] == $coursesarr)
echo $row_courses['shortname'];
【讨论】:
以上是关于如何检查Mysql中是不是存在数组元素?的主要内容,如果未能解决你的问题,请参考以下文章
如何检查 Firebase Firestore 的数组中是不是存在元素?
在 Presto 中,如何检查我通过子查询获取的列表中是不是存在数组中的元素