Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][SQL]Top 10
maniek6666
post 4.12.2010, 10:42:25
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.03.2010

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


Witam serdecznie , stworzyłem sobie topliste wszystko działa tylko chce ja teraz wyświetlić i mam mały problem bo nie wiem jak zrobić sortowanie tzn zeby sie wyświetlało na pierwszej pozycji pozycja która ma najwięcej głosów i zmniejszyć liczbe znaków tytułu tzn żeby wyświetlało się 30 znaków a po najechaniu żeby był dymek z całą nazwą

oto zapytanie do bazy danych

  1. function toplisty() {
  2.  
  3. <table width="100%" align="left" border="0" cellspacing="0" cellpadding="0">
  4. <tr>
  5. <td align="left" class="uni_01"><b>Wykonawca</b></td>
  6. <td align="center" class="uni_01">glosy</td>
  7. <td align="center" class="uni_01">zaglosuj</td>
  8. </tr>';
  9.  
  10.  
  11. $sql = "SELECT * FROM toplista_pliki";
  12. $result = mysql_query($sql);
  13.  
  14. while($r = mysql_fetch_array($result)) {
  15.  
  16. $id = $r['id'];
  17. $wyk = $r['nazwa'];
  18. $gl = $r['glosow'];
  19.  
  20. <tr>
  21.  
  22. <td class="uni_01="left"><img src="/images/strzalka_czerwona.png" width="8" height="6">'.$wyk.'</td>
  23. <td class="uni_01" align="center">'.$gl.'</td>
  24.  
  25. <td class="uni_01" align="center"><a href="toplista.php?cmd=glos&id='.$z_bazy[id].'&kat=1"><img src="/images/icon_plus.png" width="8" height="6"></a></td>
  26. </tr>';
  27. }
  28. </table>';
  29.  
  30. }

dopiero się uczę więc pewnie nie jest za dobre pozdrawiam i licze na pomoc smile.gif
Go to the top of the page
+Quote Post
Daiquiri
post 4.12.2010, 10:58:48
Post #2





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Co do pierwszego skorzystaj z zapytania z dodatkiem ORDER BY pole_z_liczba_glosow DESC (czyli ustawianie kolejności malejąco po zadanym polu). Co do drugiego skorzystaj z funkcji substr(). Nie wiem jaki dymek masz na myśli.

Ten post edytował Daiquiri 4.12.2010, 11:01:09
Go to the top of the page
+Quote Post
blade-mrn
post 4.12.2010, 10:59:47
Post #3





Grupa: Zarejestrowani
Postów: 113
Pomógł: 11
Dołączył: 20.10.2009

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


Nie wiem jak z tym dymkiem ale jeśli chodzi o sortowanie to możesz to zrobić przy pobieraniu danych z bazy.
  1. SELECT * FROM tabela ORDER BY kolumna z ilością głosów DESC


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on to właśnie robi."
Albert Einstein
Go to the top of the page
+Quote Post
maniek6666
post 4.12.2010, 11:11:27
Post #4





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.03.2010

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


co do dymku to żeby sie title po najechaniu wyświetlało
Go to the top of the page
+Quote Post
Daiquiri
post 4.12.2010, 11:24:33
Post #5





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




To w czym masz problem? W miejscu:
  1. <a href="" title="<?php echo $pobrany_tytul;?>" > <?php echo substr($pobrany_tytul,0,30);?> </a>


Ten post edytował Daiquiri 4.12.2010, 11:24:56
Go to the top of the page
+Quote Post
maniek6666
post 6.12.2010, 17:51:55
Post #6





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.03.2010

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


Oj coś mi nie wychodzi dodaje zapytanie"SELECT * FROM toplista_pliki ORDER BY $gl DESC "; ale nadal sortowanie nie działa ;/ gdzie popełnilem bład ?
  1. function toplisty() {
  2.  
  3. <table width="100%" align="left" border="0" cellspacing="0" cellpadding="0">
  4. <tr>
  5. <td align="left" class="uni_01"><b>Wykonawca</b></td>
  6. <td align="center" class="uni_01">glosy</td>
  7. <td align="center" class="uni_01">zaglosuj</td>
  8. </tr>';
  9.  
  10.  
  11. $sql = "SELECT * FROM toplista_pliki";
  12. $result = mysql_query($sql);
  13. "SELECT * FROM toplista_pliki ORDER BY $gl DESC ";
  14.  
  15. while($r = mysql_fetch_array($result)) {
  16.  
  17. $id = $r['id'];
  18. $wyk = $r['nazwa'];
  19. $gl = $r['glosow'];
  20.  
  21. <tr>
  22.  
  23. <td class="uni_01="left"><img src="/images/strzalka_czerwona.png" width="8" height="6">
  24. '.$wyk.' </a> </td>
  25. <td class="uni_01" align="center">'.$gl.'</td>
  26.  
  27. <td class="uni_01" align="center"><a href="toplista.php?cmd=glos&id='.$z_bazy[id].'&kat=1"><img src="/images/icon_plus.png" width="8" height="6"></a></td>
  28. </tr>';
  29. }
  30. </table>';
  31.  
  32. }
Go to the top of the page
+Quote Post
emajl22
post 6.12.2010, 18:28:26
Post #7





Grupa: Zarejestrowani
Postów: 273
Pomógł: 21
Dołączył: 28.11.2010

Ostrzeżenie: (10%)
X----


  1. $sql = "SELECT * FROM toplista_pliki ORDER BY ".$gl." DESC";
  2. $result = mysql_query($sql);

poza tym mam jedno pytanie - skąd Ci się wzięło te $gl?

Ten post edytował emajl22 6.12.2010, 18:29:16


--------------------
Go to the top of the page
+Quote Post
blade-mrn
post 6.12.2010, 18:49:08
Post #8





Grupa: Zarejestrowani
Postów: 113
Pomógł: 11
Dołączył: 20.10.2009

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


  1. $sql = "SELECT * FROM toplista_pliki ORDER BY ".$gl." DESC";

Tu zamiast $gl ma być nazwa kolumny z tabeli według której sortujesz.
A tu nie prościej zrobić tak, zamiast tego:
  1. $sql = "SELECT * FROM toplista_pliki";
  2. $result = mysql_query($sql);

dać tak:
  1. $result = mysql_query("SELECT * FROM toplista_pliki");

Do czego ci ta zmienna $sql?


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on to właśnie robi."
Albert Einstein
Go to the top of the page
+Quote Post
maniek6666
post 6.12.2010, 19:21:39
Post #9





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.03.2010

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


wiec dodaje tak
  1. function toplisty() {
  2.  
  3. <table width="100%" align="left" border="0" cellspacing="0" cellpadding="0">
  4. <tr>
  5. <td align="left" class="uni_01"><b>Wykonawca</b></td>
  6. <td align="center" class="uni_01">glosy</td>
  7. <td align="center" class="uni_01">zaglosuj</td>
  8. </tr>';
  9.  
  10. $sql = "SELECT * FROM toplista_pliki ORDER BY glosow DESC";
  11. $result = mysql_query($sql);
  12. while($r = mysql_fetch_array($result)) {
  13. $id = $r['id'];
  14. $wyk = $r['nazwa'];
  15. $gl = $r['glosow'];
  16.  
  17.  
  18. <tr>
  19.  
  20. <td class="uni_01="left"><img src="/images/strzalka_czerwona.png" width="8" height="6">
  21. '.$wyk.' </a> </td>
  22. <td class="uni_01" align="center">'.$gl.'</td>
  23.  
  24. <td class="uni_01" align="center"><a href="toplista.php?cmd=glos&id='.$z_bazy[id].'&kat='.$GLOBALS[kat].'"><img src="/images/icon_plus.png" width="8" height="6"></a></td>
  25. </tr>';
  26. }
  27. </table>';
  28.  
  29. }

sortowanie działa extra tylko nie dodaje głosu do bazy ;/
Go to the top of the page
+Quote Post
ADeM
post 6.12.2010, 19:39:21
Post #10





Grupa: Zarejestrowani
Postów: 455
Pomógł: 69
Dołączył: 23.10.2004
Skąd: Oświęcim

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


A gdzie masz jakiś kod odpowiedzialny za to? oO


--------------------
Go to the top of the page
+Quote Post
maniek6666
post 6.12.2010, 20:00:00
Post #11





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.03.2010

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


znaczy jeśli dodaje głos przez www.mojastrona.pl/toplista.php to normalnie dodaje a jesli z index.php to juz nie

w pliku toplista.php jest
  1. function glos() {
  2.  
  3. if($_COOKIE['toplista_kat']==$GLOBALS['kat']) echo '<br><br><b><center>Oddałeś już głos w tej kategori</center></b><br><br>';
  4. else {
  5. $glosow = mysql_result(mysql_query("SELECT glosow FROM toplista_pliki WHERE id='$GLOBALS[id]'"),"glosow");
  6. mysql_query("UPDATE toplista_pliki SET glosow=$glosow+1 WHERE id='$GLOBALS[id]'");
  7.  
  8. setcookie("toplista_kat", $GLOBALS['kat'], time()+3600*24*365);
  9.  
  10. echo '<br><br><b><center>Dziękujemy za oddanie głosu</center></b><br><br>';
  11. }
  12. echo '<script language="JavaScript" type="text/javascript">
  13. <!--
  14. setTimeout("window.location.replace(\'toplista.php?cmd=poz&kat='.$GLOBALS[kat].'\')", 3000);
  15. //-->
  16. </script>';
  17. }
Go to the top of the page
+Quote Post
ADeM
post 6.12.2010, 20:08:27
Post #12





Grupa: Zarejestrowani
Postów: 455
Pomógł: 69
Dołączył: 23.10.2004
Skąd: Oświęcim

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


No fajnie... Chyba nie podałeś wszystkich kodów -.-'
Podałeś plik index, w którym Ci nie dodaje?


--------------------
Go to the top of the page
+Quote Post
maniek6666
post 11.12.2010, 18:47:32
Post #13





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.03.2010

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


znaczy w index.php dodaje
<?php
toplisty();
?>
a funkcje w pliku bonus.inc.php bo ja to chcialem pod jportal

Witam ponownie więc sortowanie działa title działa odawanie głosu działa mam tylko problem z limitem tytułu wiem ze do tego można zastosować substr tylko kurcze no nie wiem jak ;/ serdecznie prosze o pomoc
http://us2.php.net/manual/pl/function.substr.php

  1. function toplisty() {
  2.  
  3. <table width="100%" align="left" border="0" cellspacing="0" cellpadding="0">
  4. <tr>
  5. <td align="left" class="uni_01"><b>Wykonawca</b></td>
  6. <td align="center" class="uni_01">glosy</td>
  7. <td align="center" class="uni_01">zaglosuj</td>
  8. </tr>';
  9.  
  10. $sql = "SELECT * FROM toplista_pliki ORDER BY glosow DESC";
  11. $result = mysql_query($sql);
  12. while($r = mysql_fetch_array($result)) {
  13.  
  14. $id = $r['id'];
  15. $wyk = $r['nazwa'];
  16. $gl = $r['glosow'];
  17.  
  18. $dl=strlen($r[title]);
  19. if($dl>35) $r[title]=substr($r[title], 0, 35).'...';
  20.  
  21.  
  22. <tr>
  23.  
  24. <td class="uni_01="left"><img src="/images/strzalka_czerwona.png" width="8" height="6">
  25. <a href="#" title="'.$r[nazwa].'">'.$wyk.'</a> </td>
  26. <td class="uni_01" align="center">'.$gl.'</td>
  27.  
  28. <td class="uni_01" align="center"><a href="toplista.php?cmd=glos&id='.$z_bazy[id].'&kat='.$GLOBALS[id].'&kat=1"><img src="/images/icon_plus.png" width="8" height="6"></a></td>
  29. </tr>';
  30. }
  31. </table>';
  32.  
  33. }
Go to the top of the page
+Quote Post
lord2105
post 11.12.2010, 18:57:55
Post #14





Grupa: Zarejestrowani
Postów: 380
Pomógł: 59
Dołączył: 24.04.2010
Skąd: London

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


Dlaczego tak?
  1. $dl=strlen($r[title]);


a nie tak?

  1. $dl=strlen($r[nazwa]);


EDIT:

  1. if (strlen($r['nazwa']) > 35){
  2. $wyk = substr($r['nazwa'],35).'...';
  3. }
  4. else {
  5. $wyk = $r['nazwa'];
  6. }


Ten post edytował lord2105 11.12.2010, 19:02:26


--------------------
40% rozwiązań znajduje się tutaj.
59,9% tutaj.

Jeśli pomogłem rozwiązać Twój problem wciśnij
Go to the top of the page
+Quote Post
maniek6666
post 11.12.2010, 19:12:46
Post #15





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.03.2010

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


Extra działa tylko że skraca ale od lewej strony czyli jak mam nazwe Rod Stewart Do Ya Think Im Sexy (Mightyfools Remix) to skraca do
Ya Think Im Sexy (Mightyfools Remix).. po ustawieniu 10 wyświetlanych znaków a powinno być Rod Stewart Do Ya Think Im Sexy
Go to the top of the page
+Quote Post
lord2105
post 11.12.2010, 19:17:21
Post #16





Grupa: Zarejestrowani
Postów: 380
Pomógł: 59
Dołączył: 24.04.2010
Skąd: London

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


daj -35


--------------------
40% rozwiązań znajduje się tutaj.
59,9% tutaj.

Jeśli pomogłem rozwiązać Twój problem wciśnij
Go to the top of the page
+Quote Post
maniek6666
post 11.12.2010, 19:24:46
Post #17





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 1.03.2010

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


Nadal tak samo
  1. function toplisty() {
  2.  
  3. <table width="100%" align="left" border="0" cellspacing="0" cellpadding="0">
  4. <tr>
  5. <td align="left" class="uni_01"><b>Wykonawca</b></td>
  6. <td align="center" class="uni_01">glosy</td>
  7. <td align="center" class="uni_01">zaglosuj</td>
  8. </tr>';
  9.  
  10. $sql = "SELECT * FROM toplista_pliki ORDER BY glosow DESC";
  11. $result = mysql_query($sql);
  12. while($r = mysql_fetch_array($result)) {
  13.  
  14. $id = $r['id'];
  15. $wyk = $r['nazwa'];
  16. $gl = $r['glosow'];
  17.  
  18. $dl=strlen($r[title]);
  19. if (strlen($r['nazwa']) > 35 ){
  20. $wyk = substr($r['nazwa'],-35 ).'...';
  21. }
  22. else {
  23. $wyk = $r['nazwa'];
  24. }
  25.  
  26.  
  27. <tr>
  28.  
  29. <td class="uni_01="left"><img src="/images/strzalka_czerwona.png" width="8" height="6">
  30. <a href="#" title="'.$r[nazwa].'">'.$wyk.'</a> </td>
  31. <td class="uni_01" align="center">'.$gl.'</td>
  32.  
  33. <td class="uni_01" align="center"><a href="toplista.php?cmd=glos&id='.$z_bazy[id].'&kat='.$GLOBALS[id].'&kat=1"><img src="/images/icon_plus.png" width="8" height="6"></a></td>
  34. </tr>';
  35. }
  36. </table>';
  37.  
  38. }
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: 14.08.2025 - 06:02