1

我正在尝试使循环变量变量可以在循环之外访问。一切正常,但我在这段代码中遇到了麻烦:

$dayVar."_count" = $dayVarCount;

完整代码如下:

<?php

$day_1="sep_28";
$day_2="sep_29";
$day_3="sep_30";

$query = mysql_query("SELECT * FROM table WHERE id = '$id'");

while ($row = mysql_fetch_assoc($query))
{

for ($i = 1; $i <= 3; $i++) 
    {
        $dayVar = "day_".$i;
        $dayVarCount = $row[$$dayVar];
        echo $$dayVar . ': ' . $dayVarCount . '<br>';

        $dayVar."_count". = $dayVarCount;
    }      
}

echo "$day_3_count";

?>
4

4 回答 4

2

我相信您对 $dayVar."_count" 的变量分配不正确或非法。我会尝试 ${$dayVar."_count"} 代替。

于 2012-10-01T07:50:53.937 回答
0

正如 Skrol29 所说,那条线行不通:

赋值(给一个可验证的赋值)总是有以下形式

<variablename> <assignmentoperator> <value>

在 php 中,这意味着:

$day_1 = "123"

正如你已经使用过的那样。

变量名通常不是通用的。如果您需要这样的功能,请使用数组。 PHP 数组

于 2012-10-01T07:53:35.763 回答
0

你几乎是在正确的地方......但是。

 for ($i = 1; $i <= 3; $i++)  
    { 
        $dayVar = "day_".$i; 
        $dayVarCount = $dayVar."_count";
    $$dayVarCount =  $row[$$dayVar];   
    }       


echo "$day_3_count"; 
于 2012-10-01T07:54:37.610 回答
0

试试这个,

 <?php
 // Connect to server and select database.
$host   =   "host here";
$username="username here";
$password="pass here";
$db_name="db here";
    mysql_connect("$host", "$username", "$password")or die("cannot connect");
   if(mysql_select_db("$db_name")){echo "Success";}else{echo "cannot select DB";}



   $day_1="sep_28";
   $day_2="sep_29";
   $day_3="sep_30";
   $id=1;
   $query = mysql_query("SELECT * FROM `tab1` WHERE id = '$id'");

   while ($row = mysql_fetch_assoc($query))
   {

   for ($i = 1; $i <= 3; $i++) 
   {
    $dayVar = "day_".$i;
    $dayVarCount = $row[$$dayVar];
    echo $$dayVar . ': ' . $dayVarCount . '<br>';

    ${$dayVar."_count"} = $dayVarCount;
  }      
  }

  echo "$day_3_count";

 ?>


  <?php
   // close connection
  mysql_close();
  ?>
于 2012-10-01T07:59:55.010 回答