简体   繁体   English

在while循环中在另一个mysql查询中调用mysql查询

[英]Calling a mysql query inside another mysql query while loop

include "mysql.php";
          $query= "SELECT ID,name,displayname,established,summary,searchlink,imagename,image FROM institutions ORDER BY rand() ";
          $result=mysql_query($query,$db);
          while($row=mysql_fetch_array($result))
            {
              echo "<div class='grid-item item1' style='background: ".ran_col().";'>"; 

                $query1= "SELECT content FROM ".$row['name']." limit 1";
                $result1=mysql_query($query1,$db);
                while($row1=mysql_fetch_array($result1))
                {
                            echo "<div class='content-short' data-id=".$row['name'].">";
                                $string = $row1['content'];
                                if (strlen($string) > 200) 
                                {
                                $trimstring = substr($string, 0,200). '...';
                                } 
                                else 
                                {
                                $trimstring = substr($string,0). '...';
                                }
                                echo $trimstring;

                            echo "</div>";
                }
              echo <"/div">;
            }

What code should do: 应该执行什么代码:

The code should grab data from institution table and after that $row['name'] should be used as table for next mysql query where from that $row['name'] table $row['content'] should be grabbed 代码应从机构表中获取数据,然后将$row['name']用作下一个mysql查询的表,从该表中获取$row['name']$row['content']

but it is not working as expeted 但是它不能像预期的那样工作

You are using same variable everywhere. 您到处都使用相同的变量。 Change them to 更改为

include "mysql.php";
          $query= "SELECT ID,name,displayname,established,summary,searchlink,imagename,image FROM institutions ORDER BY rand() ";
          $result=mysql_query($query,$db);
          while($row=mysql_fetch_array($result))
            {
              echo "<div class='grid-item item1' style='background: ".ran_col().";'>"; 

                $query1= "SELECT content FROM ".$row['name']." limit 1";
                $result1=mysql_query($query1,$db);
                while($row1=mysql_fetch_array($result1))
                {
                            echo "<div class='content-short' data-id=".$row['name'].">";
                                $string = $row1['content'];
                                if (strlen($string) > 200) 
                                {
                                $trimstring = substr($string, 0,200). '...';
                                } 
                                else 
                                {
                                $trimstring = substr($string,0). '...';
                                }
                                echo $trimstring;

                            echo "</div>";
                }
              echo <"/div">;
            }

EDIT: 编辑:

Also your query is wrong 另外你的查询是错误的

$query1= "SELECT content FROM ".$row['name']" limit 1";

to

$query1= "SELECT content FROM ".$row['name']." limit 1";

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

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