Php 使用in_数组比较MySQL数据
我在MySQL中设置了一个包含两列的表:Php 使用in_数组比较MySQL数据,php,mysql,arrays,Php,Mysql,Arrays,我在MySQL中设置了一个包含两列的表: ID(自动增量) 最近播放(VARCHAR,设置为“144”或“2140”等) 我试图将mysql数据放入一个数组中,并将其与mysql外部定义的数据进行比较。但出于某种原因,它似乎不起作用。这是我的密码: $whichPlaylist是1个字符的整数,$num是3个字符的整数 //Note: These values are actually received through file_get_contents('textfile.txt'); $
- ID(自动增量)
- 最近播放(VARCHAR,设置为“144”或“2140”等)
//Note: These values are actually received through file_get_contents('textfile.txt');
$whichPlaylist = "1";
$num = "44";
//Combine playlist number and video number
$joint = $whichPlaylist. "" .$num;
//Insert joint var into Mysql database
mysql_query("INSERT INTO recentlyplayed (numplayed) VALUES('$joint') ");
$query = "SELECT * FROM recentlyplayed";
$result = mysql_query($query) or die ("no query");
while($row = mysql_fetch_array($result))
{
$stored[] = $row['1'];
}
if (in_array($joint, $stored['1'])){
$reroll = 1;
}
echo $reroll;
即使MySQL表中有相同的$joint值,$reroll也不会回显1。这可能是因为插入$joint变量时有额外的间距吗?我实际上是从一个文本文件中获取$whichPlaylist和$num,该文件在数字后面有一个新行。感谢您的帮助。:) 在if语句之后移动While-End大括号,看看它是否有效。在脚本中尝试以下代码:
$stored = array();
while($row = mysql_fetch_array($result)) {
$stored[] = $row[1];
}
if (in_array($joint, $stored)){
$reroll = 1;
}
数组是$stored(而不是$stored['1'])。
$row['1']
和$stored['1']
是各自数组的元素,键为字符串值'1'
。您可能指的是$row[1]
和$stored
,但您的代码还有很多其他错误。不要使用ext/mysql
;将变量作为参数传递给准备好的语句;在选择列表中指定要获取的列,而不是使用*
通配符;尽可能避免将整个结果集加载到数组中(例如,在可能的情况下将一些处理移到数据库中,或在获取时对每条记录执行处理);尽快退出循环。mysql
-扩展已经过时,不再维护,将被标记为不推荐使用PHP5.5。使用PDO_-MySQL
,或MySQLi
。