Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> losowe pobieranie wszystkich rekordów
hispano
post
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 27.07.2004

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


Wita,

1. Mam pytanie jak rozwiązać problem? Przeszukałem funkcje dla mysql i nic. Może jest na to jakiś sposób poprzez odpowiednie zapytanie.
Mianowicie chodzi mi otrzymanie rekordów w wyniku w miarę losowej kolejności. Tak aby za każdym razem kolejność była inna.

Kwestia z funkcją pseudolosową nie jest odpowiednia. Byłoby bardziej zasobo i czaso rzerne.

2. Nie bardzo zrozumiałem przyklejony post o zapytaniach. Moje pytanie może jest prościutkie ale nie mogę przez to przebrnąć i moje zapytania ciągle są na poziomie niskim. Tworze system bazy wiedzy i bardzo mi się to przyda:
-czy jest możliwość uzyskania w jednym wyniku odpowiedzi na zapytanie do tabeli (z zagadnieniami) gdzie jednym z pól jest category_id i zamiast tego otrzymać nazwę odpowiadającą id z drugiej tabeli, która przechowuje nazwy kategorii?

category_id = id
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Ad 1
  1. SELECT *
  2. FROM tabela ORDER BY RAND()


Ad 2. Tak mozna
  1. SELECT *
  2. FROM tabela1 LEFT JOIN tabela2 ON (tabela1.kategoria_id = tabela2.id)
Go to the top of the page
+Quote Post
hispano
post
Post #3





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 27.07.2004

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


Wielkie dzięki,

Mam jeszcze pytanie do Ad.1: Czy tak można załączać do zapytania więcej funkcji czy jest to pojedyńczy przypadek?
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
Mam jeszcze pytanie do Ad.1: Czy tak można załączać do zapytania więcej funkcji czy jest to pojedyńczy przypadek?

To jest funkcja SQLa (MySQLa) mozesz zamieszczac jesli baza na to pozwala.
Go to the top of the page
+Quote Post
hispano
post
Post #5





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 27.07.2004

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


OK działa pięknie, tylko jeszcze mam pytanie, ponieważ nie chcę z różnych względów tak rozbudowanego wyniku.

Mam zapytanie:
  1. SELECT *
  2. FROM `odfaq_question` LEFT JOIN `odfaq_category.name` ON (odfaq_question.category_id = odfaq_category.id)


Jak można wyselekcjonować część kolumn z jednej tabeli i z drugiej?
Przypuszczam, że istenienie kolumn o tej samej nazwie stwarza problem, ponieważ dla zapytania:

  1. SELECT id, question, answer, category_id
  2. FROM `odfaq_question` LEFT JOIN `odfaq_category.name` ON (odfaq_question.category_id = odfaq_category.id)


otrzymałem (dodam, że id występuje w obu tabelach)
#1052 - Column: 'id' in field list is ambiguous

Jak można to rozwiazać??
Go to the top of the page
+Quote Post
Radarek
post
Post #6





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 23.05.2005

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


Odwolujesz sie wtedy do pol poprzez notacje NAZWA_TABELI.NAZWA_POLA w ten sposob pole jest okreslone jednoznacznie.


A tak w ogole chyba zle napisales to zapytanie:
  1. SELECT id, question, answer, category_id
  2. FROM `odfaq_question` LEFT JOIN `odfaq_category.name` ON (odfaq_question.category_id = odfaq_category.id)


Przy left join ma byc podana nazwa tabeli a nie pola. Chyba chodzilo ci o:
  1. SELECT odfaq_category.id, question, answer, category_id
  2. FROM `odfaq_question` LEFT JOIN `odfaq_category` ON (odfaq_question.category_id = odfaq_category.id)
Go to the top of the page
+Quote Post
hispano
post
Post #7





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 27.07.2004

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


Tak, zrobiłem ten błąd próbując na oślep coś znaleźć i potem wkleiłem to zapytanie.

Wielkie dzięki, działa idealnie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 21:27