Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [XML][MySQL][PHP] Wpisanie danych do 3 tabel biorąc ID zawsze z jednej
madsix
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 11.03.2013

Ostrzeżenie: (0%)
-----


Dzień Dobry pisze kolejny temat związany z moim skryptem czytającym plik XML przez PHP wpisując dane do MySQL

Problem na dziś to wpisanie danych do 3 różnych tabel lecz zawsze dając jedno ID z tabeli 1 mniej więcej coś takiego jak na obrazku
linie na czerwono to ID a na niebiesko to co wstawiam z XML

(IMG:http://77.253.200.82/zdjecia/mysql.png)


Kod

  1. <?php
  2. header('Content-Type: text/html; charset=utf-8');
  3. $xml = simplexml_load_file('action1.xml');
  4.  
  5. $con = mysql_connect('localhost', 'root', '');
  6. mysql_select_db('sklep');
  7.  
  8.  
  9.  
  10.  
  11. foreach($xml->produkty->produkt as $produkt){
  12. $Id = $produkt['id'];
  13. $nazwa = $produkt['nazwa'];
  14. $grupa = $produkt['grupa'];
  15. $cena = $produkt['cena_netto'];
  16. $vat = $produkt['vat'];
  17. $magazyn = $produkt['dostepny'];
  18.  
  19.  
  20. echo"<table></tr>";
  21. echo"<td>". $Id ."</td>";
  22. echo"<td>". $nazwa ."</td>";
  23. echo"<td>". $grupa ."</td>";
  24. echo"<td>". $cena ."</td>";
  25. echo"<td>". $vat ."</td>";
  26. echo"<td>". $magazyn."</td>";
  27. echo"</tr></table>";
  28. $Dodaj_Produkt = ("INSERT INTO `qom8d_virtuemart_products` (`virtuemart_product_id`, `product_sku`) VALUES ('', '$Id')");
  29. $query = mysql_query ($Dodaj_Produkt) or die ("Nie dodano". mysql_error());
  30.  
  31. if($query){
  32. $Dodaj_Nazwe = ("INSERT INTO `qom8d_virtuemart_products_pl_pl` (`virtuemart_product_id`, `product_name`) SELECT `virtuemart_product_id` FROM `qom8d_virtuemart_products` WHERE `product_sku` = ('$Id') ");
  33. $query2 = mysql_query ($Dodaj_Nazwe) or die ("Nie dodano". mysql_error());
  34. echo $quary2;
  35. }
  36. }
  37.  
  38.  
  39. /**
  40. id="AGAAKPOKF0003"
  41. nazwa="Filtr węglowy AKPO SOFT - okapy WK-4, WK-5, WK-7"
  42. producent="AKP"
  43. grupa="AGA-OKF"
  44. gwarancja="F000M"
  45. cena_netto="29.33"
  46. vat="23"
  47. magazyn_zewnetrzny="N"
  48. dostepny="0"
  49. data="2011-06-03"
  50. na_zamowienie="T"
  51. oferta_specjalna="N"
  52. ostatnia_zmiana="2011-06-22"
  53. mala_paleta="N"
  54. large="N"
  55. raportowany="T">**/
  56.  
  57. ?>


Błędy jakie otrzymuje

Column count doesn't match value count at row 1
Unknown column 'AGAAKPOKF0001' in 'where clause'

Pomorze ktoś czy znów raczej nie?

Ułożyłem trochę inne zapytanie i dodaje tylko 1 wynik potem zwraca błąd duplikacji kluczy

Kod
$addall = ("
   INSERT INTO `qom8d_virtuemart_products_pl_pl` (`virtuemart_product_id`, `product_name`) VALUES (
   (SELECT `virtuemart_product_id` FROM `qom8d_virtuemart_products` WHERE `product_sku` = '$Id'), '$nazwa')");
   $wysaddall = mysql_query($addall) or die (mysql_error());

Duplicate entry '356' for key 'PRIMARY'



Oto rozwiązanie moje problemu może się komuś przyda

  1. $Nazwa = addslashes($nazwa);
  2.  
  3. $addall = ("
  4. INSERT INTO `qom8d_virtuemart_products_pl_pl` (`virtuemart_product_id`, `product_name`, `slug`) VALUES (
  5. (SELECT `virtuemart_product_id` FROM `qom8d_virtuemart_products` WHERE `product_sku` = '$Id'), '$Nazwa', '$Nazwa' )");
  6. $wysaddall = mysql_query($addall) or die (mysql_error());


Ten post edytował madsix 30.03.2013, 20:47:10
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 21:44