Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][SQL] Masowe tworzenie MD5
deLL
post
Post #1





Grupa: Zarejestrowani
Postów: 92
Pomógł: 1
Dołączył: 3.11.2008
Skąd: Kozienice - Polska

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


Witam,

Mam problem. Potrzebuję utworzyć w jednej kolumnie w bazie danych (która zawiera ponad 6000 wierszy) hasła, które będą zakodowane w md5. Kolumna z hasłami znajduje się w tej samej tabeli.


Mam taki kod:
  1. $pobierz_rekordy = "SELECT `id`, `kod`, `haslo`, `haslo_md5` FROM `maile`;";
  2.  
  3. $query_one = mysql_query($pobierz_rekordy, $polaczenie)
  4.  
  5. while($row = mysql_fetch_array($query_one)) {
  6.  
  7. $kod = $row['kod'];
  8. $haslo = $row['haslo'];
  9. $md5 = $row['md5'];
  10.  
  11. $zaktualizuj_rekordy = "UPDATE `kody` SET `haslo_md5` = MD5( '" . $haslo . "' );";
  12. $query_two = mysql_query($zaktualizuj_rekordy, $polaczenie)
  13.  
  14. //echo "Hasło: " . $row['haslo'] . " | MD5: " . md5($row['haslo']) . "<br />";
  15.  
  16. }
  17.  
  18. mysql_close($polaczenie);
Lecz on ustawie wszystkie komórki hashem md5 z ostatniego wiersza.

Tak to mniej-więcej wygląda w bazie danych: (IMG:http://iv.pl/images/61868172891833460959.png)

Z góry dziękuje za pomoc! (IMG:style_emoticons/default/Lkingsmiley.png)
Go to the top of the page
+Quote Post
gitbejbe
post
Post #2





Grupa: Zarejestrowani
Postów: 516
Pomógł: 63
Dołączył: 27.08.2012

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


a gdzie warunek w zapytaniu $zaktualizuj_rekordy ?
dodaj do zapytania np:

WHERE kod = $kod and haslo = $haslo. Nie dziw się, że wszędzie przypisuje Ci takie samo hasło, skoro sam kazałeś to robić ;p

Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




(IMG:style_emoticons/default/facepalmxd.gif)

Wykonaj po prostu takie zapytanie na bazie, bez zabawy w PHP i pętle...

  1. UPDATE `kody` SET `haslo_md5` = MD5(`haslo`);
Go to the top of the page
+Quote Post
pmir13
post
Post #4





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

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


To co aktualnie robi ten kod:

1. Pobierz wszystkie rekordy, w szczególności $haslo.
2. Dla każdego rekordu wykonaj : w kolumnie md5_haslo ustaw md5($haslo) dla całej tabeli.

Krótko mówiąc dla każdego hasła wielokrotnie zmieniasz całą tabelę, w związku z tym na sam koniec zostaje w całej tabeli ustawione haslo_md5 na hash ostatniego rekordu.
Samo zapytanie mysql:

  1. UPDATE `kody` SET `haslo_md5` = MD5( `haslo` );


zrobi dokładnie to co potrzebujesz, to jest update na całą tabelę, dla każdego rekordu ustawi odpowiedni dla jego hasła hash. Nie potrzeba nic z bazy wcześniej wyciągać, nawet php do tego nie jest potrzebny, wystarczy wklepać to w konsoli mysql, phpmyadminie czy jakimkolwiek innym kliencie mysql.
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: 26.08.2025 - 16:41