Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Запись массива в БД
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Запись массива в БД

Страниц (1): [1]
 

1. Okolot - 21 Февраля, 2015 - 15:55:27 - перейти к сообщению
Все привет! Подскажите как записать массив в бд mysql... я в этом новенький....
Делаю так
PHP:
скопировать код в буфер обмена
  1.         $res=MYSQL_QUERY("
  2. SELECT
  3.  products.id AS pid,
  4.  MD5(CONCAT(products.name, products.descript, products.fulldesc, products.func, products.id)) AS md_p,
  5.  MD5 (GROUP_CONCAT(images.image_id)) AS md_i
  6. FROM products
  7.  INNER JOIN images
  8.    ON products.id = images.product_id
  9. GROUP BY products.id,
  10.         products.descript,
  11.         products.fulldesc,
  12.         products.func
  13. ");    
  14. $j=0;
  15.  while ($row=MYSQL_FETCH_ARRAY($res))
  16.     {
  17.      $pid[j]=$row['pid'];
  18.      $md_p[j]=$row['md_p'];
  19.      $md_i[j]=$row['md_i'];
  20.       echo "$j<>$pid[j]<>$md_p[j]<>$md_i[j]<br>";//Добавлено для контроля
  21.       $j++;
  22.       }
  23.        
  24.  $d=date('Ymd');
  25.        
  26.  
  27.  for ($i=0; $i < $j; $i++)
  28.     {
  29.       $sql="INSERT INTO compare_products (id, text, img, date) VALUES ($pid[i], '$md_p[i]', '$md_i[i]', $d)";
  30.       MYSQL_QUERY($sql);
  31.       echo "$i<>$pid[i]<>$md_p[i]<>$md_i[i]<br>";//Добавлено для контроля
  32.     }
  33.  


При этом в базу ни чего не пишеться, на экране вот такое

CODE (htmlphp):
скопировать код в буфер обмена
  1. 13935<>1000043381<>04efe0126078f1609371cfd6978c3bfa<>fbcdfac3d1d8250ff077a93fe6467d37
  2. 13936<>1000043382<>c24862598ab72f072b151f57a95722a1<>313fa9a7f8ae9c6142ab8b979811be6b
  3. 13937<>1000043383<>8b7cd18db16560fe79a5ff5352bf1905<>37c97172fb90c029833e6a46532dc984
  4. 13938<>1000043384<>f71894d72e15d66b53f7f7a86a457351<>93c2ff1e1844baaeeea28891e9d99670
  5. 0<><><>
  6. 1<><><>
  7. 2<><><>
  8. 3<><><>
  9. 4<><><>


ПыСы Если убрать индексы, то в базу пишеться последнее значение...
2. Anguis - 21 Февраля, 2015 - 21:55:08 - перейти к сообщению
Okolotобъяви массивы перед первым циклом.
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $pid=array();
  3. $md_p=array();
  4.  $md_i=array();
  5.  


И на этапе разработки стоит включать вывод сообщений об ошибках и варнингов с нотисами..
3. exlant - 21 Февраля, 2015 - 23:00:23 - перейти к сообщению
так вы же и дергаете хеши из первой базы
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. MD5(CONCAT(products.name, products.descript, products.fulldesc, products.func, products.id)) AS md_p,
  3.  MD5 (GROUP_CONCAT(images.image_id)) AS md_i
  4.  

md5 и создает эти строчки
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. 04efe0126078f1609371cfd6978c3bfa<>fbcdfac3d1d8250ff077a93fe6467d37
  3. c24862598ab72f072b151f57a95722a1<>313fa9a7f8ae9c6142ab8b979811be6b
  4. 8b7cd18db16560fe79a5ff5352bf1905<>37c97172fb90c029833e6a46532dc984
  5. f71894d72e15d66b53f7f7a86a457351<>93c2ff1e1844baaeeea28891e9d99670
  6.  
4. Okolot - 27 Февраля, 2015 - 16:30:53 - перейти к сообщению
Anguis Гранд мерси!!!

 

Powered by ExBB FM 1.0 RC1