2016-05-16 14 views
0
 preg_match_all('#\<td id=\"(.*)\" class=\"(.*)column(.*)\>(.*)\<\/td\>#i', $htmlcontent, $matches); 
    $output = $htmlcontent; 
    foreach ($matches[1] as $match) { 
    echo $match.","; 
    $ressql = "SELECT * FROM var WHERE varimportedindex = '".$match."' AND projectid = '".$pid."' AND sheetName = '".$sheetName."'"; 
    $result2 = $db->query("SELECT * FROM var WHERE varimportedindex = '".$match."' AND projectid = '".$pid."' AND sheetName = '".$sheetName."'"); 
    $rowoperation = $result2->fetch_assoc(); //<-- HERE 
    #echo $rowvalue = $rowoperation['varvalue']; 
    $output = preg_replace("#\<td id=\"(.*)\" class=\"(.*)column(.*)\>(.*)\<\/td\>#i", "<td id='\\1' class=\"\\2column\\3\"><input type='input' id='\\1' name='\\1' value='".$rowvalue."'>\\4</td>", $output); 
    } 
    echo $output; 

問題が見つかりませんでしたが、ここで交換用の行を無効にするとすべて正常に動作します。しかし、私はそれをアクティブにすると、交換はもう働いていない。preg_replaceとsql selectの奇妙な動作

誰かがこれらの行で問題を見つけることができますか?

ありがとうございました。

よろしく、 オラフ

答えて

0
// Olaf, please edit your question to display a sample input value for $htmlcontent 
if(!preg_match_all('#\<td id=\"(.*)\" class=\"(.*)column(.*)\>(.*)\<\/td\>#i',$htmlcontent,$matches)){ 
    echo "<div>No match</div>"; 
}else{ 
    $where_ext=implode("' OR `varimportedindex`='",$matches[1]); 
    $query="SELECT * FROM `var` WHERE projectid='{$pid}' AND `sheetName`='{$sheetName}' AND (`varimportedindex`='{$where_ext}') ORDER BY varimportedindex;"; // only run one query 
    if($result=$db->query($query)){ 
     $pattern="#\<td id=\"(.*)\" class=\"(.*)column(.*)\>(.*)\<\/td\>#i"; 
     while($row=$result->fetch_assoc()){ 
      echo "<div>vii={$varimportedindex} & vv={$row["varvalue"]}</div>"; 
      // Olaf, please state what $varvalue's value might be 
      $replace="<td id='\\1' class=\"\\2column\\3\"><input type='input' id='\\1' name='\\1' value='{$row["varvalue"]}'>\\4</td>"; 
      $output=preg_replace($pattern,$replace,$output); 
     } 
     echo "<div>{$output}</div>"; 
     // Olaf, please edit your question to display your expected result based on your sample $htmlcontent 
    }else{ 
     echo "<div>{$db->error}</div>"; 
    } 
} 
+0

@OlafK。一般的なコード構造を改良して問題を解決したかどうかはわかりません。そうでなければ、あなたの質問にもっと情報を提供する必要があります。私のコードのコメントを読んでください。この問題の解決策を見つけるために協力しましょう。もっと重要なのは、この質問についてもう気にしない場合は、削除するようにしてください。 – mickmackusa