首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用变量PHP在带有SELECT的for循环中创建字符串

如何使用变量PHP在带有SELECT的for循环中创建字符串
EN

Stack Overflow用户
提问于 2018-07-28 03:09:28
回答 2查看 45关注 0票数 0

如下所示,我在获取输出时犯了错误?

  1. 内部数组是表的名称。

假设在这些表中是0行,所以所有地方的输出都应该是0。

代码语言:javascript
复制
<?php
$g_module =
array(
  'm_b_broadcast_live',
  'm_b_browsing_live',
  'm_e_askfm_likes_live',
  'm_e_facebook_followers_live',
  'm_e_facebook_group_joins_live',
);

for ($i = 0; $i <= 5; $i++) {
  $modules_names = "g_module[$i]";
  $modules_from = '$'.$modules_names;

  $modules_rows = '$g_module_row_'.$i;

  $$modules_rows = mysql_num_rows("SELECT * FROM $$modules_from");
}

echo $g_module_row_1;
echo '</br>';
echo $g_module_row_2;
echo '</br>';
echo $g_module_row_3;
echo '</br>';
echo $g_module_row_4;
echo '</br>';
echo $g_module_row_5;

/* output should be:
0

0

0

0

0
*/
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-28 04:03:17

正如您的问题的注释中所述,mysql_num_rows()将查询结果作为参数,而不是查询字符串。

此外,您还应该使用mysqli__!请查看文档。

您可以简化的其他事情是转义美元符号,这样您就不必再次将一个符号连接到$modules_names

更正后的代码将如下所示:

代码语言:javascript
复制
<?php
$g_module = [
    'm_b_broadcast_live',
    'm_b_browsing_live',
    'm_e_askfm_likes_live',
    'm_e_facebook_followers_live',
    'm_e_facebook_group_joins_live',
];

// you have to create a connection to your database server first
// of course you will have to swap out my placeholders for the actual credentials
$con=mysqli_connect('mysql_server_address_here','username_here','password_here','database_name_here');

for($i=0;$i<=5;$i++){
    $modules_from = "\$g_module[$i]";

    $modules_rows = "\$g_module_row_$i";

    $q=mysqli_query("SELECT * FROM $$modules_from");

    //use mysqli_num_rows instead
    $$modules_rows = mysqli_num_rows($q);
}

// close your connection after you are finished
mysqli_close($con);

echo $g_module_row_1;
echo '</br>';
echo $g_module_row_2;
echo '</br>';
echo $g_module_row_3;
echo '</br>';
echo $g_module_row_4;
echo '</br>';
echo $g_module_row_5;
票数 0
EN

Stack Overflow用户

发布于 2018-07-28 03:56:12

代码语言:javascript
复制
<?php
    $g_module =
    array(
        'm_b_broadcast_live',
        'm_b_browsing_live',
        'm_e_askfm_likes_live',
        'm_e_facebook_followers_live',
        'm_e_facebook_group_joins_live',
    );

    foreach($g_module as $table_name){
        $count = mysql_num_rows("SELECT * FROM $table_name");
        echo "<br/>".$count;
    }
?>

我认为你应该试着这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51564153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档