Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] [MySQL] jak stworzyc tablice z wybranych kolumn
PawelW
post 3.04.2007, 19:53:26
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 27.02.2007
Skąd: Kraków

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


Witam.
Zaczynam dopiero z PHP i staram się sam rozwiazywać problemy ale z tym nie mogę sobie poradzić.

Jest sobie baza a w niej tabela grupy która ma kolumny [ID, gr_sciezka, gr_nazwa]

Teraz funkcja łacząca z bazą wygląda tak
  1. <?php
  2. function connect_db_read()
  3. {
  4.  $db = new mysqli ('localhost', 'baza_read', 'haslo', 'projekt1'); // host, user, passwd, baza
  5.  if (mysqli_connect_errno())
  6.  {
  7. echo ' Błąd poaczenia z bazą';
  8.  }
  9.  return $db;
  10. }
  11. ?>


I funkcja która ma zczytywać bazę do tablicy
  1. <?php
  2. function create_edit_row_form()
  3. {
  4.  require_once 'smarty/Smarty.class.php';
  5.  connect_db_read();
  6.  
  7.  $zapytanie='SELECT * FROM `grupy`';
  8.  
  9.  $lacz = connect_db_read(); // łączenie z baz danych tylko do odczytu
  10.  $wynik_zapytania = $lacz->query($zapytanie); // Wynik zapytania zadanego bazie
  11.  
  12.  while ($opcje = $wynik_zapytania->fetch_array(MYSQLI_NUM))
  13.  {
  14.  $lista = array( "$opcje[0]" => "$opcje[2]");
  15.  
  16.  }
  17.  
  18.  print_r ($lista); //wstawione kontrolnie żeby zobaczyć wynik
  19. // Tu kod przekazujący wartosci do SMARTY
  20. }
  21. ?>


Teraz wynikiem print_r ($lista) jest ostani wiersz z tabeli z bazy np Array ( [6] => Ksiazki )
Jak zrobic żeby te wpisy się dodawały. Próbowałem z array_push ale nie udało mi się.

Jako wynik oczekuje tablicy assocjacujnej gdzie indeksem jest ID z tabeli a wartoscią gr_nazwa, tablica ta jest później przetwarzana przez SMARTY poleceniem {html_options name=grupy options=$lista}
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 05:19