0

その外側のwhileループで作成された変数を使用したいと思います。これは、相互に並べて (コンマ区切りで) 文字列変数に入れたいさまざまな変数があるためです。その後、最後のコンマを削除します。

これは私のコードです

$result = mysql_query("SELECT * FROM ".$_POST['moduleName']);   

        while($row = mysql_fetch_array($result))
          {

          //read fieldnames from database
          $fieldName = $row['modFieldName'];

          //creating a variable with the fieldname    
          $fieldName = 'field'.$fieldName;

          //fill Variable with posted input
          $fieldName = $_POST[$row['modFieldName']];

//Put fieldname in a string (outputs: a,b,c,d,e,)
          $postString = $fieldName.","; 

        }
//Remove last comma      
$postString = substr($postString,0,-1);
         echo $postString;
4

1 に答える 1

0

したがって、文字列を上書きするのではなく、毎回結果を連結します。

    $result = mysql_query("SELECT * FROM ".$_POST['moduleName']);

    $postString = ''; 

    while($row = mysql_fetch_array($result))
    {
      //read fieldnames from database
      $fieldName = $row['modFieldName'];

      //creating a variable with the fieldname    
      $fieldName = 'field'.$fieldName;

      //fill Variable with posted input
      $fieldName = $_POST[$row['modFieldName']];

      //Put fieldname in a string (outputs: a,b,c,d,e,)
      $postString = $postString.$fieldName.","; 
    }

    //Remove last comma      
    $postString = substr($postString, 0, -1);
    echo $postString;

または、 を使用できます.=。また、拡張機能は使用しないでください。mysql_拡張機能は非推奨プロセスを開始しており、SQL インジェクション ホールに簡単につながる可能性があります。以下に示すように、PDO は優れた代替手段です。最後に、ユーザー提供のデータをクエリに直接入れないでください。うわぁ!

$query = $database->query('SELECT * FROM ' . $moduleName); # Please filter $moduleName against a list of known safe tables!

$postStrings = array_map(function($row) {
    return $_POST['field' . $row->modFieldName];
}, $query->fetchAll());

$postString = implode(',', $postStrings);
于 2012-11-02T14:22:04.303 に答える