Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> column default
ShaggyAG
post 11.02.2015, 05:58:00
Post #1





Grupa: Zarejestrowani
Postów: 111
Pomógł: 11
Dołączył: 12.10.2014
Skąd: Tarnów

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


Witam,

Czy jest możliwość tak ustawić wartość default aby była ona równa innej komórce tego samego wiersza(id)?

Pozdrawiam
Go to the top of the page
+Quote Post
mmmmmmm
post 11.02.2015, 07:08:33
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Skoro ma być równa, to po co powielać wartość?
W DEFAULT nie da się tego zrobić - pozostaje TRIGGER.
Go to the top of the page
+Quote Post
ShaggyAG
post 11.02.2015, 23:49:55
Post #3





Grupa: Zarejestrowani
Postów: 111
Pomógł: 11
Dołączył: 12.10.2014
Skąd: Tarnów

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


hmm to nie dobrze.
Może w takim razie ktoś coś poradzi..
Robie sobie prosty system komentarzy dwu poziomowych (możliwość odpowiedzi na jakiś komentarz).
Zrobiłem sobie taką tabele

---------------------------------------------------------------------------------
| id | profil_id | author_id | author_name | re_id | msg | added |
---------------------------------------------------------------------------------
| int | int | id | varchar | int | text | timestamp |


I miało to działać tak ze jak komentarz jest dodany bezpośrednio do profilu to re_id = jego id
a jak jest odpowiedzią do jakiegoś komentarza to re_id było id komentarza do którego odnosi się odpowiedź.
I żeby się to ładnie wyświetlało (posortowane po dacie i odpowiedzi pod komentarzami do których są dodane)
chciałem użyć sql SELECT * FROM profile_coment WHERE profil_id=:id ORDER BY re_id ASC, added ASC'

I teraz mam problem bo ni jak nie wiem jak to ładnie posortować żeby było cacy ;/
Go to the top of the page
+Quote Post
Pyton_000
post 12.02.2015, 10:03:10
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


jeżeli re_id to ID wiadomości na którą jest odpowiedzią, to dla nowej wiadomości ustaw NULL, bo ihmo nie powinna wskazywać na samą siebie bo nie jest odpowiedzią samą w sobie wink.gif

co do sortowania to nie rozumiem wink.gif Generalnie posortowanie po dacie powinno wystarczyć.
Go to the top of the page
+Quote Post
ShaggyAG
post 12.02.2015, 16:25:16
Post #5





Grupa: Zarejestrowani
Postów: 111
Pomógł: 11
Dołączył: 12.10.2014
Skąd: Tarnów

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


Tak taż zrobiłem smile.gif
Co do sortowania to samo sortowanie po dacie nie wystarczyło.
Bo jak mam trzy komentarze:
1: 'ładna sukienka' z 12-02-2015 10:00
2: 'Cena do negocjacji?' z 12-02-2015 11:00
3: 'mi sie nie podoba' z 12:02-2015 12:00 - odpowiedz do pierwszego komentarza!

To jak je pobiore po dacie to beda w kolejnosci
1 2 3 a docelowo trzeba mi 1 3 2
Poradziłem sobie tak:
  1. $coments = $db->prepare('SELECT * FROM profile_coment WHERE profil_id=:id ORDER BY added');
  2. $coments->bindValue(":id", $id, PDO::PARAM_INT);
  3. $coments->execute();
  4. if($coments->rowCount() == 0)
  5. {
  6. echo '<p>Aktualnie brak komentarzy.</p>';
  7. } else
  8. {
  9. $all= $coments->fetchAll(PDO::FETCH_ASSOC);
  10.  
  11. $toEcho = [];
  12.  
  13. foreach($all as $com)
  14. {
  15. if(is_null($com['re_id']))
  16. {
  17. $toEcho[$com['id']] = '<div class="coment">'.print_r($com, true).'<div onclick="answer(this);">Odpowiedz</div></div>';
  18. } else
  19. {
  20. $toEcho[$com['re_id']] .= '<div class="coment_re">'.print_r($com, true).'<div onclick="answer(this);">Odpowiedz</div></div>';
  21. }
  22. }
  23. foreach ($toEcho as $single)
  24. {
  25. echo($single);
  26. }
  27. }

(wersja do testów)
Ale średnio mi się podoba jakość takiego rozwiązania...

Ten post edytował ShaggyAG 12.02.2015, 16:26:18
Go to the top of the page
+Quote Post
Pyton_000
post 12.02.2015, 16:47:32
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


a posortowanie
ORDER BY re_id, added
questionmark.gif

To powinno załatwić sprawę.
Go to the top of the page
+Quote Post
ShaggyAG
post 12.02.2015, 17:01:34
Post #7





Grupa: Zarejestrowani
Postów: 111
Pomógł: 11
Dołączył: 12.10.2014
Skąd: Tarnów

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


działałoby gdyby re_id komentarza, który nie jest odpowiedzią było równe jego id a nie null.
Jak jest null to zawraca 123
Go to the top of the page
+Quote Post
mmmmmmm
post 12.02.2015, 21:48:45
Post #8





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


ORDER BY Coalesce(re_id, id), added
Go to the top of the page
+Quote Post
ShaggyAG
post 13.02.2015, 15:58:25
Post #9





Grupa: Zarejestrowani
Postów: 111
Pomógł: 11
Dołączył: 12.10.2014
Skąd: Tarnów

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


Dziękuje smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 23:04