简体   繁体   English

php循环mysql仅执行一次

[英]php loop mysql only executing once

** ANSWERED .. Was whitespace after commas. **回答..逗号后为空格。 Thanks everyone! 感谢大家!

When I execute the following code, all $castmember are displayed however mysql is only run on the first one. 当我执行以下代码时,将显示所有$ castmember,但是mysql仅在第一个运行。

   $getactors=explode(",", $actors);
   foreach($getactors as $castmember){

     $idolid="";
     $srch3= "SELECT `id`,`dir` FROM `idols` WHERE `name`='$castmember'";
     $result5 = mysql_query($srch3);
     while ($row5 = mysql_fetch_assoc($result5)) {
     $idolid = $row5["id"];
     $idoldir= $row5["dir"];
     }

   if($idolid){ echo"<li style=\"font-size:1.2em;\" ><a href=\"/gallery/$idolid/$idoldir.html\" title=\"$castmember\" itemprop=\"actors\"> $castmember</a>";
     } else {
   echo"<li style=\"font-size:1.2em;\"><div style=\"display:inline\" itemprop=\"actors\"> $castmember</div>";
     }
   echo"<span></span></li>\n";
   }

You don't need to explode and then run query in loop. 您无需explode ,然后循环运行查询。 You can use IN clause. 您可以使用IN子句。

 $srch3= "SELECT `id`,`dir` FROM `idols` WHERE `name` IN ('".$actors."')";

This will work only if your $actors array has valid values though. 但是,只有在$actors数组具有有效值的情况下,此方法才有效。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM