Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] UPDATE nie działa
Forum PHP.pl > Forum > Przedszkole
amii
W tej instrukcji nie działa mi update mimo, ze wszystkie dane wyświetlają się prawidłowo. Dodam, że wartości kolumn blog, login, password są puste.

  1. for ($b=1; $b<=count($usery); $b++) {
  2. $usery[$b] = trim($usery[$b]); //to dane pobrane z zewnatrz
  3. $hasla[$b] = trim($hasla[$b]);
  4. $strony[$b] = trim($strony[$b]);
  5. $site = substr($strony[$b], 0, strpos($strony[$b], 'wp-login.php')); //tutaj obcinam z ciagu znakow wp-login.php po to zeby zrobic porowananie w bazie
  6. $site = trim($site);
  7. echo 'Site to: ' .$site. '<br>'; //tu sie wyswietla ok
  8. $pytanko1 = "UPDATE adresy SET blog='$strony[$b]', login='$usery[$b]', password='$hasla[$b]' WHERE url ='$site'";
  9. mysql_query($pytanko1) or die ("Blad w petli dla b usery : ". mysql_error());
  10. //update nic nie aktualizuje mimo ze dane wyswietlaja sie poprawnie, zadnych bledow nie wyswietla
  11.  
  12.  
  13. echo $usery[$b];
  14. echo $hasla[$b];
  15. echo $strony[$b];
  16. echo '<br>';
  17. }
nospor
pewnie masz zly warunek
echo $pytanko1;
i sobie zobacz czy oby na pewno się wszystko zgadza
wookieb
Wyswietl sobie zapytanie, walnij je do phpmyadmina i będziesz widział co się stało. Podejrzewam, ze masz złą wartość pola URL.
amii
Skopiowałem zapytanie i podstawiłem wszystkie dane kopiując je ze strony.
Zapytanie OK ale rekordu nie modyfikuje (zmodyfikowanych rekordów 0) aaevil.gif co jest grane questionmark.gif?

Zapytanie wygląda tak:
UPDATE adresy SET blog='http://jakis.blog', login='login', password='haselko' WHERE url ='adres_bloga'
kiedy zamienię na:
UPDATE adresy SET blog='http://jakis.blog', login='login', password='haselko' WHERE id=7
to działa OK i modyfikuje rekord

Tak wygląda zrzut tabeli:
CREATE TABLE `adresy` (
`id` int(11) NOT NULL auto_increment,
`url` varchar(255) NOT NULL default '',
`blog` varchar(90) NOT NULL default '',
`login` varchar(60) NOT NULL default '',
`password` varchar(60) NOT NULL default '',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_url` (`url`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=791 ;
nospor
jejkus... no to przecież oczywiste jest ze ten warunek:
WHERE url ='adres_bloga'
nie jest spelniony...
amii
A da się zrobić tak, że mając ciąg znaków dostarczony z zewnątrz przez skrypt zrobię UPDATE tylko wtedy kiedy ten ciąg jest taki sam jak rekord z bazy z kolumny url
?
wookieb
No właśnie to robisz...
mysql_affected_rows zwróci Ci ilosć zmodyfikowanych rekordów.
nospor
No to teraz tak masz. jesli sie nie zgadza to update ci nic nie zmodyfikuje....
A jesli chcesz sprawdzic jeszcze przed update to zrob najpierw SELECT i bedziesz wiedzial czy jakis rekord pasuje czy nie
amii
Rozstrzygnięte smile.gif w tabeli przy eksporcie w rekordach było wpisane na końcu /n dziwne tylko, że ta wartość nie wyświetlała się w edycji pola.
Po usunięciu enek skrypt działa OK.
nospor
Bo to bialy znak - takie znaki żadko kiedy się wyświetlają winksmiley.jpg
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.