|
|
|
| Здравствуте. Зкажите пожалуйсто кто знает.
Как можно перенести данные из Столбца Microsoft Exel в базу ?
Очень нужно. | |
|
|
|
|
|
|
|
|
для: Dinya_1
(07.06.2011 в 19:01)
| | Не получается вставить полученный результат в переменную для последующей записи в базу
Exel
1000039
1001017
......
5770001
|
Код парсера:
<?
$file = $_POST['file'];
$csv_lines = file("1.csv");
if(is_array($csv_lines))
{
//разбор csv
$cnt = count($csv_lines);
for($i = 0; $i < $cnt; $i++)
{
$line = $csv_lines[$i];
$line = trim($line);
//указатель на то, что через цикл проходит первый символ столбца
$first_char = true;
//номер столбца
$col_num = 0;
$length = strlen($line);
for($b = 0; $b < $length; $b++)
{
//переменная $skip_char определяет обрабатывать ли данный символ
if($skip_char != true)
{
//определяет обрабатывать/не обрабатывать строку
///print $line[$b];
$process = true;
//определяем маркер окончания столбца по первому символу
if($first_char == true)
{
if($line[$b] == '"')
{
$terminator = '";';
$process = false;
}
else
$terminator = ';';
$first_char = false;
}
//просматриваем парные кавычки, опредляем их природу
if($line[$b] == '"')
{
$next_char = $line[$b + 1];
//удвоенные кавычки
if($next_char == '"')
$skip_char = true;
//маркер конца столбца
elseif($next_char == ';')
{
if($terminator == '";')
{
$first_char = true;
$process = false;
$skip_char = true;
}
}
}
//определяем природу точки с запятой
if($process == true)
{
if($line[$b] == ';')
{
if($terminator == ';')
{
$first_char = true;
$process = false;
}
}
}
if($process == true)
$column .= $line[$b];
if($b == ($length - 1))
{
$first_char = true;
}
if($first_char == true)
{
$values[$i][$col_num] = $column;
$column = '';
$col_num++;
}
}
else
$skip_char = false;
}
}
}
/* var_dump($values);*/
echo "<pre>";
print_r($values);
echo "</pre>";
?>
|
Результат вывода
Array
(
[0] => Array
(
[0] => 1000039
)
[1] => Array
(
[0] => 1001017
)
...........
[2350] => Array
(
[0] => 5770001
)
)
|
Подскажите пожалуйста как вставить результат ( 1000039 ) в переменную для последующей вставки в базу в цикле
<?
echo "<pre>";
print_r($values);
echo "</pre>";
while($res = mysql_fetch_array($values))
{
$result01 = mysql_query ("INSERT LOW_PRIORITY INTO tabl (`title`) VALUES ($res')",$db);
}
?>
|
| |
|
|
|
|
|
|
|
для: Dinya_1
(07.06.2011 в 23:16)
| | Вот нашел то что нужно, только почемуто в конце в таблице добавляет 30пустых строк.
Как можно убрать сее не удобство?
<?
$data = File("1.csv");
for ($i=0;$i<count($data);$i++) {
$data_array = explode(";", $data[$i]);
echo "<tr>";
for ($f=0;$f<count($data_array);$f++) {
echo "<td><center>$data_array[$f]</td></center>";
$result01 = mysql_query ("INSERT LOW_PRIORITY INTO tabl (`title`) VALUES ('$data_array[$f]')",$db);
}
echo "</tr>";
}
?>
|
//Получается в таком виде
.....
</td></center></tr><tr><td><center>9999901
</td></center></tr><tr><td><center>5770001
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr><tr><td><center>
</td></center></tr>
|
Помогите их убрать.. please | |
|
|
|
|
|
|
|
для: Dinya_1
(08.06.2011 в 00:10)
| | А вы циклом пробегайте по значениям $data и проверяйте не являются ли они пустыми и вообще является ли $data_array массивом. В зависимости от этого принимайте решение выводить очередную строку или пропустить итерацию. | |
|
|
|