2014-10-24 4 views
-1

как мне конкат два столбца? Мне нужно, чтобы FIRSTNAME и LASTNAME равнялись $ Employee_Name. Я пробовал разные комбинации и до сих пор не работает. Также я знаю, что у этого есть огромная проблема SQL-инъекций. Я еще не знаю, как исправить проблему, которую я ищу.concat две колонки

<?php 

    header('Content-Type: application/json');$db_conx = mysqli_connect("localhost", "root", "systems399","employees_db"); 
    $Employee_Name= $_POST["Employee_Name"]; 
    $sql="SELECT * FROM names WHERE FIRSTNAME='$Employee_Name' "; 
    $query= mysqli_query($db_conx, $sql); 
    $row = mysqli_fetch_array($query, MYSQLI_ASSOC); 
    $rc= $row["EMPLOYEE_NUMBER"]; 
    echo json_encode ($rc); 
    ?> 

Я пробовал его таким образом, и он не работает.

<?php 
    header('Content-Type: application/json'); 
    $db_conx = mysqli_connect("localhost", "root", "systems399", "employees_db"); 
    $Employee_Name= $_POST["Employee_Name"]; 
    $sql="SELECT * FROM names WHERE FIRSTNAME='$Employee_Name' AND LASTNAME='$Employee_Name'"; 
    $query= mysqli_query($db_conx, $sql); 
    $row = mysqli_fetch_array($query, MYSQLI_ASSOC); 
    $rc= $row["EMPLOYEE_NUMBER"]; 
    echo json_encode ($rc); 
?> 

Вот мой код Javascript

$(document).ready(function() { 
    $("#Employee_Name").change(function() { 
     var Employee_Name = $(this).val(); 
     if (Employee_Name != '') { 
      $.ajax({ 
       type: "post", 
       url: "insert.php", 
       data: "Employee_Name=" + Employee_Name, 
       datatype: "json", 
       success: function(data) { 
        $("#Employee_Number").val(data); 
        $('#Employee_Number').css("background-color", "#B3CBD6") 
        $('#Employee_Number').animate({ 
         backgroundColor: "#ffffff" 
        }); 
       }, 
       error: function(response) { 
        alert("error scripting") 
       } 

      }); 
     } else { 
      $("#Employee_Number").val(""); 
     } 

    }); 
}); 
+0

'CONCAT (FIRSTNAME, "", LASTNAME) =«$ Employee_name'' – JNevill

+0

Я буду стараться, что я сделал это без CONCAT, прежде чем это возможно с CONCAT впереди будет работать. – Donny

+0

$ sql = "SELECT * FROM names WHERE CONCAT (FIRSTNAME," ", LASTNAME) = '$ Employee_name'"; Я получаю ошибку – Donny

ответ

2

Есть 2: максимальные возможности

1.

$sql = "SELECT CONCAT(`FIRSTNAME`, ' ', `LASTNAME`) AS `EmployeeName`, * FROM `names` HAVING `EmployeeName` = '".$Employee_name."'"; 

2.

$sql = "SELECT * FROM `names` WHERE CONCAT(`FIRSTNAME`, ' ', `LASTNAME`) = '".$Employee_name."'"; 
+0

2-й должен работать. Мне просто нужно посмотреть на мой JavaScript, почему он не тянет номер сотрудника. – Donny

+0

оба должны работать. Мне просто нужно взглянуть на мой JavaScript, чтобы понять, почему он не тянет номер сотрудника. Это странно, потому что, когда у меня было это с именем, он работает, пытаясь набрать как первый, так и последний, не – Donny

+0

Да, оба одинаковы, просто используя разные условия фильтрации. – AlexL

1

Вот пример -

$sql = "SELECT CONCAT(`FIRSTNAME`, ' ', `LASTNAME`) AS `EmployeeName`, * FROM `names` WHERE `FIRSTNAME` = '" . $First_Name . "' AND `LASTNAME` = '" . $Last_Name' . "' "; 
+0

Я пробовал, чтобы этот пример менял мой сценарий – Donny

+0

Что вы подразумеваете под «ошибками» мой сценарий "? Какая ошибка это дает вам? –

+0

@Jay Ваше решение неверно. Ему нужно искать по всему полному имени, а не по частям имени, как в вашем скрипте. См. Мой ответ. – AlexL

Смежные вопросы