Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ Wyświetlanie pozdrowień

Napisany przez: alkesz1718 22.02.2018, 23:36:46

Witam,
Dostałem bardzo stary kod na wyświetlanie pozdrowień z bazy danych który działał pod php 5.3 i starą wersją mysql (jaką to nie wiem). Chciałem sobie zaktualizować jakoś ten skrypt i pozostało mi tylko wyświetlanie. Problem polega na tym że dodając pozdrowienia w bazie zapisuje z approve = 0 po czym w panelu admina trzeba zaakceptować lub usunąć i nie wiem czemu ale wyświetla mi wszystkie pozdrowienia niezależnie od tego czy approve wynosi 0 czy 1 a chciałbym by wyświetlało tylko wtedy jeśli approve = 1

Poniżej daję wam pełny plik na wyświetlanie tych pozdrowień.

  1. <?php
  2.  
  3. $pozdro = dle_cache('pozdrowienia2');
  4.  
  5. if (false === $pozdro) {
  6. $pozdro = $db->super_query("Select pozdro, dle_users.name from dle_pozdro left join dle_users on dle_users.user_id = dle_pozdro.userid order by dle_pozdro.id DESC limit 30 ",
  7. true);
  8.  
  9. create_cache('pozdrowienia2', http://www.php.net/serialize($pozdro));
  10. }else {
  11. $pozdro = http://www.php.net/unserialize($pozdro);
  12. }
  13.  
  14.  
  15. $roll = '';
  16.  
  17. foreach ($pozdro as $p) {
  18. $roll .= "<a onclick=\"ShowProfile('{$p['name']}', 'https://www.nazwa-strony.pl/user/{$p['name']}/'); return false;\" href=\"https://www.nazwa-strony.pl/user/{$p['name']}/\"><B>{$p['name']}</B></a> : {$p['pozdro']} <B>|</B> ";
  19.  
  20. }
  21.  
  22.  
  23. $show = "<marquee scrollamount='5' scrolldelay='20' onmouseover='this.stop()' onmouseout='this.start()'>{$roll}</marquee>";
  24.  
  25. ?>


Ja przewiduję że te zapytanie do bazy powinno być inaczej zbudowane ale za bardzo nie wiem jak

Napisany przez: Kshyhoo 22.02.2018, 23:49:22

Dlaczego w dziale PHP, skoro problem dotyczy zapytania do bazy danych?
I pytanie dotyczące Twojego problemu: widzisz gdzieś w zapytaniu "approve"?
Przenoszę...

Napisany przez: alkesz1718 23.02.2018, 17:35:43

W tym zapytaniu nie ma approve bo jest ono tylko podczas dodawania takiego pozdrowienia a poniżej daję jak to wygląda:

  1. $qq = "INSERT INTO `dle_pozdro` (`id` ,`pozdro` ,`userid` ,`date`,`approve`)VALUES (NULL, '$tresc', '$member_id[user_id]', '$thistime', '0');";

I teraz chcę by w tym 1 kodzie co na początku dałem było że jeśli approve = 0 to żeby nie wyświetlało tego pozdrowienia na stronie dopóki approve nie będzie miało wartości 1.
Po za tym napisałem że podejrzewam że to może być w zmiennej mysql ale nie jestem pewien... może to być jakiś kod php przez co nie będzie mi wyświetlać...

Napisany przez: b4rt3kk 23.02.2018, 17:38:31

Dołóż WHERE do zapytania:

  1. SELECT pozdro, dle_users.name FROM dle_pozdro LEFT JOIN dle_users ON dle_users.user_id = dle_pozdro.userid WHERE approve = 1 ORDER BY dle_pozdro.id DESC LIMIT 30

Napisany przez: alkesz1718 23.02.2018, 17:41:24

Ok dzięki wielkie smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)