2016-08-22 3 views
-1
<?php 
    if(isset($_POST['Search'])) 
     { 
     //Database connection 
     $num = $_POST['num']; 
     $dbhost = 'localhost'; 
     $dbuser = 'root'; 
     $dbpass = ''; 
     $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error 
     connecting to mysql'); 
     $dbname = 'vasuki'; 
     mysql_select_db($dbname); 
     $Result = mysql_query("SELECT id, name, age FROM details WHERE id = 
     '$num'"); 
     while($row = mysql_fetch_array($Result)) 
      { 
       $name = $row['name'] ; 
       $age = $row['age']; 
       //Creating table 
        echo "<div style='top: 273px; 
        margin-left: 60px; 
        position: absolute;left: 30px;'> 
        <table border='1'><tr><th>name</th> 
        <th> age </th></tr> 
        //Connect to Database to fetch the data 
        <td>echo'<?php $name ?>;'</td> 
        <td>echo'<?php $age ?>;'</td> 
        </table></div>"; 
     } 

내 xampp 데이터베이스에 데이터가 있습니다.php 및 mysql에 연결해야합니다.

프런트 엔드에서 PHP를 사용하여 데이터를 검색하고 데이터베이스에서 데이터를 찾아야합니다.

여기에 PHP 코드 만 붙여 넣었습니다. 위 코드에서 실수를 저 지르 길 바랍니다.

나는 코드를 아래이 역시 있습니다

<td>echo'<?php $name ?>;'</td> 

이것은 corrct 구문을?

위 라인에 오류가 발생하고 있습니다.

echo cmd 안에 사용하고 있으므로 의심 스럽습니다. 친절히 정리하십시오

+1

* "위의 줄에 오류가 발생했기 때문에."* - 정확하게 무엇입니까? - * "잘 알고있다"* - 오류 ... 당신은 분명히해야 할 사람입니다. 게다가 POST 배열이 괜찮은지 알 수있는 방법이 없습니다. –

+2

[sql injection attacks] (http://bobby-tables.com)에 취약하며 mysql _ *() 함수는 더 이상 사용되지 않으며 더 이상 사용되지 않으며 최신 PHP 버전에서 제거됩니다. 그리고 정확히 ** 어떻게 **이 코드가 작동하지 않습니까? –

+0

오, 내 머리가 아프다. 앞에서 언급 한 mysql_ deprecation과 마찬가지로 echo 문에서 echo를 사용할 수없고 PHP 블록 내에서 php 태그를 사용할 수 없습니다. – aynber

답변

0
<?php 
    if(isset($_POST['Search'])) 
     { 
     //Database connection 
     $num = $_POST['num']; 
     $dbhost = 'localhost'; 
     $dbuser = 'root'; 
     $dbpass = ''; 
     $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error 
     connecting to mysql'); 
     $dbname = 'vasuki'; 
     mysql_select_db($dbname); 
     $Result = mysql_query("SELECT id, name, age FROM details WHERE id = 
     '$num'"); 
     while($row = mysql_fetch_array($Result)) 
      { 
       $name = $row['name'] ; 
       $age = $row['age']; 
       //Creating table 
        echo "<div style='top: 273px; 
            margin-left: 60px; 
            position: absolute;left: 30px;'> 
             <table border='1'><tr><th>name</th> 
             <th> age </th></tr><tr> 
             <td> $name </td> 
             <td> $age </td></tr> 
             </table></div>"; 
     } 
?> 

당신은 이미 에코 키워드 모든 HTML 코드 내부 (")로하고 (") 다음 에코 내부 에코 쓸 수 및 PHP는 자동 변수로 $ 식별자를 이해하기 시작했다.

동일한 결과를위한 또 다른 방법은 다음과 합칠 사용된다

echo "<div style='top: 273px; 
margin-left: 60px; 
position: absolute;left: 30px;'> 
<table border='1'><tr><th>name</th> 
<th> age </th></tr><tr><td>".$name."</td><td>".$age."</td></tr></table></div>"; 
여기

도트 (.).

또는 당신은뿐만 아니라이 작업을 수행 할 수 있습니다

echo "<div style='top: 273px; 
     margin-left: 60px; 
     position: absolute;left: 30px;'> 
     <table border='1'><tr><th>name</th> 
     <th> age </th></tr><tr><td>"; 
echo $name; 
echo "</td><td>"; 
echo $age; 
echo "</td></tr></table></div>"; 

는 쉽게 어떤 느낌 마십시오.

+0

Madhu, 정말 지금 일하고 있습니다 .-) 감사합니다. – Sukki

1

변경 echo'<?php $name ?>;'echo'<?php $age ?>;'에서 및 {$age}으로 변경하십시오.

+0

당신은 정말로 마크의 대답으로 무언가를 배울 수 있습니다. 추가 된 설명은 모두에게 유익합니다. –

+0

취해진 조언. 고맙습니다. –

2

예, 의심이 올바른지,이 라인은 완전히 잘못된 것입니다 :

echo "<div style='top: 273px; 
     [..snip..] 
    <td>echo'<?php $name ?>;'</td> 

PHP는 재귀 적으로 실행되지 않습니다. 그 은 echo 라인에서 다시 시작된 PHP 문자열 안에 있기 때문에 이 아닌 PHP 코드 태그입니다.

비록이 문자열 안에 없었고 적절한 PHP 코드 였지만 아무 것도 할 수 없었습니다.

<?php $foo; ?> 

그냥 "here 's a var"이고, php는갑니다. "이런, 고마워."하고 계속 나아 간다. var :

<?php echo $foo; ?> 

출력에 해당 변수의 값을 표시하려면 해당 변수를 반향시켜야합니다. 이미 문자열에있어 이후

, 당신이 필요

echo "<div etc... 
    <td>$name</td> 
    etc... 
    "; 

참고 변수 자체 이외의 PHP 코드의 LACK이다.