使用concat从数据库返回数据

时间:2017-06-07 05:04:01

标签: javascript php

我有一个文本框,其中IDNAME名为"名称"。在我的数据库中,我有名字,介词,姓氏。在SQL中,我使用concat将这些组合成一个" name"。

当我尝试回显结果$result['name']时,我收到浏览器错误。

我想我的代码中的多变量$name =出了问题。但我无法解决它。

有人知道我的代码有什么问题吗?

<?php    
session_start();

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "db";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname) ;
// Check connection
if ($conn->connect_error) {
    die('Connection failed: ' . $conn->connect_error) ;
}else {
    $id = isset($_POST['id']) ? $_POST['id'] : '';
    $name = isset($_POST['firstname']) ? $_POST['firstname'] : '';
    $name .= isset($_POST['preposition']) ? $_POST['preposition'] : '';
    $name .= isset($_POST['lastname']) ? $_POST['lastname'] : '';

    $query = 'SELECT concat(firstname, ' ', preposition, ' ', lastname) as name FROM users WHERE id="' . mysqli_real_escape_string($conn, $id) . '"';    
    $res = mysqli_query($conn, $query) ;
  if (mysqli_num_rows($res) > 0) {
     $result = mysqli_fetch_assoc($res) ;
    echo $result['name'];   
  }else{
     $result = mysqli_fetch_assoc($res) ;
    echo $result['name']; 
  }    
} 

?>

修改1:

文本框:

<input type="text" class="form-control" id="name" name="name">

使用Javascript:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script> 
    function getUser(value) { // Do an Ajax request to retrieve the product price 
    console.log("getUser before ajax", jQuery('#id').val());
    jQuery.ajax({ 
    url: './get/get5.php', 
    method: 'POST', 
    data: {'id' : jQuery('#id').val()},
    success: function(response){ 
        console.log("getUser after ajax", jQuery('#id').val());
        jQuery('#name').val(response);
    }, 
    error: function (request, status, error) { 
        alert(request.responseText); 
    }, 
    });                 
    } 
</script>

0 个答案:

没有答案