Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Zmiana priorytetu - jak pobrać wyniki, Czy da sie to zrobić
dobryvinyl.com
post 9.05.2009, 21:23:06
Post #1





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


Witam,

mam dość nietypowy problem. Chcialbym poprosić o pomoc w jego rozwiązaniu.

Mam tabele w bazie ktora zawiera kontakty, zawiera ona kolumne o nazwie priorytet.
Przyjmuje ona wartosci od 1 do 99. Rekordy pobieram w następujący sposób, pomijajac oczywiscie polaczenie itd

  1. <?php
  2. while ($row_list = mysql_fetch_array($response_list)) {
  3. $lp++;
  4. echo $lp . "-";
  5. echo $row_list[priorytet];
  6. echo $lp . "<BR>";
  7. }
  8. ?>


Wynikiem jest w tym momecie coś takiego

1 - 66
2 - 78
3 - 82
4 - 95
5 - 99

Zalezaloby mi teraz zeby pobraz za kazdym razem jescze poprzedni i kolejny rekord z tablicy, zby wynik wygladał tak:

1 - 66 - p: - n:78
2 - 78 - p:66 - n:82
3 - 82 - p:78 - n:95
4 - 95 - p:82 - n:99
5 - 99 - p:95 - n:

ułatwi mi to przekazywanie koment umożliwiających zamiane konkretnych rekordów miesjcami. o ile poprzedni rekord jestem w sanie sobie zdefiniowac, przypisujac wartosc do nowej zmiennej to calkowicie niewiem jak zabrac sie za przedstawienie kolejnego.

Ten post edytował dobryvinyl.com 9.05.2009, 21:23:34


--------------------
___________________________________________
www.digart.pl / galeria jakich mało.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
wizard144
post 9.05.2009, 21:51:55
Post #2





Grupa: Zarejestrowani
Postów: 138
Pomógł: 3
Dołączył: 4.05.2009

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


Nie rozumiem, opisz problem lepiej...
Go to the top of the page
+Quote Post
dobryvinyl.com
post 9.05.2009, 22:25:09
Post #3





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


Za pomocą petli while wyswietlam wszystkie rekordy z bazy danych, jak teraz wyswietlic w jednej pozycji wartosc poprzedniego, aktualnego i nastepnego pola z kolumny priorytet.

Zaluzmy ze tabela wyglada tak:

id | tytul | priorytet
1 | tytul A | 99
2 | tytul B | 70
3 | tytul C | 20
4 | tytul D | 10


i jak teraz to wyswietlic zby efekt byl taki

1 tytul A - poprzedni priorytet: XX - aktualny priorytet: 99 - nastepny priorytet: 70
2 tytul B - poprzedni priorytet: 99 - aktualny priorytet: 70 - nastepny priorytet: 20
3 tytul C - poprzedni priorytet: 70 - aktualny priorytet: 20 - nastepny priorytet: 10
4 tytul D - poprzedni priorytet: 20 - aktualny priorytet: 10 - nastepny priorytet: XX

O ile jak jest aktualny i poprzedni jestem wstanie zrobic, to niewiem jak dobrac sie do nastepnej wartosci.
Ponizej kod jaki mam w głowie

  1. <?php
  2. while ($row_list = mysql_fetch_array($response_list)) {
  3.  
  4.     print "$row_list[id] $row_list[tytul] - poprzedni priorytet: $poprzedni - aktualny priorytet: $row_list[priorytet] - nastepny priorytet: ? ? ? ?</br>";
  5.  
  6. $poprzedni = $row_list[priorytet];
  7.  
  8.    }
  9. ?>


Czy teraz jest to jaśniejsze?

Ten post edytował dobryvinyl.com 9.05.2009, 22:26:24


--------------------
___________________________________________
www.digart.pl / galeria jakich mało.
Go to the top of the page
+Quote Post
kornel-php
post 9.05.2009, 22:30:49
Post #4





Grupa: Zarejestrowani
Postów: 210
Pomógł: 20
Dołączył: 7.07.2006
Skąd: Krotoszyn

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


Wrzuć to co pobierasz do tablicy $tab[] i potem odczytaj:

  1. <?php
  2. $i = 0;
  3.  
  4. while($i<$n) {
  5.  
  6.   echo 'poprzedni '.$tab[$i-1];
  7.   echo 'aktualny '.$tab[$i];
  8.   echo 'nastepny '.$tab[$i+1];
  9.  
  10.   $i++;
  11.  
  12. }
  13. ?>


Coś takiego.

Ten post edytował kornel-php 9.05.2009, 22:44:43


--------------------
:)
Go to the top of the page
+Quote Post
dobryvinyl.com
post 9.05.2009, 22:38:08
Post #5





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


kornel-php a czy mozesz mnie jakos bardzij na konkretne tory skierowac?
jakis przyklad, chocby szkielet?

Juz Ci bardzo dzikuje ale bede wdzieczny za wytlumaczenie.


--------------------
___________________________________________
www.digart.pl / galeria jakich mało.
Go to the top of the page
+Quote Post
kornel-php
post 9.05.2009, 22:43:38
Post #6





Grupa: Zarejestrowani
Postów: 210
Pomógł: 20
Dołączył: 7.07.2006
Skąd: Krotoszyn

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


Ok. Zamiast wyświetlać dane na ekran wrzucasz je do tablicy za pomocą pętli, dzięki której wyciągasz dane z bazy. I tak dla każdego kolejnego rekordu:

  1. <?php
  2. $i = 0;
  3. while(są_dane) { $tab[$i] = $wynik_zapytania; $i++; }
  4. ?>


Teraz uporządkowane dane masz już w tablicy. Odczytujesz je podobną instrukcją:

  1. <?php
  2. while(są_dane) {
  3.  
  4.   echo $tab[$i-1]; // element poprzedni (o 1 mniejszy)
  5.   echo $tab[$i]; // element bieżący
  6.   echo $tab[$i+1]; // element następny (o 1 większy)
  7.  
  8.   $i++; // przejdź do kolejnego elementu
  9.  
  10. }
  11. ?>


Łapiesz?


--------------------
:)
Go to the top of the page
+Quote Post
dobryvinyl.com
post 9.05.2009, 22:57:32
Post #7





Grupa: Zarejestrowani
Postów: 126
Pomógł: 0
Dołączył: 1.11.2004

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


Cos mi to nie idzie, domyslam sie ze popelniam gdzies blad w miejscu są_dane. Powalcze jeszcze, mam nadzieje ze znajde rozwiazanie. Tak czy siak bardzo dziekujeza pomoc.


--------------------
___________________________________________
www.digart.pl / galeria jakich mało.
Go to the top of the page
+Quote Post
zelu
post 9.05.2009, 23:11:22
Post #8





Grupa: Zarejestrowani
Postów: 229
Pomógł: 34
Dołączył: 7.12.2008
Skąd: Poznań

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


Zamiast są dane musisz wstawić mysql_fetch_assoc (lub podobne)... To tylko ogólny schemat a nie gotowy kod smile.gif

Pozdro
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: 29.06.2025 - 15:40