2016-05-16 1 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

Может ли кто-нибудь найти проблему с этими линиями?

Большое вам спасибо.

С уважением, Olaf

ответ

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. Я не уверен, исправил ли я вашу проблему, уточнив общую структуру кода. Если нет, вам нужно будет предоставить дополнительную информацию в своем вопросе, пожалуйста, прочитайте комментарии в моем коде. Давайте работать вместе, чтобы найти какое-то решение для этого вопроса. Если вы, что более важно, больше не заботитесь об этом вопросе, пожалуйста, удалите его, чтобы пользователи SO не тратили время на попытки помочь вам. – mickmackusa

Смежные вопросы