Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Jak wyświetlić kolejny rekord z bazy pasujący do warunku?
Tomek_K
post 13.07.2012, 08:54:03
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 7.05.2011

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


Cześć, mam bazę danych w której przetrzymywane są wykonane projekty. Są tam dane dotyczące wykonawców, powierzchni itd itd i jest też pole zawierające wartość PROJECT_CATHEGORY. Kateogrii projektów jest 5, ustawia się je przy dodawaniu. Przyjmijmy, że kategorie numerowane od 1 - 5 i w bazie wygląda to tak:
  1. 1
  2. kategoria pole id
  3. 3 1
  4. 2 2
  5. 3 3
  6. 3 4
  7. 5 5
  8. 3

Każdy z nich ma swoje określone id. Jak po pobraniu tylko projektów z kategorii 3 poczynając od pierwszego przeskoczyć do kolejnych? z wykorzystaniem, albo bez uzywania pola ID.(W sensie jak z ID 1 przejść do id 3. Myślałem, żeby w pętli zrobić licznik i dopóki $r['kategoria'] != $_GET['cathegory'], to zwiększać id obecnie pokazywanego wpisu - wtedy w momencie napotkania kolejnego wpisu z kategorii id zwiększane będzie takie samo jak jego, ale ma to jedną wadę - pobrane wpisy mają taką samą kategorię)

Ten post edytował Tomek_K 13.07.2012, 09:23:20
Go to the top of the page
+Quote Post
mmmmmmm
post 13.07.2012, 09:24:36
Post #2





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

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


W pętli while(){}
Go to the top of the page
+Quote Post
Tomek_K
post 13.07.2012, 09:31:48
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 7.05.2011

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


No też o tym myślałem, ale tak jak pisałem - pomysł wysypuje się na tym, że kategoria zawsze jest taka sama. Chyba, że masz jakąś inną wizję tego rozwiązania to chętnie posłucham ;p

Chyba, że można by najpierw pobrać jeden rekord pasujaćy do kategorii i wyświetlić go jako "ostatnio dodany" dla danej kategorii, a potem kategorię zapisac w zmiennej $cathegory i po pojawieniu się ?id
  1. if(isset($_GET['id'])
sprawdzać to przy pomocy while()

Ten post edytował Tomek_K 13.07.2012, 09:45:26
Go to the top of the page
+Quote Post
mmmmmmm
post 13.07.2012, 10:14:49
Post #4





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

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


Daj kod PHP, bo nie rozumiem. Z kody prędzej skumam.
Go to the top of the page
+Quote Post
Tomek_K
post 13.07.2012, 10:21:06
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 7.05.2011

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


kod jeszcze nie powstał, na razie szukam pomysłu na rozwiązanie.

  1. if($_SESSION['lang'] == 'fr') { //w wypadku gdy jest to język francuski
  2. $ask = mysql_query("SELECT * FROM projectfr WHERE project_cathegory='".$_GET['cathegory']."' ORDER BY project_id DESC LIMIT 1"); // pobieramy ostatni projekt dodany do bazy i wyświetlamy.
  3. if(mysql_num_rows($ask) > 0){ //sprawdzanie czy jakiś rekord został dodany do bazy
  4. while($r = mysql_fetch_assoc($ask)){


tutaj jest tylko pobieranie ostatniego dodanego projektu z wybranej kategorii. I teraz szukam pomysłu jak przejść do wcześniejszego jeżeli ich id nie są po kolei smile.gif

Ten post edytował Tomek_K 13.07.2012, 10:21:24
Go to the top of the page
+Quote Post
mmmmmmm
post 13.07.2012, 10:26:40
Post #6





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

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


Wywal LIMIT.
Go to the top of the page
+Quote Post
Tomek_K
post 13.07.2012, 12:17:22
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 7.05.2011

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


ale nie chcę pobierać i wyświetlać wszystkich tylko jeden ostatni, więc dlaczego wywalać LIMIT ?
Go to the top of the page
+Quote Post
sobol6803
post 13.07.2012, 12:44:31
Post #8





Grupa: Zarejestrowani
Postów: 115
Pomógł: 13
Dołączył: 19.06.2011
Skąd: Ruda Śląska

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


To w końcu chcesz tylko 1, ostatni projekt z danej kategorii z bazy wyciągnąć, czy wszystkie, czy jak?

Jak chcesz przedostatni z kategorii, to limit na 2 ustaw i select Ci 2 wiersze pobierze. Jak chcesz 3 to 3, itd.


--------------------
  1. mysql_query("DROP DATABASE $_GET['dbname']");
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: 15.06.2025 - 09:12