Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]pusta tablica po while()
Forum PHP.pl > Forum > Przedszkole
spectron
Witam.

Mam dziwny problem z tablica. W petli while pobieram rekordy z mysql, wrzucam kazdy rekod w formie tablicy do jednej tablicy. Problem jest taki ze jeśli w petli while wyswietlam zawartosc tablicy to zawiera ona dane z bazy, natomiast jak wyswietlam zawartosc poza nawiasem while to nie ma nic?

Kodu nie wrzucam bo jest najprostrzy z mozliwych. Dodam tylko ze na tym samym serwerze w innym pliku to dziala :|
Darti
może wrzuć jednak kod.
spectron
klasa polaczenia
  1. <?php
  2. class mysql{
  3.    private $sqlLink='null';
  4.    public function __construct(){
  5.        $this->sqlLink = mysql_connect('xx','xx,'xx);
  6.        mysql_select_db("pracainz", $this->sqlLink);
  7.    }
  8.    
  9.    public function execute($sql){
  10.        $result= mysql_query($sql,$this->sqlLink);
  11.        if(!$result)
  12.            return false;
  13.        else
  14.            return $result;
  15.    }
  16.    
  17.    public function getRow($result){
  18.        $row = mysql_fetch_assoc($result);
  19.        return $row;
  20.    }
  21. }
  22. ?>


klasa wykorzystujaca polaczenia

  1. <?php
  2. class jakas{
  3. private $dataSource;
  4. public function __construct($dataSource){
  5.        $this->dataSource=$dataSource;
  6.    }
  7.  
  8. public function toArray($sql){
  9.        
  10.        $result=$this->dataSource->execute($sql);
  11.                $array=array();
  12.        while($row=$this->dataSource->getRow($result)){
  13.            array_push($array, $row);            
  14.        }
  15.        return $array;
  16.    }
  17. }
  18. ?>

uzycie
  1. <?php
  2. $mysql= new mysql();
  3. $moja=new moja($mysql);
  4. print_r($moja->toArray("select * from tabela"));
  5. ?>
Darti
a w ten sposób?

  1. <?php
  2. while($row=$this->dataSource->getRow($result)){
  3.           $array[] = $row;            
  4.       }
  5.       return $array;
  6. ?>
spectron
probowalem i tez nic :/

chodzi o to ze w while(){...} moge wyswietlic zawartosc ale poza while nie
Darti
a w konstruktorze połączenai nie wywala Ci błędu ? masz :
  1. <?php
  2. $this->sqlLink = mysql_connect('xx','xx,'xx);
  3. ?>
i brakuje myslnika ...
Ale to nie powinno być przyczyną takiego zachowania

moze wywal wcześniejszą deklarację $array = array(); i stsując $array[] tablica utworzy się razem z pierwszym elementem
spectron
wrzucajac tu kod zjadlem ' u mnie wszystko jest, poza tym polaczenie jest bo w petli cos jest w tablicy, tzn jest to co chce, ale poza petla tablica jest pusta :|

probowalem bez deklaracji tablicy i tez to samo...

moze problem tkwi w konfiguracji serwera? wczoraj pierwszy raz od 2 lat nie mogelm sie polaczyc z baza poniewaz moj php nie pobieral danych z mysql_connect tylko chcial sie polaczyc na domyslnym uzytkowniku zapisanym w php.ini :| i to tylko w przypadku tej jednej klasy, bo inne dzialaja :|

juz sobie poradzilem, tak naprawde to nie wiem co bylo przyczyna :| w pewnej chwili zaczelo dzialac i tyle biggrin.gif

dzieki za zainteresowanie

pzdr
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.