Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Warning: Invalid argument supplied for foreach() on line 25
Forum PHP.pl > Forum > Przedszkole
marcin86s
Kod wygląda tak:
  1. $g_link = false;
  2.  
  3. function GetMyConnection()
  4. {
  5. global $g_link;
  6. if( $g_link )
  7. return $g_link;
  8. $g_link = mysql_connect( 'localhost', 'root', '') or die('Could not connect to server.' );
  9. mysql_select_db('baza', $g_link) or die('Could not select database.');
  10. return $g_link;
  11. }
  12.  
  13. function CleanUpDB()
  14. {
  15. global $g_link;
  16. if( $g_link != false )
  17. mysql_close($g_link);
  18. $g_link = false;
  19. }
  20.  
  21. $results = mysql_query("SELECT * FROM tab", GetMyConnection() );
  22.  
  23. var_dump($results);
  24.  
  25. foreach ($results as $result){
  26. echo $result->date2;
  27. }

Tablica tak:
  1. CREATE TABLE IF NOT EXISTS `tab` (
  2. `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `date2` int(100) DEFAULT NULL,
  4. PRIMARY KEY (`id`)
  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=60 ;
  6.  
  7. INSERT INTO `tab` (`id`, `date2`) VALUES
  8. (1, 1263855600),
  9. (2, 1263250800);

Błąd jest taki:
Cytat
Warning: Invalid argument supplied for foreach() on line 25

Co robię źle? Chce po prostu wyświetlić wszystkie wpisy z tabeli.
nospor
Zrobiłeś tak:
var_dump($results);
super, szkoda tylko, że nam nie pokazałeś co to zwraca na ekran.

Temat: Jak poprawnie zada pytanie
zastosuj się do porad tam podanych

Przenosze na przedszkole

ps: błąd wyraźnie ci mówi, ze oczekiwano tablicy. mysql_query() nie zwraca tablicy. Czemu nie zapoznasz się w manualu z funkcjami, których używasz?
marcin86s
Cytat(nospor @ 13.11.2011, 14:08:50 ) *
Zrobiłeś tak:
var_dump($results);
super, szkoda tylko, że nam nie pokazałeś co to zwraca na ekran.

resource(4, mysql result)
nospor
ps z poprzedniego posta
Cytat
ps: błąd wyraźnie ci mówi, ze oczekiwano tablicy. mysql_query() nie zwraca tablicy. Czemu nie zapoznasz się w manualu z funkcjami, których używasz?
marcin86s
  1. while ($row = mysql_fetch_array($results)){
  2. echo $row['id'].$row['date2'].'<br />';
  3. }


Z tym że dalej nie bardzo wiem jak to zrobić z wykorzystaniem foreach
nospor
No i super - pobrałeś dane z bazy, a to chyba było Twoim celem, tak? Po co nadal więc chcesz używać FOREACH? Dane rzeczy należy używać wtedy, kiedy to konieczne. W tym przypadku FOREACH jest totalnie zbędne.
marcin86s
Teraz to już tylko dla własnej ciekawości. tongue.gif
nospor
FOREACH służy do przelatywania po tablicy. Jak będziesz gdzieś kiedyś miał tablicę, którą chcesz "przelecieć" to wówczas użyjesz FOREACH tongue.gif
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.