Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dane nie chcą powędrować do MySQL [MySQL][XML][PHP]
Forum PHP.pl > Forum > Przedszkole
madsix
Cześć Wszystkim

Teraz mam taki oto problem jak zawsze z xml i php oraz MySQL, na poprzednie tematy co do odczytu pliku nikt nie chciał odpisać może teraz ktoś pomoże

Mam taki oto kod (mój własny)

Kod
foreach($plik->GrupyTowarowe as $IdGrupy)
{          //wczytanie odpowiednich danych
       foreach($IdGrupy->GrupaGlowna as $dalej){
       $ID = '_ID';
       $IdG = $dalej['id'];
       $NaGt = $dalej['nazwa'];

       foreach($dalej->PodGrupy->PodGrupa as $menu){
      
       $IdMenu = $menu['id'];
       $NazMenu = $menu['nazwa'];
      
     //wypisanie danych  
     echo "<table CELLPADDING=10 CELLSPACING=10 BORDER=1><tr>";
     echo"<td>". $IdG ."</td>";
     echo"<td>". $NaGt ."</td>";
     echo"<td>". $IdMenu."</td>";
     echo"<td>". $NazMenu ."</td>";
     echo "</tr></table>";
     //wpis do bazy
     $zapytanie = ("INSERT INTO `qom8d_virtuemart_categories_pl_pl`(`virtuemart_categoty_id`,`category_name`) VALUES ('', '$NaGt')");
        $result = mysql_query($zapytanie) or mysqli_error(); TA LINIA ZAWIERA BŁĄD A RACZEJ ZAPYTANIE WYŻEJ
        }

     }

}


Problem Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\xml\menu.php on line 32
Otóż albo mi to wywala lub po małej zmianie dodaje wpis do bazy lecz tylko 1 wczytany z pliku a w tabeli wyżej wpisów jest około 200 dodaje nazwę tylko pierwszego wypisanego na ekran.
bpskiba
1. mysqli_error() wymaga argumentu - czyli coś musi być w nawiasie
2. magiczne słówko "die"
http://php.net/manual/pl/function.mysql-query.php
3. chyba próbujesz wstawić w pole _id pusty ciąg. Na oko nie powinno być puste ono, a raczej unikalne dla każdego rekordu
madsix
Wiem ze powinno tam być "or die ("bla bla bla") czy jest tak czy tak i tak jest to samo a samo mysql_error() może być bo chce aby zwrócił mi się błąd od mysql a nie to co pisze w nawiasie or die (chyba że Lary Ulman w książce Dynamiczne tworzenie stron www popełnił błąd bo to jest z jego książki wzięte samo mysql_error();

Nie w tym rzecz chodzi u o samo wpisanie danych do bazy danych(MySQL) pomimo iż wyświetlam na monitorze 200wierszy z danymi przechodzi tylko jedna i na tym się kończy ID jest puste ponieważ baza ma AI więc nr się samo. Powalczę jeszcze może coś z danymi jest nie tak w xml.
jakis_login
Powinno być tak:
  1. $result = mysql_query($zapytanie) or die( mysql_error() );

Jeśli to nie zadziała to masz coś nie tak ze strukturą bazy danych.
madsix
ja tak mam napisałem wyżej że i tak robiłem i tak, ale to nic nie zmienia wrzuca dane z pętli a w baze ni holere


A może o być przez to że baza ma 6 kolumn a ja wrzucam tylko 2 lub 3?
Wazniak96
Zadajesz głupie pytania. Skoro nie jesteś pewien to sprawdź. Ja pewien nie jestem, ale wydaje mi się, że nie. smile.gif

Spróbuj jeszcze wbić suche dane typu same jedynki, wtedy będziesz miał pewność, że to nie wina twojego skryptu jeżeli nie doda tylko np. nadmiernej liczby zapytań w czasie.

co do wypowiedzi bpskiba na temat wbijania pustego ciągu. Pole pole_id jest najprawdopodobnie polem Auto Incument, czyli samo się uzupełnia. MySQL nie wbije nic bo "nic" nie podajemy tylko nada automatycznie pole, sam przecież chyba wiesz... Sam często podaję wartość do pola typu Ion Cube jako '' i jakoś nigdy z tym problemu nie miałem.
bpskiba
ło matko...
W Twoim listingu nie ma słowa "die" - poszukaj go sam
Wywołujesz funkcję mysqli_error() a nie mysql_error() - widzisz rożnicę?
Nie wbija się pustego ciągu w pole klucza !

jakis_login napisał jak ta linia powinna wyglądać
madsix
A ja napisze po raz ostatni chyba już trzeci ze t linia u mnie TEŻ TAK WYGLĄDAŁA!!!!!! tutaj po prostu wpisałem to co mi na końcu została po przerubkach

miałem samo
or die ("Nic nie odano");
or die( mysql_error() );

próbowałem również z MySQLI jak i samym MySQL wiem ze tu jest błąd ja się pytam dla czego to mi nic w bazę nie wpisuje a nie czemu to pokazuje błąd ja o nim wiem Panowie może napiszę to tak zrozumiale mam taki plik XML

  1. <GrupyTowarowe>
  2. <GrupaGlowna id="GIP" nazwa="_Gadżety i Prezenty">
  3. <PodGrupy>
  4. <PodGrupa id="GIP-GAD" nazwa="Gadżety" />
  5. <PodGrupa id="GIP-GRY" nazwa="Gry" />
  6. <PodGrupa id="GIP-ZAB" nazwa="Zabawki" />
  7. </PodGrupy>
  8. </GrupaGlowna>
  9. <GrupaGlowna id="MAT" nazwa="_Materiały reklamowe">
  10. <PodGrupy>
  11. <PodGrupa id="MAT-REK" nazwa="Materiały reklamowe" />
  12. </PodGrupy>
  13. </GrupaGlowna>
  14. <GrupaGlowna id="AGA" nazwa="AGD - Akcesoria">
  15. <PodGrupy>
  16. <PodGrupa id="AGA-EKF" nazwa="Do ekspresów do kawy - filtry" />
  17. <PodGrupa id="AGA-EKO" nazwa="Do ekspresów do kawy - odkamieniacze" />
  18. <PodGrupa id="AGA-LAK" nazwa="Do lodówek - akcesoria" />
  19. <PodGrupa id="AGA-ODW" nazwa="Do odkurzaczy - worki" />
  20. <PodGrupa id="AGA-OKF" nazwa="Do okapów - filtry" />
  21. </PodGrupy>
  22. </GrupaGlowna>
  23. <GrupaGlowna id="AGD" nazwa="AGD - Produkty">
  24. <PodGrupy>
  25. <PodGrupa id="AGD-AKC" nazwa="Akcesoria" />
  26. <PodGrupa id="AGD-CHL" nazwa="Automaty do pieczenia chleba" />
  27. <PodGrupa id="AGD-BAT" nazwa="Baterie kuchenne" />
  28. <PodGrupa id="AGD-LOZ" nazwa="Chłodziarko-zamrażarki do zabudowy (lodówki)" />
  29. <PodGrupa id="AGD-LOW" nazwa="Chłodziarko-zamrażarki wolnostojące (lodówki)" />
  30. <PodGrupa id="AGD-CZE" nazwa="Czajniki elektryczne" />
  31. <PodGrupa id="AGD-DEP" nazwa="Depilatory" />
  32. <PodGrupa id="AGD-DES" nazwa="Deski do prasowania" />
  33. <PodGrupa id="AGD-DZF" nazwa="Dzbanki filtrujące" />
  34. <PodGrupa id="AGD-EXP" nazwa="Ekspresy do kawy" />
  35. <PodGrupa id="AGD-EXZ" nazwa="Ekspresy do kawy - do zabudowy" />
  36. <PodGrupa id="AGD-FRY" nazwa="Frytkownice" />
  37. <PodGrupa id="AGD-GAR" nazwa="Garnki / patelnie" />
  38. <PodGrupa id="AGD-GOL" nazwa="Golarki" />
  39. <PodGrupa id="AGD-GRE" nazwa="Grille elektryczne" />
  40. <PodGrupa id="AGD-GRO" nazwa="Grzejniki olejowe" />
  41. <PodGrupa id="AGD-JAJ" nazwa="Jajowary" />
  42. <PodGrupa id="AGD-KMB" nazwa="Kombiwary" />
  43. <PodGrupa id="AGD-KRA" nazwa="Krajalnice" />
  44. <PodGrupa id="AGD-KMZ" nazwa="Kuchenki mikrofalowe do zabudowy" />
  45. <PodGrupa id="AGD-KMW" nazwa="Kuchenki mikrofalowe wolnostojące" />
  46. <PodGrupa id="AGD-KWZ" nazwa="Kuchnie do zabudowy" />
  47. <PodGrupa id="AGD-KWS" nazwa="Kuchnie wolnostojące" /></GrupyTowarowe>


A do bazy dodaje mi się tylko to "_Gadżety i Prezenty" cała reszta pomimo że wyskakuje na monitorze do bazy nie wędruje tylko pierwszy ciąg chyba zacznę powoli czytać może o DOM XML a może moja struktura bazy jest zła baza danych to sklep virtuemart Joomla



jakis_login
Stwórz sobie nową tabele w bazie np. test i dodaj dwie kolumny: `virtuemart_categoty_id` oraz `category_name`, dla `virtuemart_categoty_id` ustaw typ danych jako INT oraz Auto Increment i wtedy spróbuj wykonać swoje zapytanie w taki sposób:
  1. $zapytanie = mysql_query("INSERT INTO `test`(`virtuemart_categoty_id`,`category_name`) VALUES ('', '$NaGt')") or die (mysql_error());

Potem napisz tutaj swoje spostrzeżenia.
madsix
A więc moje spostrzeżenia po utworzeniu nowej bazy i tylko dwóch kolumnach działa jak należy i nawet wiem gdzie jest błąd, baza o której pisałem niestety nie ma ID na AI sad.gif nie na tą bazę się patrzyłem facepalmxd.gif

Ale i tak mój skrypt jest teraz do niczego bez tego AI w bazie wszystko jest do "dupy", nie zrobię z tego menu choćby nie wiem co.


To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.