2016-12-21 1 views
0

우선, 나는 멍청한 녀석이고 아마도 내가하기 쉬운 것을 묻고 있습니다.이 HTML 템플릿을 PHP와 함께 사용하려면 어떻게해야합니까?

<table border=”0″> <tr> 
        <td align=”center”><!-- IDCAT --></td> 
        <td><!-- CATEGORIA --></td> 
        </tr> 

</table> 

이 DB 연결 파일의 PHP mysql3.php에서 :

<?php 
      $connessione = @mysqli_connect("localhost","root","","tecwebdb") or die("La connessione al Database è fallita !"); 
      $sql = "SELECT ID_Categoria,Nome FROM categoria"; 

      [email protected]_query($connessione, $sql) or die("Esecuzione Query fallita !"); 
    ?> 

그리고이 파일 테스트에서 모든 작업을위한 PHP 코드 나는이 작은 template2.html에 저장된 템플릿을 가지고있다. PHP :

<?php 

include("mysql3.php"); 
$file_content = implode("",file("template2.html")); 


while($ris=mysqli_fetch_array($query)) { 
    $output = preg_replace("<!-– IDCAT -->", $ris["ID_Categoria"], $file_content); 
    $output = preg_replace("<!–- CATEGORIA -->", $ris["Nome"], $output); 

    echo $output; 
} 

@mysqli_close($connessione); 

?> 

문제는 쿼리 결과가 작동하는 방법, 그동안의 cicle에 아마 내가 부족 뭔가 게재되지 않습니다입니까?

+0

또한 PHP 코드에 HTML 코드가있을 수 있습니다. –

+0

통화 앞의 모든'@'기호를 제거하는 것으로 시작하십시오. '@'는 이러한 호출에 의해 던져지는 에러를 억제하므로 에러를 올바르게 처리하는 방법을 읽어야합니다. 오류가 발생하면 코드가 예상대로 작동하지 않는 이유에 대한 정보를 얻을 수 있습니다. –

+0

정규 표현식에 결함이 있습니다. 처음과 끝이 누락되었습니다.'/' – ArtisticPhoenix

답변

0

너무 복잡해집니다.

당신은 1 개 개의 파일에 모든 것을 할 수 있습니다 (예 : test.php)를 다음과 같이 :

<?php 

//connect to DB 
$connessione = @mysqli_connect("localhost","root","","tecwebdb") or die("La connessione al Database è fallita !"); 
$sql = "SELECT ID_Categoria,Nome FROM categoria"; 
[email protected]_query($connessione, $sql) or die("Esecuzione Query fallita !"); 

//render the table 
?> 
    <table border=”0″> 
    <?php 
     while($ris=mysqli_fetch_array($query)) 
     { 

      echo "<tr>";//row start 
      echo "<td align='center'>".$ris["ID_Categoria"]."</td>"; //col 
      echo "<td>".$ris["Nome"]."</td>";//col 
      echo "</tr>"; //row end 
     } 
    ?> 
    </table> 
<?php 
//close the connection 
@mysqli_close($connessione); 

?> 
+0

고맙습니다. 1 파일에서 모두 할 수 있다는 것을 알고 있습니다. 그러나 이것은 학교에서하고있는 운동이므로, 꼭 만들어야합니다. 그 3 개의 파일, 특히 템플릿과 함께 작동 쿼리 결과를 표시하기 위해 대체 – LucaPearl

+0

@ 루카 펄, 아 좋아. 다음 번에 귀하의 질문에 이것을 설명하십시오 :) 걱정 마라! – Sina

1

당신의 REGX가 결함이 있기 때문에 (내가 코멘트에 말했듯이) 그것은

$output = preg_replace("<!-– IDCAT -->", $ris["ID_Categoria"], $file_content); 
작동하지 않습니다

시도 :

$output = preg_replace("/<!-– IDCAT -->/", $ris["ID_Categoria"], $file_content); 

당신은 기본적으로 스타의 구분 기호를 / 실종 t와 Regx의 끝, 나는 PHP가 이것에 대한 경고를 내고 있다고 생각한다. 어떤 경우에 ini_set('display_errors', 1)에 표시 오류가있는 경우 표시됩니다.

또는이 경우 IMO에서 더 적합한 기능인 str_replace()을 사용하십시오.

$output = str_replace("<!-– IDCAT -->", $ris["ID_Categoria"], $file_content); 

현재

https://regex101.com/r/ObyMbZ/1

그것을 시도하지만, 그들은 당신이 무엇을 놓치고 있는지, 이는 자동으로의 구분 기호를 넣어주의 할 수 있습니다.

업데이트 :이

$output = preg_replace("<!-– IDCAT -->", $ris["ID_Categoria"], $file_content); 
$output = preg_replace("<!–- CATEGORIA -->", $ris["Nome"], $output); 

:이

while($ris=mysqli_fetch_array($query)) { 

while($ris=mysqli_fetch_assoc($query)) { 

그래서 키가됩니다 배열, http://php.net/manual/en/mysqli-result.fetch-array.php

+0

고맙습니다. /를 추가했지만 아직 아무것도 표시되지 않았습니다. – LucaPearl

+0

Pratically 나는 질의가 되돌려 주어야하는 2 개의 결과를 갖는 2 개의 행을 가지고 있지만 셀 안에 아무것도 인쇄되지 않았다. – LucaPearl

+0

'print_r ($ ris)'을 루프 내부에서 수행하면 데이터의 내용을 볼 수있다. – ArtisticPhoenix

0

이 대체 변경

 $output = preg_replace("<!-- IDCAT -->", $ris["payer_id"], $file_content); 
    $output = preg_replace("<!-- CATEGORIA -->", $ris["description"], $output); 
+0

나는이 아이디어가 어디서 나왔는지, 하지만 의견과 대답 모두에서 언급 한 것처럼 regx는 여전히 정확하지 않습니다. 구분 기호'/'가 누락되었습니다. – ArtisticPhoenix

관련 문제