2016-07-28 9 views
0

所以我试图根据用户输入调用一个值。我已经为表单编写了代码,但是我需要根据用户在表单上输入的内容调用服务器的值。有没有一种方法可以使用HTML表单根据用户输入值显示数据库值?如果是的话,我该怎么做?

这是我写到现在为止:

@$conn = new mysqli($host, $user, $pass, $db_name); 
$resault = $conn->query("SELECT * FROM field_data_field_paint_efficeincy_"); 
$rows=$resault->fetch_all(MYSQLI_ASSOC); 
echo '<pre>',print_r($rows),'</pre>';foreach($rows as $row){ 
echo $row['field_paint_efficeincy__value'], '<br>'; 
} 
?> 
<form action="" method="post"> 
    Variable: <input type="number" name="P" value="0" /> <br/> 
+0

这只适用于你*正确缩进你的代码。也许是'WHERE'子句。 – mario

+0

这是什么一直困扰着我,我不知道如何编写WHERE,所以我可以从窗体中调用它,那是因为我不熟悉MySQL内部的PHP。那么我怎么称呼那个价值呢? –

+0

'带有参数的WHERE p =?'不是粗糙的答案建议。看看手册或http://stackoverflow.com/documentation/php/275/using-a-database/2685/preventing-sql-injection-with-parametrized-queries#t=201607281502298987126 – mario

回答

-1

事情是这样的:

<?php 
if(isset($_GET["P"])) { 
    $conn = new mysqli($host, $user, $pass, $db_name); 
    $resault = $conn->query("SELECT * FROM field_data_field_paint_efficeincy_ WHERE field_paint_efficeincy__value = '" . $_GET["P"] . "'"); 

    //Assuming field_paint_efficeincy__value is the column that should match the input value 

    if ($resault->num_rows > 0) { 
     while($row = $resault->fetch_assoc()) { 
       echo $row['field_paint_efficeincy__value'] . "<br />"; 
     } 
    } 
    $conn->close(); 
} 
?> 

<form action="<?php echo $_SERVER['PHP_SELF']?>" method="get"> 
    Variable: <input type="number" name="P" value="0" /> <br/> 
    <input type="submit" value="Submit" name="submitButton" /> 
</form> 
+0

如果我不得不用文本来做?我的意思是说,我必须将输入从“数字”更改为“文本”,但if语句不起作用,因为我正在尝试拨打一个数字。没有? –

-1

你试图用一个表单提交在查询一个动态变量? 如果是这样,您需要获取发布的值并将其分配为要在查询中使用的变量。请记住清理并保护您的文章提交..这不是一个安全的例子。

<?php 
$p = $_POST['P']; 
$resault = $conn->query("SELECT * FROM field_data_field_paint_efficeincy_ where p='$p'"); 
?> 

假设p是数据库列的名称。

相关问题