我的PHP函数有点麻烦。在数据库中,我从查询中得到2个结果。但我的功能是做其他事情。当我将'='编辑为'=='
时,它会发生变化MySQL查询:
SELECT ContentPages.ContentPagesID, ContentType.ContentTypeName
FROM `ContentPages` INNER JOIN ContentType ON ContentPages.ContentTypeID = ContentType.ContentTypeID INNER JOIN ContentInformation ON ContentPages.ContentInformationID = ContentInformation.ContentInformationID
结果:
ContentPagesID ContentTypeName
01425d4a-2abd-11e4-b991-525400 products01
014269dd-2abd-11e4-b991-525400 information01
PHP功能:
function GetAllPages() {
$GetAllPagesSql = "SELECT ContentPages.ContentPagesID, ContentType.ContentTypeName FROM `ContentPages` INNER JOIN ContentType ON ContentPages.ContentTypeID = ContentType.ContentTypeID INNER JOIN ContentInformation ON ContentPages.ContentInformationID = ContentInformation.ContentInformationID";
$GetAllPagesQuery = mysql_query($GetAllPagesSql);
while (($GetAllPagesRow = \mysql_fetch_array($GetAllPagesQuery)) != false) {
if($GetAllPagesRow[ContentTypeName] === 'product01') {
DisplayProducts01DesignFunction();
}
else if ($GetAllPagesRow[ContentTypeName] === 'information01') {
DisplayInformation01DesignFunction();
}
}
}
当我改变时:
if($GetAllPagesRow[ContentTypeName] = 'product01') {
DisplayProducts01DesignFunction();
}
else if ($GetAllPagesRow[ContentTypeName] = 'information01') {
DisplayInformation01DesignFunction();
}
对此:
if($GetAllPagesRow[ContentTypeName] === 'product01') {
DisplayProducts01DesignFunction();
}
else if ($GetAllPagesRow[ContentTypeName] === 'information01') {
DisplayInformation01DesignFunction();
}
它从显示函数DisplayProducts01DesignFunction()
两次到DisplayInformation01DesignFunction()
一次。
有关如何解决此问题的任何想法?
答案 0 :(得分:0)
如果您的代码已修复,它实际上应该只运行一次。当您将==
更改为=
时,它不会保持比较并成为导致TRUE
的分配,因此您的if块会被执行,这是错误的。< / p>
if($GetAllPagesRow[ContentTypeName] = 'product01')
编写if条件不是正确的方法,如果使用该逻辑使代码运行正常,那么你做错了。 =
应为==
当你说
时if($GetAllPagesRow[ContentTypeName] = 'product01')
然后,即使您有100行,也会始终执行块。
现在你可能在我提出==
时问好,那么为什么第一个if块不再工作?这是因为您正在比较错误的字符串,您的数据库包含products01
而您的if
包含product01
,请参阅缺少的s
。您的实际if
条件应为
if($GetAllPagesRow[ContentTypeName] == 'products01') {
DisplayProducts01DesignFunction();
}
else if ($GetAllPagesRow[ContentTypeName] == 'information01') {
DisplayInformation01DesignFunction();
}