Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Обновление строк в таблице БД
shonny  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 6
Пользователь №: 43574
На форуме: 25 дней
Карма:




Здравствуйте, у меня проблема такая. Есть таблица, куда я добавляю данные через файл insert-ом 1 раз, далее нужно просто обновлять строки, где поменялись значения. Структура таблицы ниже, надо обновить поля ip, ping, hostname, ports, mac. Я знаю как обновить одну строку, но как реализовать это для всех строк?
Вот функция вставки
    mysql_select_db("infoip") or die(mysql_error());    
$q= mysql_query ("SELECT * FROM `ip2`");
if (mysql_num_rows($q) == 0){
$fp = fopen('ip2.csv', 'r+'); // чтение и запись
while(!feof($fp)) {
$buffer = fgets($fp, 4096);
list($IP,$Ping,$Hostname,$Ports,$Mac)=explode(",",$buffer);
$sql = "INSERT INTO ip2 (IP, Ping, Hostname, Ports, Mac, date) VALUES('".$IP."','".$Ping."','".$Hostname."','".$Ports."','".$Mac."', NOW())";
mysql_query($sql,$conn) or die(mysql_error());
echo fgets($fp) . "<br />";
}
fclose($fp);
}

Пытался сделать таким же образом update, но не получается
  $g= mysql_query ("SELECT * FROM `ip2`");
$fd = fopen('ip2.csv', 'r+'); // чтение и запись
while(!feof($fd)) {
$buffer = fgets($fd, 4096);
list($IP,$Ping,$Hostname,$Ports,$Mac)=explode(",",$buffer);
$sql_up = "UPDATE ip2 SET Ping = '$Ping', Hostname = '$Hostname', Ports = '$Ports', Mac = '$Mac' WHERE IP = '$IP'";

mysql_query($sql_up) or die(mysql_error());
}
fclose($fd);

Выводит такие ошибки:
Notice: Undefined offset: 4 in F:\xampp\htdocs\PhpProject1\update.php on line 6

Notice: Undefined offset: 3 in F:\xampp\htdocs\PhpProject1\update.php on line 6

Notice: Undefined offset: 2 in F:\xampp\htdocs\PhpProject1\update.php on line 6

Notice: Undefined offset: 1 in F:\xampp\htdocs\PhpProject1\update.php on line 6
Как исправить эти ошибки? Или данный запрос не совсем корректный?
Структура таблицы ip2
user posted image
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14966
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 27 дней
Карма: 443




shonny, коли ты пишешь в БД все данные из чётко структурированного файла, то используй LOAD DATA INFILE http://www.mysql.ru/docs/man/LOAD_DATA.html, чтобы не мучаться, а загрузить всё одной командой.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 7 дней
Карма: 170




shonny
после $buffer = fgets($fd, 4096)
напиши var_dump($buffer) и все увидишь.


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14966
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 27 дней
Карма: 443




Цитата (AllesKlar @ 8.11.2016 - 22:28)
напиши var_dump($buffer) и все увидишь.

Вот скажи мне, плз. Зачем отлаживать заведомо нехороший вариант? Лучше сразу забыть про него и делать правильно.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 7 дней
Карма: 170




sergeiss
патамушта разные плоскости ошибок.
Твой совет хорош по производительности.
Мой, как ревностного зануды к обработке ошибок - пусть дети знают, что функции иногда выкидывают исключения / возвращают false


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
shonny  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 6
Пользователь №: 43574
На форуме: 25 дней
Карма:




AllesKlar
Вывело все, то в массиве и в конце написано bool(false)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
shonny  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 6
Пользователь №: 43574
На форуме: 25 дней
Карма:




Осталось только разобраться, почему выдает ложь
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса