Чтение неструктурированных данных с использованием PHP в MySQL Database Проблема - PullRequest
0 голосов
/ 13 августа 2011

У меня есть следующий код PHP, который считывает данные из отформатированного текстового файла с данными, разделенными запятыми.

    // Create database gameDB
    if (mysql_query('create database gameDB', $connection)) {
        echo "Database gameDB created successfully.\n";
    } else {
        echo 'Error creating database: ' . mysql_error() . "\n:";
    }

    // select which database to use
    mysql_select_db('gameDB', $connection);

    // create table xyzcoord if it doesn't already exist
    mysql_query('CREATE TABLE IF NOT EXISTS xyzcoord (
        Frame varchar(100),
        X varchar(100),
        Y varchar(100),
        Z varchar(100))', $connection);

    $wx = array_map('trim',file("20-frames-xyz-coordinates.txt"));
    $newwx = array();
    foreach($wx as $i => $line)
    {
            if ($i > 1)
            {
                    $tmp = array_filter(explode(' ',$line));
                    $q = "insert into xyzcoord (Frame, X, Y, Z) values ('" . implode("','",$tmp) . "')";
                    $rw = mysql_query($q) or die("Problem with the query: $q<br>" . mysql_error());
            }
    }
?>

Моя проблема в том, что у меня есть другой текстовый файл, который мне нужно прочитать, где данные неструктурированы в формате ниже, для 60 кадров.данные, которые еще не отформатированы, и сохраните их в БД MySQL в виде таблиц.Я не уверен, как я могу читать данные в формате его с использованием PHP.Я рассмотрел использование JSON.Любая помощь приветствуется.

1 Ответ

0 голосов
/ 13 августа 2011

Я предполагаю, что первые две строки пустые, а затем данные начинаются непрерывно со строки 3 (index = 2); цифры в верхней части должны быть изменены, если это не так. В противном случае замените цикл foreach следующим, и он должен работать:

foreach($wx as $i => $line)
{
        if ($i > 1 and ($i-2)%4 == 0)
        {
                $q = "insert into xyzcoord (Frame, X, Y, Z) values ('" . $line . str_replace('X_coordinates ','',$wx[$i+1]) . str_replace('Y_coordinates ','',$wx[$i+2]) . str_replace('Z_coordinates ','',$wx[$i+3]) . "')";
                $rw = mysql_query($q) or die("Problem with the query: $q<br>" . mysql_error());
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...