Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]Warning: Invalid argument supplied for foreach() on line 25
marcin86s
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.11.2007
Skąd: City 17

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


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.

Ten post edytował marcin86s 13.11.2011, 14:33:55
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
marcin86s
post
Post #3





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.11.2007
Skąd: City 17

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


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)
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
marcin86s
post
Post #5





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.11.2007
Skąd: City 17

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


  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
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
marcin86s
post
Post #7





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.11.2007
Skąd: City 17

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


Teraz to już tylko dla własnej ciekawości. tongue.gif
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Aktualny czas: 22.08.2025 - 10:03