Не удается получить Ajax для обновления результатов строки MySQL, сгруппированных по GROUP CONCAT. Это вообще возможно?

Мне удалось заставить Ajax динамически обновлять результаты строк MySQL, нажав на запись, которую я хочу обновить, и это работает. Однако, если я использую GROUP CONCAT, я все еще могу щелкнуть по записи, которую я хочу обновить, но изменения не сохраняются. Это нормально? Или это все еще должно работать с GROUP CONCAT?

Текущий код, который работает, когда запрос mysql не использует concat группы:

Это функция:

function edit_data(id, text, column_name)
{
$.ajax({
url:"food_edit.php",
method:"POST",
data:{id:id, text:text, column_name:column_name},
dataType:"text",
success:function(data){
//alert(data);
}
});
}

И это food_edit.php

<?php
include ("expenses.inc");
session_start();

$con = mysqli_connect("$server","$user","$pw","$db");

$id = $_POST["id"];
$text = $_POST["text"];
$column_name = $_POST["column_name"];

$query = "UPDATE food SET ".$column_name."='".$text."'    WHERE id='".$id."'";
if(mysqli_query($con, $query))
{
echo 'Data Updated';
}
?>

Я попытался обновить код, как показано ниже, чтобы компенсировать групповое совпадение, но это не сработало:

function edit_data(ID, FOOD_TYPE, STORE_NAME, LOCATION, DATUM, COST)
{
$.ajax({
url:"food_edit.php",
method:"POST",
data:{ID:ID, FOOD_TYPE:FOOD_TYPE, STORE_NAME:STORE_NAME, LOCATION:LOCATION, DATUM:DATUM, COST:COST},
dataType:"text",
success:function(data){
//alert(data);
}
});
}

и food_edit.php:

<?php

include ("expenses.inc");

session_start();

$con = mysqli_connect("$server","$user","$pw","$db");

$id = $_POST["id"];

$FOOD_TYPE = $_POST["FOOD_TYPE"];
$STORE_NAME = $_POST["STORE_NAME"];
$LOCATION = $_POST["LOCATION"];
$DATUM = $_POST["DATUM"];
$COST = $_POST["COST"];

$query = "UPDATE food SET
".$FOOD_TYPE."='".$_POST["FOOD_TYPE"]."',
".$STORE_NAME."='".$_POST["STORE_NAME"]."',
".$LOCATION."='".$_POST["LOCATION"]."',
".$DATUM."='".$_POST["DATUM"]."',
".$COST."='".$_POST["COST"]."'

WHERE ID='".$_POST["ID"]."'";

if(mysqli_query($con, $query))
{
echo 'Data Updated';
}
?>

Надеюсь, это проясняет.

Я добавил запрос MySQL с группой concat

$query = "Select

GROUP_CONCAT(ID,' <br>' ORDER BY DATUM SEPARATOR ' ') AS ID,

GROUP_CONCAT(FOOD_TYPE,' <br>' ORDER BY DATUM SEPARATOR ' ') AS FOOD_TYPE,

GROUP_CONCAT(STORE_NAME,' <br>' ORDER BY DATUM SEPARATOR ' ') AS STORE_NAME,

GROUP_CONCAT(LOCATION,' <br>' ORDER BY DATUM SEPARATOR ' ') AS LOCATION,

GROUP_CONCAT(DATUM,' <br>' ORDER BY DATUM SEPARATOR ' ') AS DATUM,

GROUP_CONCAT(COST,' <br>' ORDER BY DATUM SEPARATOR ' ') AS COST

FROM
(
SELECT food.ID, food.FOOD_TYPE, food.STORE_NAME, food.LOCATION, food.DATUM, food.COST FROM food
) TEST
group by DATUM
ORDER BY DATUM DESC";

-1

Решение

Было бы полезно увидеть пример того, что именно вы вызываете на своем сервере для внесения изменений, но я предполагаю, что конечная точка API, которую вы используете, ожидает один идентификатор элемента, а теперь вы отправляете несколько. В общем, обновления не могут содержать какую-либо группировку, так как они должны ссылаться на определенные строки. Группировка может быть выполнена с помощью подвыборов.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector