Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zmiana formatu arraya
kam821
post 24.10.2009, 23:31:06
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 1
Dołączył: 24.10.2009

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


Witam serdecznie.
Zwracam się do was z małym pytankiem.
Potrzebuję zamienić jeden array będący wynikiem zapytania sql, dajmy na przykład taki przypadek:
użyty tak:
Cytat
$row = $db->sql_fetchrow($result);
for($i = 0; $i < count($row); $i++)
{
$user_id = $row['user_id']
$username = $row['username'];
}

Potrzeba mi zamienić taki array, aby można go było użyć tak - cachuje wszystkich userów, a potem gdy chce pobrać username jednego to wpisuje:
Cytat
$user_id = intval($_GET['userid']);
$username = $users[$user_id]['username']; // zmienna array $users to cała zacachowana baza.

Z góry dziękuję
Pozdrawiam.

Ten post edytował kam821 24.10.2009, 23:31:54
Go to the top of the page
+Quote Post
bim2
post 24.10.2009, 23:41:32
Post #2





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Musisz stworzyć tabliće której klucz przyjmie wartość $row['user_id']; Mały przykład:
  1. for()
  2. {
  3. $tablica[$zmienna['id']][] = $row;
  4. }

Chyba sam coś skleisz z tego smile.gif Wyglądasz na mądrą osobę. ;P


--------------------
Go to the top of the page
+Quote Post
kam821
post 25.10.2009, 08:11:36
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 1
Dołączył: 24.10.2009

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


Dziękować ślicznie smile.gif
Mam jeszcze jeden kłopot, nie chcę brudzić świeżej kartki, więc napisze tutaj:
Potrzebuję pobrać z bazy danych 2 rzeczy: Poprzedni temat i Następny temat jednym zapytaniem.
Warunkami byłyby oczywiście taki samo ID forum, oraz ID ostatniego posta większe i mniejsze od, który znajduje się w aktualnie oglądanym temacie, całość zapytania zakończymy limitem 2.
Próbuję coś sam wymyslić, zatrzymałem się na tym, dalej pustka biggrin.gif
  1. SELECT t.topic_title, t.topic_id, t.forum_id
  2. FROM phpbb_topics t
  3. WHERE t.forum_id = $forum_id
  4. AND t.topic_moved_id = 0
  5. AND ( t.topic_last_post_id < $topic_last_post_id OR t.topic_last_post_id > $topic_last_post_id )
  6. ORDER BY t.topic_last_post_id DESC, ORDER BY t.topic_last_post_id ASC // tutaj napewno jest błąd, no ale wpisałem od rzeczy tongue.gif
  7. LIMIT 2


Ten post edytował kam821 25.10.2009, 08:48:50
Go to the top of the page
+Quote Post
krowal
post 25.10.2009, 10:58:41
Post #4





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


  1. SELECT * FROM users
  2. WHERE
  3. id = (SELECT id FROM users AS u2 WHERE u2.id > 331 ORDER BY u2.id LIMIT 1) OR
  4. id = (SELECT id FROM users AS u2 WHERE u2.id < 331 ORDER BY u2.id DESC LIMIT 1)

To jest na tabeli userów bo akurat na niej testowałem winksmiley.jpg
Dostosuj to do swojego zapytania, dodaj wymagane warunki do podzapytań i powinno być dobrze.


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
kam821
post 25.10.2009, 11:35:05
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 1
Dołączył: 24.10.2009

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


  1. $sql = "SELECT t.topic_title, t.topic_id, t.forum_id
  2. FROM " . TOPICS_TABLE . " t
  3. WHERE t.forum_id = $forum_id
  4. AND t.topic_moved_id = 0
  5. AND next_topic = (t.topic_last_post_id < $topic_last_post_id
  6. ORDER BY t.topic_last_post_id DESC
  7. LIMIT 1)
  8. OR t.forum_id = $forum_id
  9. AND t.topic_moved_id = 0
  10. AND next_topic = (t.topic_last_post_id > $topic_last_post_id
  11. ORDER BY t.topic_last_post_id ASC
  12. LIMIT 1)";


Przykładowy błąd:

Cytat
SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY t.topic_last_post_id DESC LIMIT 1) OR t.forum_id = 154 AND t.t' at line 6

SELECT t.topic_title, t.topic_id, t.forum_id FROM phpbb_topics t WHERE t.forum_id = 154 AND t.topic_moved_id = 0 AND next_topic = (t.topic_last_post_id < 13563 ORDER BY t.topic_last_post_id DESC LIMIT 1) OR t.forum_id = 154 AND t.topic_moved_id = 0 AND next_topic = (t.topic_last_post_id > 13563 ORDER BY t.topic_last_post_id ASC LIMIT 1)


Ten post edytował kam821 25.10.2009, 11:35:45
Go to the top of the page
+Quote Post
krowal
post 25.10.2009, 12:23:55
Post #6





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


Ech.. wiesz co to są podzapytania ? smile.gif


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
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: 13.06.2025 - 10:38