Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL][Wordpress] brak chęci zapisu zmiennej do bazy
Forum PHP.pl > Forum > PHP
followc
Witam,
Nie potrafię niestety dojść dlaczego poniższy kod nie chce działać
  1. do{
  2. array_push($url, $_POST['hz'.$ui]);
  3.  
  4. $wpdb->insert('wp_galeria_zdjec', array(
  5. 'ID_galerii' => $id_galerii,
  6. 'URL' =>$url[$ui],
  7. 'kolejnosc' => $ui
  8. ));
  9.  
  10. $ui++;
  11. $uj = $ui -1;
  12.  
  13. }while($url[$uj]);


ID_galerii jest wyliczane wcześniej i nie ma problemu z jej zapisem, tak samo z 'kolejnosc'. Problem dotyczy 'URL' które pobierane jest z $_POST. Jeśli zmienię na zwykły, stały tekst zapisuje, bez problemu. W bazie powinno trafiać do pozycji VARCHAR. Czy ktoś potrafi mnie ukierunkować?
nospor
Najwyraznie $url[$ui] nie istnieje. Czemu nie zrobisz
var_dump($url);
var_dump($ui);
by sprawdzic co tam dokladnie siedzi? Nie trzeba byc Sherlockiem by takie cuda robic
followc
Tak, zapomniałem dodać, że istnieje. var_dump($url):

  1. array(1) { [0]=> string(55) "/wp-content/uploads/3mw/1522099361.227/facebook_2_2.png" }
  2. array(2) { [0]=> string(55) "/wp-content/uploads/3mw/1522099361.227/facebook_2_2.png" [1]=> string(52) "/wp-content/uploads/3mw/1522099361.227/19dllast.png" }
  3. array(3) { [0]=> string(55) "/wp-content/uploads/3mw/1522099361.227/facebook_2_2.png" [1]=> string(52) "/wp-content/uploads/3mw/1522099361.227/19dllast.png" [2]=> string(92) "/wp-content/uploads/3mw/1522099361.227/28336185_1982273462090242_2971931929253068969_o 2.jpg" } ...
nospor
Hm.... pokaz jeszcze dla pewnosci
var_dump($url[$ui]);
przed insert.

followc
string(55) "/wp-content/uploads/3mw/1522099361.227/facebook_2_2.png" string(52) "/wp-content/uploads/3mw/1522099361.227/19dllast.png" string(92) "/wp-content/uploads/3mw/1522099361.227/28336185_1982273462090242_2971931929253068969_o 2.jpg" string(90) "/wp-content/uploads/3mw/1522099361.227/13669385_1813168668905188_1384241611666224281_o.jpg" string(92) "/wp-content/uploads/3mw/1522099366.341/28336185_1982273462090242_2971931929253068969_o 2.jpg" string(52) "/wp-content/uploads/3mw/1522099366.341/19dllast.png" string(55) "/wp-content/uploads/3mw/1522099366.341/facebook_2_2.png" string(90) "/wp-content/uploads/3mw/1522099366.341/13669385_1813168668905188_1384241611666224281_o.jpg" string(92) "/wp-content/uploads/3mw/1522099377.857/28336185_1982273462090242_2971931929253068969_o 2.jpg" string(55) "/wp-content/uploads/3mw/1522099377.857/facebook_2_2.png" string(58) "/wp-content/uploads/3mw/1522099395.262/ace-167052_1280.jpg" NULL


Czyli to wszystko chce się wpakować do zmiennej, gdzie oczekuję tylko pojedynczych części. W zamian w bazie dostaję tylko NULL.
nospor
czyli mowisz, ze jak dasz
'URL' =>'blabla',
to ci ladnie wklada ten URL

a gdy dasz
'URL' =>$url[$ui],
to ci wklada wszystko do rekordu procz URL?

Mozesz pokazac jeszcze strukture tabeli wp_galeria_zdjec?
followc
Gdy wpiszę 'blabla' dodaje 'blabla', gdy próbuję $url[$ui] w sumie pakuje tylko NULL-a

ID int(6)
ID_galerii int(6)
URL varchar(44)
kolejnosc varchar(6)
nospor
Wybacz, ze tak cie mecze, ale czy moglbys pokazac jeszcze raz caly kod po tym jak dodales
var_dump($url[$ui]);
?

ps: kolejnosc to powinna byc raczej INT a nawet TINYINT
followc
  1. do{
  2. array_push($url, $_POST['hz'.$ui]);
  3.  
  4.  
  5. var_dump($url[$ui]);
  6. echo '%%%'.$url[$ui];
  7.  
  8. $wpdb->insert('wp_galeria_zdjec', array(
  9. 'ID_galerii' => $id_galerii,
  10. 'URL' => $url[$ui],
  11. 'kolejnosc' => $ui
  12. ));
  13.  
  14. $ui++;
  15. $uj = $ui -1;
  16.  
  17. }while($url[$uj]);


A, właśnie. Kolejność to było int, ale wtedy też nie zapisywało. Dopiero po zmianie na varchara dodaje do bazy.
nospor
Cytat
Dopiero po zmianie na varchara dodaje do bazy.
Zart jakis... to wyglada jakby tam cos bylo mocne zwalone...no ale to WP to co sie dziwic wink.gif
Pokaz dla wszystkiego jeszcze
var_dump($ui);
ale powiem ci szczerze ze zaczynam sie poddawac. Nie odgadnione sa sciezki WP
Toshikatsu
Nie jestem pewien czy aby przypadkiem "URL varchar(44)" nie jestm problemem.
Czy to aby nie działa tak, że w nawiasie varchar'a podaje się ile maksymalnie znaków może zmieścić?

Spróbuj wrzucić dowony z URL'i z palca dla przetestowania
followc
Problemem był varchar(44). Akceptował po prostu krótsze ciągi niż te które próbowałem przesłać... Niby taka oczywista sprawa.
Dziękuję Panowie.
nospor
no tak, caly czas przed nosem to bylo... starzeje sie normalnie sad.gif
@Toshikatsu good catch smile.gif

NIe mnie jednak zmylil mnie ten nie dzialajacy INT na kolejnosc. Tam tez musi byc cos nie halo swoja droga
followc
I tu też winny varchar(44). Błąd w tym miejscu wpływał także na kolejny zapis. Po zwiększeniu dopuszczalnego rozmiaru URL i zmianie kolejnosci z powrotem na INT wszystko gra.
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.