Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Jak w pętli wyciągać z mysql ostatnie dane
Forum PHP.pl > Forum > Przedszkole
maraska
Jest tabela images gdzie do jednego user_id są przypisane obrazki image z datami created.
Chcę wyciągnąć datę ostatniego image i zapisać tą datę do innej tabeli (table1).
Byłoby proste dla jednego zapytania
  1. SELECT created FROM tabela WHERE user_id='$user' ORDER BY created DESC LIMIT 0, 1


Ale jak zrobić coś takiego dla wielu rekordów, w pętli w php?

Czyli
z tabeli tabela
dla user_id gdzie coś_tam weź ostatnie w czasie created
zapisz created do tabela1

i tak dla następnych w pętli
nospor
Czy to robisz raz, czy to robisz w petli php, to nic sie nie zmienia. Z czym masz problem dokladnie?
maraska
Z tym, że jak dam Limit 0,1 to mi wszystko działa ale pętla staje zgodnie z limitem.,
Jak zrobić żeby z tabeli pobrało ostatnio zapisany rekord i jego pole created
i zapisało wartość tego pola do tabela2 i tak dla wszystkich gdzie w pierwszym zapytaniu spełniony warunek X ?
viking
Czytam i dalej nie rozumiem jaki miałby być warunek.
https://dev.mysql.com/doc/refman/5.7/en/insert-select.html
Albo trigger który po insert zapisze do drugiej tabeli.
maraska
Zapytanie z zapisem to nie problem.
Jak skonstruować zapytanie z odczytem żeby działało w pętli

jak to

  1. $sql = mysql_query("SELECT * FROM `tabela_images` WHERE `created` not like '0000-00-00 00:00:00' and
  2. `user_id` in (......) ORDER BY `tabela_images`.`created` DESC LIMIT 0,1");
  3. while($pobierz = mysql_fetch_array($sql)) {
  4. $user_ID = stripslashes($pobierz['user_id']);
  5. $created = $pobierz['created'];
  6. $sql3 = mysql_query("UPDATE `tabela_user` SET data = '$created' WHERE user_ID = '$user_ID'");
  7. }


przerobić, żeby ta pętla działała.
Jak widać, intencją pierwszego zapytania jest wyciągnięcie daty ostatnio zapisanego obrazka dla danego usera
a drugiego zapytania zapis tej daty do innej tabeli.
LIMIT 0,1 powoduje ze dostajemy jedną, ostatnią datę.
działa, ale LIMIT 0,1 ogranicza pętlę do jednego kroku.
Jak zrobić żeby leciało po wszystkich
`user_id` in (......)
maraska
No nic, załatwiłem selecta dwoma zapytaniami
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.