![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 0 Dołączył: 5.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Zdarza się taki przypadek, że wykonując insert do tabeli, w której id jest auto_increment muszę to id umieścić również w tym rekordzie w innych polach. tabela wygląda tak: id | pole1 | pole2 | pole3 | pole4 | zapytanie:
Chcę uzyskać taki wpis aby wartość z pola id była wpisana też w pole2 i 4. W innych przypadkach pola te mają zupełnie inne wartości, więc nie mogę z nich po prostu zrezygnować. Jest jakiś inny sposób poza robieniem wcześniej selectu ostatniego id? Pozdrawiam i życzę Wesołych Świąt (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
najpierw:
Cytat Chcę uzyskać taki wpis aby wartość z pola id była wpisana też w pole2 i 4. a potem... Cytat Gdy pada odpowiedz na post, zmieniana jest wartość w komórce ostatniej odpowiedzi na id postu odpowiedzi. wg mnie to są dwa zupełnie różne rekordy... napierw piszesz o zmianie 2 pól, a potem o zmianie jednego... dalej nie wiem o co ci chodzi... coś ściemniasz o problemach z wyciąganiem odpowiedzi... nadal bez sensu - nie ma odpowiedzi - to pole `id_odpowiedzi` powinno być NULL... poza tym powiązanie postu i odpowiedzi na niego powinno być zrobione w oddzielnej tabeli... a tu: Cytat Gdy dla postów bez odpowiedzi dam 0 w kolumnie "id ostatniej odp" to wtedy tracę możliwość odpowiedniego posortowania ich. to już zupełnie nie masz racji, poczytaj o funkcjach IF() oraz IFNULL(), skojarz to z ORDER BY i zrozumiesz że przepisywanie `id` do dodatkowych kolumn nie ma sensu... Jeżeli chcesz wyciągać 10 ostanich postów / odpowiedzi - to nie polegaj na polu `id` - bo jego zawartość może ulec zmianie (np. w czasie przenoszenia bazy na inny serwer) i nie musi odzwierciedlać kolejności dodawania wpisów. Utwórz pole typu TIMESTAMP z domyślną wartością NOW() i sortuj wg niego... powodzenia... wesołych i spokojnych świąt bożego narodzenia... Ten post edytował nevt 23.12.2007, 19:51:23 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 0 Dołączył: 5.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Różnice w tym ile pój ma mieć to id wynikały z tego że oszczędziłem opisywanie dokładnie przypadku, a samego problemu. Ta druga kolumna w którą chciałem wpisać id zawiera id postu na który ten post jest odpowiedzią. Ten problem właśnie rozwiązałem (dzięki Twojej odpowiedzi) stosując null i funkcję IFNULL, czyli teraz gdy rekord jest postem wartość w kolumnie "odpowiedz" jest null, gdy rekord jest odpowiedzią na jakiś inny post ta kolumna zawiera id tego postu.
Teraz kombinuje jak rozwiązać to podobnie z ORDER BY ---- edit: problem z ORDER BY też już usunięty w ten sam sposób (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dzięki za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Wesołych Świąt również życzę. Co mi da oddzielenie od siebie do różnych tabel postów i odpowiedzi oraz stworzenie tabeli która będzie je sobie przyporządkowywać? Wydajniej będzie? Ten post edytował szczypior 23.12.2007, 21:48:24 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 01:03 |