2016-08-22 105 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注入攻击](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 ?>;'{$name}{$age}

+0

你真的可以从马克的答案中学到一些东西另外的解释对所有人都有好处。 –

+0

已采取的建议。谢谢。 –

2

是的,你的怀疑是正确的,这条线是完全错误的:

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

PHP不是递归执行。那<?php不是一个php代码标签,因为它已经在一个PHP字符串里面,在echo行开始。

即使它不在这个字符串内,并且是正确的PHP代码,它什么都不会做。

<?php $foo; ?> 

只是说“这里是一个变种”,并且php会变。 “啧啧,谢谢”,然后继续前进。您需要回显该变量:

<?php echo $foo; ?> 

将该变量的值作为输出。

既然你在一个字符串是已经,你需要的是

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

注的任何PHP代码LACK,不是变量本身以外。