PHP - CSV файл перезаписывается на основе UID - PullRequest
0 голосов
/ 28 июля 2010

Я знаю, я знаю, база данных была бы лучшей идеей для того, что я хочу делать, но я не хочу хлопот с работой с базой данных и обучением.

У меня есть CSV, похожий на

TestUser,2010/07/27 13:26:25,2010/07/27 13:26:29,0.0011,0.0006,0.06
TestUser,2010/07/27 14:22:12,2010/07/27 14:22:24,0.0033,0.0027,0.27
TestUser,2010/07/27 14:22:41,2010/07/27 14:22:53,0.0033,0.0028,0.28
TestUser,2010/07/27 14:25:26,2010/07/27 14:25:33,0.0019,0.0015,0.30

2-й столбец - это то, что я использую в качестве UID (уникальный идентификатор), поэтому он никогда не будет таким же в CSV. Код PHP, который я использую для записи в CSV:

$myFile = "data.csv";
$fh = fopen($myFile, 'a') or die("can't open file");

$stringData = $_POST["Name"].",".$_POST["DateStart"].",".$_POST["DateStop"].",".$_POST["TotalHours"].",".$_POST["Hours"].",".$_POST["Pay"]."\n";
fwrite($fh, $stringData);
fclose($fh);

Что нужно сделать, чтобы иметь его, чтобы, если кто-то с тем же DateStart (UID) запускал PHP, он будет перезаписывать все, что имеет тот же UID. По сути, я думаю, что, вероятно, придется проходить массив файлов с каждой строкой, а затем, когда он достигает строки с тем же UID, он вместо этого будет перехватывать то, что было POSTed, а не то, что у него есть.

Я не уверен, что это лучший способ добиться того, чего я хочу.

Ответы [ 2 ]

6 голосов
/ 28 июля 2010

Учим базы данных. В конечном итоге вам будет лучше ...

1 голос
/ 28 июля 2010

Хотя я полностью согласен с ircmaxell (научиться использовать базу данных), вы все еще заслуживаете правильного ответа на вопрос.

Я действительно считаю, что вам придется читать построчно и проводить сравнение.Нет, это не очень эффективно, но ваша настройка на самом деле не учитывает эффективность.

«Я не уверен, что это лучший способ добиться того, чего я хочу».Как предположил ircmaxell, использование базы данных было бы невероятно простым.MySQL бесплатно и это кусок пирога, чтобы забрать.Нечто столь простое, как это, может быть выбито за пару часов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...