Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Parsowanie XML, usuwanie wpisu z bazy - problem
deha21
post 13.03.2016, 09:47:28
Post #1





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Witam, mam skrypt, który uaktualnia bazę według pliku XML. Sam skrypt częściowo działa, tzn. usuwa nieaktualne wpisy, ale nie wszystkie. Nie umiem rozgryźć czy coś ze skryptem jest nie tak...
  1. $xml=simplexml_load_file('/home/strona/domains/strona.pl/public_html/files/import/plik.xml');
  2.  
  3. function del($mysqli, $xml, $typ) {
  4.  
  5. foreach ($xml->usun->$typ as $ogloszenie) {
  6.  
  7. $ogloszenie_id=$ogloszenie->ogloszenie_id;
  8.  
  9. mysqli_query($mysqli, "DELETE FROM adds WHERE ogloszenie_id='$ogloszenie_id'");
  10. mysqli_query($mysqli, "DELETE FROM equip WHERE ogloszenie_id='$ogloszenie_id'");
  11.  
  12. if(is_dir('/home/strona/domains/strona.pl/public_html/files/ogloszenia/'.$ogloszenie_id)) {
  13.  
  14. $pics=mysqli_query($mysqli, "SELECT * FROM images WHERE ogloszenie_id='$ogloszenie_id'");
  15. while ($picsrow=mysqli_fetch_assoc($pics)) {
  16. unlink('/home/strona/domains/strona.pl/public_html/files/ogloszenia/'.$ogloszenie_id.'/'.$picsrow['file']);
  17. unlink('/home/strona/domains/strona.pl/public_html/files/ogloszenia/'.$ogloszenie_id.'/thumb_'.$picsrow['file']);
  18. }
  19.  
  20. rmdir('/home/strona/domains/strona.pl/public_html/files/ogloszenia/'.$ogloszenie_id);
  21.  
  22. mysqli_query($mysqli, "DELETE FROM images WHERE ogloszenie_id='$ogloszenie_id'");
  23.  
  24. }
  25.  
  26. $delads=mysqli_query($mysqli, "DELETE FROM ads WHERE ogloszenie_id='$ogloszenie_id'");
  27.  
  28. if ($del_ads) {
  29. echo 'Usunięto: ',$ogloszenie_id,'<br>';
  30. //mysqli_query($mysqli, "INSERT INTO log VALUES ('', '".date('Y.m.d H:i')."', 'Usunięto ".$ogloszenie_id."') ");
  31. } else {
  32. echo 'Problem z usunięciem: ',$ogloszenie_id,'<br>';
  33. //mysqli_query($mysqli, "INSERT INTO log VALUES ('', '".date('Y.m.d H:i')."', 'Problem z usunięciem ".$ogloszenie_id."') ");
  34. }
  35.  
  36. $ogloszenie_id='';
  37.  
  38. }
  39.  
  40. }

W logach mam informację, że był "Problem z usunięciem" ale nie było numeru ogloszenie_id więc tak jakby go nie czytało. Chociaż czyta go na 100%, struktura XMLa jest poprawnie czytana bo używam skryptu też do dodawania wpisów i to działa. Nie działa tylko usuwanie.

Ten post edytował deha21 13.03.2016, 10:06:18


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Kshyhoo
post 13.03.2016, 09:55:27
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Proszę dopasować tytuł do zasad działu, problem ze skryptem to 99% wątków...


--------------------
Go to the top of the page
+Quote Post
deha21
post 13.03.2016, 10:06:44
Post #3





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Cytat(Kshyhoo @ 13.03.2016, 09:55:27 ) *
Proszę dopasować tytuł do zasad działu, problem ze skryptem to 99% wątków...

Zmieniłem. Gdybym wiedział co jest nie tak w skrypcie to bym to dokładniej opisał, ale nie mam pojęcia...


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 13.03.2016, 10:41:47
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




To może napisz, jakich danych nie usuwa, tudzież zapodaj jakieś dane do kombinowania.


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 13.03.2016, 11:17:01
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


$ogloszenie_id= (string)$ogloszenie->ogloszenie_id;
Go to the top of the page
+Quote Post
destroyerr
post 13.03.2016, 11:18:54
Post #6





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Zacznij od sprawdzania danych:
Cytat
$ogloszenie_id=$ogloszenie->ogloszenie_id;

w przypadku importu jest to bardzo istotne. Wydaje się, że importowany plik musi być poprawny, a nie zawsze taki jest.
Kolejna sprawa to nazwy zmiennych, zmień poziom raportowania błędów. $delads i $del_ads to są różne zmienne.
Go to the top of the page
+Quote Post
deha21
post 13.03.2016, 13:07:11
Post #7





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Cytat(Kshyhoo @ 13.03.2016, 10:41:47 ) *
To może napisz, jakich danych nie usuwa, tudzież zapodaj jakieś dane do kombinowania.

Nie mam akurat żywego pliku, ale XML wygląda mniej więcej tak:
Kod
<usun>
    <sprzedam>
        <ogloszenie>123456</ogloszenie>
        <ogloszenie>987654</ogloszenie>
    </sprzedam>
</usun>

Nie usuwa żadnych danych, tak jakby czasem $ogloszenie_id (czyli <ogloszenie>) był po prostu pusty, a nie jest pusty.
Cytat(Pyton_000 @ 13.03.2016, 11:17:01 ) *
$ogloszenie_id= (string)$ogloszenie->ogloszenie_id;

Nie wiem czy pomoże, ale zmieniłem. Czekam teraz na plik eksportu XML-a i będę testować.
Cytat(destroyerr @ 13.03.2016, 11:18:54 ) *
w przypadku importu jest to bardzo istotne. Wydaje się, że importowany plik musi być poprawny, a nie zawsze taki jest.
Kolejna sprawa to nazwy zmiennych, zmień poziom raportowania błędów. $delads i $del_ads to są różne zmienne.

Plik XML na pewno jest poprawny. $delads i $del_ads - tutaj przy wklejaniu kodu na forum musiałem coś pozmieniać bo w kodzie jest $delads.


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.06.2025 - 10:14