Консультироваться в базу данных, когда WHERE будет тем, что я посылаю ему с драйвера Angularjs

У меня есть conection.php, который присоединяет к DB и consultaTickets.php:

<?php  
header('Access-Control-Allow-Origin: *');  
date_default_timezone_set("Chile/Continental");

**// Including database connections**  
require_once 'conection.php';

**// mysqli query to fetch all data from database**    
$query = "SELECT rut, numero FROM Tickets WHERE servicio_id = $_POST['servicio_id']";  
$result = mysqli_query($con, $query);  
$arr = array();  

if(mysqli_num_rows($result) != 0) {  
while($row = mysqli_fetch_assoc($result)) {  
$arr[] = $row;  
}  
}  
**// Return json array containing data from the databasecon**  
echo $json_info = json_encode($arr);  
?>

Проблема это у меня есть в Query в WHERE потому что я хочу послать ему параметр с драйвера AngularJS, потому что so данные, которых я получаю от login... (другой WS).

Вопрос: как я могу делать это?

В angularJS он должен бы быть следующего способа:

$http({
    method: 'POST',
    url: 'http://localhost/Paneldetencion/app/php/consultaTickets.php',
    headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    },
    data: {
        servicio_id: 38
    }
})

.then(function(data) {


var dat = data.data;
$scope.tickets = [];

      for (var i = 0; i < dat.length; i++) {
        dat[i]
        var ticket = {
            numero: dat[i].numero,
            rut: dat[i].rut,

        };
        $scope.tickets.push(ticket);
    } 

}

целое число - число, как он должен идти parseado?

ошибка: Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in /Applications/XAMPP/xamppfiles/....php on line 7

0
задан 03.11.2016, 22:21
2 ответа

попытавшись я прибываю в следующее решение:

<?php
    $db = mysqli_connect('localhost','root','','prueba')
    or die('Error connecting to MySQL server.');
    $postdata = file_get_contents("php://input");
    $request = json_decode($postdata);
    $id = $request->servicio_id;
    $query = "SELECT * FROM servicios WHERE id=".$id;
    mysqli_query($db, $query) or die('Error querying database.');
    $result = mysqli_query($db, $query);
    $array = array();
    while ($row = mysqli_fetch_array($result)) {
        $array[] = array(
            "id" => $row["id"],
            "sucursal_id" => $row["sucursal_id"],
            "nombre" => $row["nombre"],
            "nombre_completo" => $row["nombre_completo"]
        ); 
    }
    echo json_encode($array);
?>

Измените код связи в базу данных, так как я протестировал в моем xampp с php 7.0, и те, которые занимаешь ты, устаревшие в этой версии.

Измените query из-за

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$id = $request->servicio_id;
$query = "SELECT * FROM servicios WHERE id=".$id;

Послав с твоего AngularJS ты делаешь POST

headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json'
},

С этими headers следовательно эти predimentando, что дата, которая послана, - типа JSON и PHP не получает один $_POST поскольку он соответствует.

Поэтому, когда мы пробовали печатать $_POST['servicio_id'] всегда мы получали index undefined

1
ответ дан 24.11.2019, 12:45
  • 1
    PHP/5.6.24 версия я помещу ему 7.0 –  Hernan Humaña 04.11.2016, 01:40
  • 2
    Ты предупреждаешь меня! Этот код протестирован и функционирует совершенно для твоей необходимости! –  sioesi 04.11.2016, 01:47
  • 3
    в controller я посылаю его пойдите как эта определенный правда? –  Hernan Humaña 04.11.2016, 01:51
  • 4
    Если, такой который это было у тебя в твоем коде AngularJs в дате. –  sioesi 04.11.2016, 01:52
  • 5
    после#AJQ; / b> он-лайн < b> 14< / b> < br / > [{" id": null, " identificador": " P"}] –  Hernan Humaña 04.11.2016, 04:39

Не видно, что проблема была AngularJS а как задержания параметры с PHP.

Я представляю, что немного как:

$servicioId = $_POST["servicioId"];

он был должен подавать тебя предполагая, что параметр, который ты посылаешь, был имени servicioId.

Но этого не будет быть достаточным, так как ты кроме того должен соединять эту стоимость для того, чтобы он был включен в консультацию.

Это соединение может подавать тебя.

3
ответ дан 24.11.2019, 12:45
  • 1
    в случае, если это будет in INT как, petici пошел и # 243; n? –  Hernan Humaña 03.11.2016, 21:49

Теги

Похожие вопросы