Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql][php] Brak sortowania
Forum PHP.pl > Forum > Przedszkole
poxrimex
Nie działa mi sortowanie, wszystko inne ok. Tylko w tym przypadku coś podobnego jak sys. newsów odczytuje newsy od najmniejszego do największego a ja chciałbym odwrotnie smile.gif Myślałem, że desc to załatwi, ale widać, że nie smile.gif
  1. <?php
  2. $dbh=mysql_connect("localhost", "sec", "haslo") or die ('I cannot connect to the database because: ' . mysql_error());
  3. mysql_select_db ("sec") or die(mysql_error());
  4.  
  5. $get=$_GET['page'];
  6. $mnozenie=$get*10;
  7. $getdwa=$mnozenie-10;
  8.  
  9. $zapytanie = "SELECT * from tabela WHERE numer <= $mnozenie and numer > $getdwa order by numer desc";
  10. $wynik = mysql_query($zapytanie);
  11.  
  12. //petla odczytujaca wszystkie dane
  13. while ($wiersz = mysql_fetch_array($wynik)) {
  14. $haje=$wiersz['hajeden'];
  15. $opis=$wiersz['opis'];
  16. $link=$wiersz['link'];
  17. $obrazek=$wiersz['obrazek'];
  18. $numer=$wiersz['numer'];
  19. echo '<div id="one">';
  20. echo $numer.': &nbsp;'.$haje.$opis.$link.$obrazek;
  21. echo '</div>';
  22. echo '<br /><br /><br /><br /><br />';
  23. }
  24.  
  25. ?>


Ps. Pole numer jest auto_increment
phpion
Może pole nie jest typu liczbowego tylko znakowego?
poxrimex
pole jest typu INT
KCG
A może spróbuj wielkimi literami ORDER BY `numer` DESC ?
poxrimex
Nadal niczego to nie zmienia sadsmiley02.gif
Ludzie, to tylko sortowanie a tu brak odpowiedzi sadsmiley02.gif
nevt
zapytanie jest 100 % poprawne... jesteś pewien, że wyświetla ci dane posortowane rosnąco a nie malejąco ? w ogóle wyświetla ci jakieś dane ?

jedyny błąd jaki widzę w kodzie to wielokrotne użycie w pętli <div id="one"> - właściwość id powinna być użyta tylko raz danym dokumencie, zmień to na <div class="one">

i jeszcze jedno... czy jesteś pewien, że po zmianie w kodzie twoja przeglądarka nie wyświetla starego kodu z jakiegoś cache? odświeżasz widok przez CTRL-F5 czy inaczej?
poxrimex
no cache na pewno nie sadsmiley02.gif
już to zrobiłem i nadal to samo

a i dodam, że jak użyję ASC czy DESC to dla skryptu nie wiem jakim cudem różnicy nie robi
nowotny
Wyeksportuj lepiej tabele i pokaż nam tutaj... tylko nie samą strukturę, ale zawartość też...
poxrimex
SQL

  1. --
  2. -- Struktura tabeli dla `ba`
  3. --
  4.  
  5. CREATE TABLE `ba` (
  6. `numer` int(5) NOT NULL AUTO_INCREMENT,
  7. `hajeden` varchar(150) NOT NULL,
  8. `opis` varchar(250) NOT NULL,
  9. `link` varchar(600) NOT NULL,
  10. `obrazek` varchar(100) NOT NULL,
  11. `licznik` int(11) NOT NULL,
  12. KEY `numer` (`numer`)
  13. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=25 ;
  14.  
  15. --
  16. -- Zrzut danych tabeli `ba`
  17. --
  18.  
  19. INSERT INTO `ba` VALUES(1, 'Wojtek ', 'Wojtek', 'wojtek', 'tak wojtek', 1);
  20. INSERT INTO `ba` VALUES(2, 'Wojtek ', 'Wojtek', 'wojtek', 'tak wojtek', 1);
  21. INSERT INTO `ba` VALUES(3, 'Wojtek ', 'Wojtek', 'wojtek', 'tak wojtek', 1);
  22. INSERT INTO `ba` VALUES(4, 'Wojtek ', 'Wojtek', 'wojtek', 'tak wojtek', 1);
  23. INSERT INTO `ba` VALUES(5, 'Wojtek ', 'Wojtek', 'wojtek', 'tak wojtek', 1);
  24. INSERT INTO `ba` VALUES(6, 'Wojtek ', 'Wojtek', 'wojtek', 'tak wojtek', 1);
  25. INSERT INTO `ba` VALUES(7, 'Wojtek ', 'Wojtek', 'wojtek', 'tak wojtek', 1);
  26. INSERT INTO `ba` VALUES(8, 'Wojtek ', 'Wojtek', 'wojtek', 'tak wojtek', 1);
  27. INSERT INTO `ba` VALUES(9, 'Wojtek ', 'Wojtek', 'wojtek', 'tak wojtek', 1);
  28. INSERT INTO `ba` VALUES(10, 'Wojtek ', 'Wojtek', 'wojtek', 'tak wojtek', 1);
  29. INSERT INTO `ba` VALUES(11, 'Wojtek ', 'Wojtek', 'wojtek', 'tak wojtek', 1);
  30. INSERT INTO `ba` VALUES(12, 'Wojtek ', 'Wojtek', 'wojtek', 'tak wojtek', 1);
  31. INSERT INTO `ba` VALUES(13, 'Wielkie wycieczki', 'cziecki', 'apteczki', 'wycieczki', 1);
  32. INSERT INTO `ba` VALUES(14, 'Wielkie wycieczki', 'cziecki', 'apteczki', 'wycieczki', 1);
  33. INSERT INTO `ba` VALUES(15, 'Wielkie wycieczki', 'cziecki', 'apteczki', 'wycieczki', 1);
  34. INSERT INTO `ba` VALUES(16, 'Wielkie wycieczki', 'cziecki', 'apteczki', 'wycieczki', 1);
  35. INSERT INTO `ba` VALUES(17, 'Wielkie wycieczki', 'cziecki', 'apteczki', 'wycieczki', 1);
  36. INSERT INTO `ba` VALUES(18, 'Wielkie wycieczki', 'cziecki', 'apteczki', 'wycieczki', 1);
  37. INSERT INTO `ba` VALUES(19, 'Wielkie wycieczki', 'cziecki', 'apteczki', 'wycieczki', 1);
  38. INSERT INTO `ba` VALUES(20, 'Wielkie wycieczki', 'cziecki', 'apteczki', 'wycieczki', 1);
  39. INSERT INTO `ba` VALUES(21, 'Wielkie wycieczki', 'cziecki', 'apteczki', 'wycieczki', 1);
  40. INSERT INTO `ba` VALUES(22, 'Wielkie wycieczki', 'cziecki', 'apteczki', 'wycieczki', 1);
  41. INSERT INTO `ba` VALUES(23, 'Wielkie wycieczki', 'cziecki', 'apteczki', 'wycieczki', 1);
  42. INSERT INTO `ba` VALUES(24, 'Wielkie wycieczki', 'cziecki', 'apteczki', 'wycieczki', 1);
nevt
przy takim zapytaniu i takich danych nie ma możliwości, żeby nie zwracało prawidłowo.
problem musi być stronie serwera / skryptu php - albo plik który sobie oglądasz w przeglądarce, to nie ten który edytujesz... albo pokazujesz nam inny kod niż ten, którego naprawdę używasz. innej opcji po prostu nie ma - zapytanie jest tak banalnie proste, że nie ma w nim miejsca na żaden błąd
nowotny
ok... teraz jeszcze wyechuj zapytanie i wklej tutaj...
poxrimex
to w całości: powtarzam, że odczytuje się wszystko lecz ja chciałbym nie w tej kolejności:

oto jeszcze raz skrypt php:

  1. <?php
  2. $dbh=mysql_connect("localhost", "sekret1", "sekret2") or die ('I cannot connect to the database because: ' . mysql_error());
  3. mysql_select_db ("sekret1") or die(mysql_error());
  4.  
  5. $get=$_GET['page'];
  6. $mnozenie=$get*10;
  7. $getdwa=$mnozenie-10;
  8.  
  9. $zapytaniefir = "SELECT * from ba ORDER BY numer";
  10. $wynikfir = mysql_query($zapytaniefir);
  11. $abc=mysql_num_rows($wynikfir);
  12. $abcd=$abc+10;
  13.  
  14. $zapytanie = "SELECT * from ba WHERE numer <= $mnozenie and numer > $getdwa order by numer DESC";
  15. $wynik = mysql_query($zapytanie);
  16.  
  17. //petla odczytujaca wszystkie dane
  18. while ($wiersz = mysql_fetch_array($wynik)) {
  19. $haje=$wiersz['hajeden'];
  20. $opis=$wiersz['opis'];
  21. $link=$wiersz['link'];
  22. $obrazek=$wiersz['obrazek'];
  23. $numer=$wiersz['numer'];
  24. echo '<div id="one">';
  25. echo $numer.': &nbsp;'.$haje.$opis.$link.$obrazek;
  26. echo '</div>';
  27. echo '<br /><br /><br /><br /><br />';
  28. }
  29.  
  30. ?>
nowotny
Jaką wartość ma zmienna $_GET['page']...?
poxrimex
1

i ona wyświetla rekordy z mysql gdzie numer jest w tym przypadku od 0 do 10 smile.gif ,
gdyż 1 zmienna to 1x10, a druga 1x10-10, czyli określenie wartości do którego wiersza smile.gif
nowotny
No i prawidłowo... u mnie działa... nie wiem czemu u ciebie nie... :/
poxrimex
u mnie też działa tylko działa w porządku rosnącym, że na pierwszej stronie
wyświetla najpierw zmienne rosnąco
a ja chcę malejąco i w tym jest problem
nevt
wiesz co, weź sobie wklej taki kod:
  1. <?php
  2. echo "MALEJĄCO!<br / >";
  3. $zapytanie = "SELECT * from ba ORDER BY numer DESC";
  4. $wynik = mysql_query($zapytanie);
  5. while ($wiersz = mysql_fetch_array($wynik)) {
  6. $haje=$wiersz['hajeden'];
  7. $opis=$wiersz['opis'];
  8. $link=$wiersz['link'];
  9. $obrazek=$wiersz['obrazek'];
  10. $numer=$wiersz['numer'];
  11. echo $numer.': &nbsp;'.$haje.$opis.$link.$obrazek;
  12. echo '<br />';
  13. }
  14. echo "ROSNĄCO!<br / >";
  15.  $zapytanie = "SELECT * from ba ORDER BY numer";
  16.  $wynik = mysql_query($zapytanie);
  17.  while ($wiersz = mysql_fetch_array($wynik)) {
  18.  $haje=$wiersz['hajeden'];
  19.  $opis=$wiersz['opis'];
  20.  $link=$wiersz['link'];
  21.  $obrazek=$wiersz['obrazek'];
  22.  $numer=$wiersz['numer'];
  23.  echo $numer.': &nbsp;'.$haje.$opis.$link.$obrazek;
  24.  echo '<br />';
  25.  }
  26. ?>

i wklej tu to co ci wyświetli - bo coś mi tu ściemniasz...
nowotny
No z tym u mnie też nie ma problemu... :/

Znaczy chcesz malejąco od numeru 20 do 10 czy do 10 do 1...?
poxrimex
Hmm
na każdej stronie mi odpowiednio spadająco robi, tylko ogólny rekord nie jest należyty

Jeżeli mam
1
2
3
4
5
7
8
9
10
11
12
13
15
16
17
18
19
20

I mam po 10 rekordów na stronę
to 1 strona wygląda tak:
10
9
8
7
6
5
4
3
2
1
a 2 strona tak:
20
19
18
17
16
15
14
13
12
11

A JA CHCIAŁBYM aby to wyglądało tak:

1 strona:
20
19
18
17
16
15
14
13
12
11
10

a strona 2:
9
8
7
6
5
4
3
2
1

Czaisz o co chodzi?
nevt
Cytat
Nie działa mi sortowanie, wszystko inne ok.

a teraz piszesz, że chodzi ci o kolejność stron... złóż podanie do prezydenta na rzecznika prasowego- przekaz masz perfekcyjny...
zrób takie pytanko
  1. <?php
  2. $zapytanie = "SELECT * FROM ba ORDER BY numer DESC LIMIT $getdwa, 10;";
  3. ?>

i po sprawie.
nowotny
No, i nie można było tak od razu... następnym razem to trzeba od razu mówic JASNO co jest nie tak i jak powinno być... my tu wróżkami nie jesteśmy i nie bawi nas zgadywanie co autor miał na myśli...

  1. <?php
  2. $zapytanie = "SELECT * from ba order by numer desc LIMIT ".$getdwa.",10";
  3. ?>
poxrimex
No wkońcu "działająca" odpowiedz.

Pozdrawiam
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.