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

これを試して、

 <?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 に答える
0

Skrol29 が正しく言うように、その行は機能しません。

代入 (検証可能な値に値を代入すること) は、常に次の形式を持ちます。

<variablename> <assignmentoperator> <value>

つまり、次のことを意味します。

$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 に答える