Проблема управления данными — Как управлять извлеченными данными из MySQL?

Я занимаюсь разработкой игры (c #) с базой данных (mysql) и веб-сервисом (php) для извлечения данных. Проблема заключается в управлении данными. В базе данных есть таблица с названием элементов, и в ней есть несколько столбцов, таких как id, item_name, item_description, item_prop, update_date, ownerId. Я добавил 70 пунктов в эту таблицу вручную. Пользователи также могут добавлять некоторые элементы в эту таблицу или обновлять элементы, которые они уже добавили в игру. Моя цель — извлечь все затронутые строки таблицы, когда пользователь впервые вошел в систему, и сохранить ее как файл json в папке с игрой. После этого прочитайте этот файл, чтобы заполнить игровое окружение этими предметами.

Я пытаюсь добиться этого. Во-первых, я держу в игре переменную updateDate, которая выглядит как «1990-05-10 21:15:43». Во-вторых, я отправляю эту переменную в веб-сервис как '$lastUpdateDate'; и сделать запрос в соответствии с этой переменной в базе данных. select * from channels where update_date >= '$lastUpdateDate'; и запишите эти строки в файл json как items.json. после этого сделайте второй запрос, чтобы получить время и обновить переменную updateDate в игре. select select now() as 'Result';, Таким образом, пользователю не нужно было бы получать всю таблицу и записывать в файл json каждый процесс входа в систему. Таким образом, это было бы хорошо для производительности и использования Интернета. Проблема возникает, когда пользователи обновляют элемент, который уже был добавлен ранее. Я могу видеть обновленный элемент тоже с первым запросом, но я записал его в файл json дважды таким образом.

php код часть getItems моего loginuser.php:

<?php
include './function.php';
// CONNECTIONS =========================================================
$host = "localhost"; //put your host here
$user = "root"; //in general is root
$password = ""; //use your password here
$dbname = "yourDataBaseName"; //your database
$phpHash = "yourHashCode"; // same code in here as in your Unity game

mysql_connect($host, $user, $password) or die("Cant connect into database");
mysql_select_db($dbname)or die("Cant connect into database");

$op = anti_injection_register($_REQUEST["op"]);
$unityHash = anti_injection_register($_REQUEST["myform_hash"]);

if ($unityHash == $phpHash)
{
if($op == "getItems")
{
$lastUpdateDate = anti_injection_login($_POST["updateDate"]);
if(!$lastUpdateDate)
{
echo "Empty";
}
else
{
$q = "select * from items where update_date >= '$lastUpdateDate';";
$rs = mysql_query($q);
if (!$rs)
{
echo "Could not successfully run query ($q) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($rs) == 0)
{
echo "No rows found, nothing to print so am exiting";
exit;
}
$arr = array();
while ($row = mysql_fetch_row($rs))
{
$arr = $row;
}
echo json_encode($arr);
}
mysql_close();
}
}
?>

Итак, как я могу решить эту проблему? Или у вас есть идея лучше для этого подхода. Помощь будет высоко ценится. Спасибо за ваше время.

1

Решение

Задача ещё не решена.

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

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

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