- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我尝试使用 in_array 从数据库中回调列表,然后通过执行以下操作来检查这些结果,以查看数组中是否存在“Title”字段。
$qGetAllTitles = "SELECT ArticleTitle FROM articles
UNION
SELECT ArticleTitle FROM temp_article";
$rGetAllTitles = mysqli_query($dbc, $qGetAllTitles);
$GetAllTitlesRow = mysqli_fetch_array($rGetAllTitles, MYSQLI_ASSOC);
if (in_array($Title, $GetAllTitlesRow['ArticleTitle'])){
$errors[0] = "The title is already taken by another article, please pick a different title";
} else {
$TTL = mysqli_escape_string($dbc, trim($Title));
$errors[0] = "Title worked";
}
我知道字符串区分大小写(我正在寻找如何否定这一点,但这是另一个不相关的问题)
我的问题是,当我将已使用的文章标题放入标题字段(有效,我使用的所有其他检查都有效,但不是这个)时,它仍然返回“标题有效”,即使检查不应该除非标题是唯一的。
我已经检查了 phpmyadmin 中的 SQL 输入(对于我的 MySQL 数据库),它可以获取所有 (3) 个结果,并且从我的代码中的其他地方重用获取查询的方法,这也可以工作,与 in_array 相同检查一下,所以我真的不确定为什么它不起作用。
最佳答案
您的查询返回多行,但您仅检索第一行的数据。因此,除非标题与第一行的标题匹配,否则您将找不到任何重复项。您需要执行以下操作之一:
1) 在使用 in_array()
之前循环遍历结果集并创建页面标题数组
$GetAllTitlesRows = array();
while ($row = mysqli_fetch_array($rGetAllTitles, MYSQLI_ASSOC)) {
$GetAllTitlesRows[] = $row['ArticleTitle'];
}
或
2)只需在查询中搜索使用该标题的任何文章,这会使代码变得更加简单(推荐)。换句话说,使用 WHERE 子句专门在 ArticleTitle
字段中查找该标题。如果您得到任何结果,您就知道它已被采用。
$qGetAllTitles = "SELECT ArticleTitle FROM articles WHERE ArticleTitle = '$Title'
UNION
SELECT ArticleTitle FROM temp_article WHERE ArticleTitle = '$Title'";
$rGetAllTitles = mysqli_query($dbc, $qGetAllTitles);
if (mysqli_num_rows($rGetAllTitles) > 0){
$errors[0] = "The title is already taken by another article, please pick a different title";
}
关于php - in_array() 验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26940935/
是 in_array() php多字节安全功能? 如果没有,我怎样才能做到这一点? php.net 多字节引用列表 mb_stristr()但它接受一个字符串,而不是像 haystack 那样的数组。
这真的不应该这么复杂,这表明我做错了什么,但在检查文档后我无法弄清楚是什么。 我正在尝试使用这段代码($level 作为参数传入)进行简单检查,以查看“标签”的类型是否在此操作期间要使用的类型列表中:
我正在使用 in_array如果值存在,则在数组中搜索。我的代码如下: $file = 'domains.txt'; //reading txt file $lines = file($file);/
我不知道是什么导致了这个问题,但我会在下面发布代码,然后查看我到目前为止所做的事情以及我得到的结果。 $client_emails = array( 'email@ex-one.com' =>
我有一个数组,我应用 in_array 函数在该数组中查找特定数字,但没有显示结果,数据在数组内但没有响应..:( 数组: Array ( [0] => SimpleXMLElement Objec
我有一个通过分解字符串形成的数组,如下所示。 $interest_array = explode(',', $user->interests); 当我 var_dump 这个数组时,我得到 array
这个问题已经有答案了: PHP in_array() / array_search() odd behaviour (2 个回答) 已关闭 7 年前。 对于这个数组 ($options) : Arra
我正在构建一个对象数组。我需要这个数组仅包含给定对象的一个实例,对同一对象的多个引用应该引发异常。我使用以下代码来实现此目的: public function addField ($name, i
这个问题在这里已经有了答案: A problem about in_array (3 个回答) PHP's variable type leniency (3 个回答) 4年前关闭。 在验证 Cont
此代码应返回 TRUE 值: 但是 in_array 返回 FALSE。 最佳答案 in_array 检查数组中是否存在一个值。 你的 $needle 作为 $haystack 的值根本不存在 如果
我有一个通过分解字符串形成的数组,如下所示。 $interest_array = explode(',', $user->interests); 当我 var_dump 这个数组时,我得到 array
我在阿拉伯语中使用 in_array 函数...in_array ('من', $words) 在 $words 真正包含 من 的地方给出 true。 但是 in_array('من', $stop
我有一个简单的 in_array() 和一个数组作为下面的针示例,但是我希望我的示例应该回显; match found in the array 鉴于两根针都存在于大海捞针中。但是,此代码不会产生 e
我试图从两个不同的文本文件中获取两个不同的数字,将它们放入一个变量中,然后将其与 MYSQL 数组进行比较。我的问题是,当我定义三个变量时: $num = 42; $whichPlaylist = 2
因此,我尝试使用 in_array 从数据库中回调列表,然后通过执行以下操作来检查这些结果,以查看数组中是否存在“Title”字段。 $qGetAllTitles = "SELECT ArticleT
所以我遇到了一个无法解决的奇怪问题,我不知道问题是什么以及应该如何解决它。 我有一个简单的加载图像的系统,称为快照。每一张快照,都有喜欢。这就是我加载快照和相关(数量)喜欢的方式: /* * Get
我有以下数组: Array ( [0] => Array ( [video_id] => 161162806 ) [1] =>
名为users 的数据库表有一列timemarks。 timemark 字段如下所示。11:00:00、13:45:00、17:00:00、18:25:00(时间-每个用户的分数不同) 我的 php
您好,我正在尝试使用 in_array,我认为我的语法是正确的,但它说“第二个参数的数据类型错误” 我的代码是 $result = mysqli_query($con, "SELECT * FROM
我正在使用 PDO 方法从数据库中获取数组: $statement = $db->prepare("SELECT sname FROM list WHERE ongoing = 1;"); $stat
我是一名优秀的程序员,十分优秀!