2013-05-02 7 views
0

У меня есть два массива $ fuel и $ hours, с таким же количеством данных, и я хочу вставить их в одно и то же время в базе данных.Вставьте два массива данных за один раз в базу данных

вот что у меня есть:

$fuellength = count($fuel); 
$f = 0;    

for($f=0;$f<$fuellength;$f++){ 
if ($fuel[$f] > 0){ 
    if (
    mysql_query("INSERT INTO grafiku (vehicle_plate, fuel_level, date_hour) VALUES (".$userid.", ".$hours[$f].",  '".$fuel[$f]."')"); 
     ) 
     echo "data has been inserted"; 
    else 
     echo "data has not been inserted"; 
} //end if 
}//end for      

Он показывает мне ничего! Правильно ли использовать цикл «для» для массивов? Или я должен использовать только «foreach»? Если да, то как я могу зацикливать оба массива в одно и то же время?

Заранее благодарен! С уважением

+1

[** Пожалуйста, не используйте 'mysql_ * 'функции в новом коде **] (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://www.brightmeup.info/article.php?a_id=2). –

+0

Это требует базовой отладки. Какая ценность '$ fuellength'? Выполняется ли ваш запрос на самом деле? (http://php.net/mysql_error) –

+0

Что включают эти переменные? $ userid, $ hours [$ f], $ fuel [$ f Используйте var_dump(), чтобы найти значения используемых вами переменных –

ответ

0

Если ваш код в точности такой, вы ничего не увидите, потому что у вас есть фатальная ошибка php. У вас есть инструкция ELSE без инструкции IF. Удалите комментарии из своего заявления IF, и он должен снова работать.

+1

Существует если строка уже. Разве вы не видите? – zkanoca

+0

Эй, спасибо, что ответили! Снял их, все равно ничего. – Mirela

+0

текущий IF не соответствует команде ELSE, потому что оператор IF закрывается сразу после инструкции ELSE – Tomas

0
$fuellength = count($fuel); 
$f = 0;    

for($f=0;$f<$fuellength;$f++){ 
if ($fuel[$f] > 0){ 
    $qryStr = "INSERT INTO grafiku (vehicle_plate, fuel_level, date_hour) VALUES (".$userid.", ".$hours[$f].",  '".$fuel[$f]."')"; 
    echo $qryStr."/br"; 
} 
} 

Проверьте, получаете ли вы запрос и значения.

+0

Никакой запрос и значения не показывались. даже не отображается сообщение об ошибке .. Это не так хорошо:/ – Mirela

+0

Это означает, что это не значит, что он не попадает в цикл for или if statement.Thats, почему он ничего не показывает. Я думаю, что вы в топливе ничего не содержали. Попробуйте print_r ($ fuel) или var_dump ($ fuel) для извлечения содержимого. –

+0

попробовал .. еще ничего .. – Mirela

0

Предполагая, что вы установили соединение с сервером MySQL:

$cn = mysql_connect("hostname", "username", "password"); 

Предполагая, что вы выбрали базу данных:

mysql_select_db("databasename", $cn); 

Ваша логика верна. Но ваш порядок вставки SQL не соответствует вашим полям. Вы пытаетесь вставить $fuel[$f] данные в поле date_hour.

$f = 0; 
$added = 0; 
$noAdded = 0;    

while($f < count($fuel)) 
{ 
    if ($fuel[$f] > 0) 
    { 
     if(mysql_query("INSERT INTO grafiku 
        (vehicle_plate, fuel_level, date_hour) 
      VALUES (".$userid.", ".$fuel[$f].", '".$hours[$f]."')" 
     )) 
      $added++; 
     else 
      $noAdded++; 
    } 

    $f++; 
} 

//Then you can display additional information after inserting is done. 

echo $added . " data has been added to table."; 
echo "<br />"; 
echo $noAdded . " data could not be added to table."; 
+0

Ошибка анализа: ошибка синтаксиса, неожиданный T_VARIABLE в ../charts/fuel_db_test.php в строке 129. это строка '$ added ++' – Mirela

+0

Исправлено. отсутствовала строка '' 'перед' $ added ++; '. – zkanoca

+0

Номер транспортного средства имеет только цифры 3 цифры (exp: 345, 400, 564 ..etc), которые также являются user_id этого транспортного средства. В моем случае автомобиль считается пользователем системы. Речь идет не о пластинке автомобиля, которую мы обычно видим. (Например, пластинка W 238 WK в Англии) – Mirela

0

Существует ошибка в коде, Анализировать ошибка: синтаксическая ошибка, неожиданный T_ELSE в < имя файла> в строке 12

<?php 

    $fuellength = count($fuel); 
    $f = 0;    

    for($f=0;$f<$fuellength;$f++){ 
    if ($fuel[$f] > 0){ 
    if (mysql_query("INSERT INTO grafiku (vehicle_plate, fuel_level, date_hour) VALUES  (".$userid.", ".$hours[$f].",  '".$fuel[$f]."')")) 
    echo "data has been inserted"; 
    else 
    echo "data has not been inserted"; 
} //end if 
}//end for 
?> 
Смежные вопросы