Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]problem z funkcjami
aque
post 24.07.2006, 23:26:44
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 24.07.2006

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


Witam. Mam problem ze skryptem który napisałem we funkcji. A mianowicie napisalem skrypt menu kożystający z bazy mysql, wszystko to jest napisane we funkcji menu();. I teraz zaczyna się problem... gdy chce umiesic to menu w pliku index.php (teraz znajduje się w functions/menu.php) to wywalami błędy:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\usr\apache\httpd\html\portal\functions\menu.php on line 6

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\usr\apache\httpd\html\portal\functions\menu.php on line 11

zamieszcze tu kod pliku menu.php i index.php

menu.php:
  1. <?
  2. require_once("global.php");
  3. function menu() {
  4.  $query = "SELECT * FROM menu";
  5.  $result = mysql_query($query);
  6.  while( $row = mysql_fetch_array($result, MYSQL_ASSOC))
  7.  {
  8. echo"<a href="" . $row['adres'] . "">" . $row['nazwa'] ."</a><br />";
  9.  
  10.  }
  11.  mysql_free_result($result);
  12.  return $row;
  13. }
  14. baza_mysql_exit();
  15. ?>


index.php:
  1. <?
  2.  
  3. echo("<div style="width: 700px; height: 150px; border: 1px solid black;">logo</div>");
  4. echo("<br />");
  5. echo("<div style="float: left; width: 150px; border: 1px solid black;">");
  6. require_once("functions/menu.php");
  7. menu();
  8. echo("</div>");
  9. echo("<div style="float: left; width: 400px; border: 1px solid black;">a");
  10.  
  11.  
  12.  
  13. echo("</div>");
  14. echo("<div style="float: left; width: 150px; border: 1px solid black;">menu2</div>");
  15. ?>


PS1. W pliku global.php jest łączenie sie z bazą sql
PS2. Gdy w pliku menu php umieszcze to menu(); i bezbosrednio go otworze to menu dziala

Ten post edytował aque 25.07.2006, 11:20:47
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
Aure
post 25.07.2006, 00:02:53
Post #2





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 3.05.2004
Skąd: Warszawa

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


Po prostu nie ma połączenia z bazą i stąd te błędy.
Pokaż global.php to może będziemy w stanie coś poradzić (ja bym obstawiał problem z zasięgiem zmiennych).


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


Go to the top of the page
+Quote Post
aque
post 25.07.2006, 06:46:25
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 24.07.2006

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


global.php:

  1. <?
  2. require_once("config.php"); // pobieranie zmiennych z config.php
  3.  
  4. // laczenia sie z baza mysql
  5.  $sql = mysql_connect($host, $user, $haslo);
  6.  mysql_select_db($baza);
  7.  
  8. // koniec
  9.  
  10. ?>

Dane do bazy sa w config.php
Aha i probowalem robic na poczatku funkcji global $sql; ale to tez nic nie dawalo
Go to the top of the page
+Quote Post
-Gość-
post 25.07.2006, 09:53:30
Post #4





Goście







Napisz w pliku menu.php adres zasobu do polaczenia z baza danych w zapytanie, czyli
  1. <?php
  2. $result = mysql_query($query,$sql)
  3. ?>

wtedy zobaczysz czy w ogole funkcja menu 'widzi' polaczenie z baza, bo z tego co piszesz to wlasnie tego polaczenia nia ma.
Go to the top of the page
+Quote Post
TomASS
post 25.07.2006, 10:08:44
Post #5





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


A ja z upartością kangura będę powtarzał:
pkt 2!
jeśli to przecztasz, to wyświetlony komunikat podpowie Ci co masz nie tak.

Cytat
Napisz w pliku menu.php adres zasobu do polaczenia .....

Nie jest to konieczne.


Aure:
Cytat
ja bym obstawiał problem z zasięgiem zmiennych

Z manuala:
Cytat
Jeśli instrukcja wczytania znajduje się wewnątrz deklaracji funkcji, to cały kod zawarty w pliku wczytywanym będzie zachowywał się, jakby był zdefiniowany wewnątrz tej funkcji. Znaczy to, że odziedziczy zasięg zmiennych po tej funkcji.

Także to też nic nie da.

Istnieje możliwośc, że pliki masz w złych katalogach, ale podstawą jest to co napisałem na samym początku.


--------------------
Go to the top of the page
+Quote Post
mike
post 25.07.2006, 10:10:36
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


~aque proszę poprawić temat wątku, nie jest zgodny z zasadami panującymi na forum Przedszkole.
Go to the top of the page
+Quote Post
Aure
post 25.07.2006, 10:23:54
Post #7





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 3.05.2004
Skąd: Warszawa

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


Cytat
Aure:
Cytat
ja bym obstawiał problem z zasięgiem zmiennych

Z manuala:
Cytat
Jeśli instrukcja wczytania znajduje się wewnątrz deklaracji funkcji, to cały kod zawarty w pliku wczytywanym będzie zachowywał się, jakby był zdefiniowany wewnątrz tej funkcji. Znaczy to, że odziedziczy zasięg zmiennych po tej funkcji.

Także to też nic nie da.

Zauważ tylko, że w przykładowym kodzie require() nie występuje w funkcji tylko przed nią winksmiley.jpg
Jednakże po chwili zastanowienia też skłaniałbym się ku błędowi w zapytaniu, dopiero teraz skojarzyłem że gdyby nie było połączenia to plułoby się mysql_query() ze swoim "invalid resource" winksmiley.jpg
Tak więc die(), die() i jeszcze raz die() biggrin.gif

Ten post edytował Aure 25.07.2006, 10:24:16


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


Go to the top of the page
+Quote Post
aque
post 25.07.2006, 11:35:06
Post #8





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 24.07.2006

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


Cytat(mike_mech @ 25.07.2006, 11:10 ) *
~aque proszę poprawić temat wątku, nie jest zgodny z zasadami panującymi na forum Przedszkole.

Poprawione


Wrzucilem do tej funkcji echo mysql_error(); i mi wyswietla ze nie wybrano zadnej bazy, nie wiem czamu. Przeciez bezposrednio jak uruchomie plik menu.php to dziala a jak chce tą funkcje uruchomic w innym pliku to nie i wyswietla ten komunikat o bazie.
Go to the top of the page
+Quote Post
siemakuba
post 25.07.2006, 11:39:59
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


wydaje mi się, że nieprawidłowo includujesz pliki.

  1. <?php
  2. // zamiast
  3. require_once("global.php");
  4.  
  5. // sprawdz tak
  6. require_once("../global.php");
  7. ?>

gdzieś ti się kręci wątek na temat include i ścieżek, więc możesz tam zajrzeć w poszukiwaniu wyjaśnień. Ja osobiście polecam po raz n-ty ścieżki absolutne. Znakomicie rozwiązują problemy takiego właśnie typu.

pozdr.
Go to the top of the page
+Quote Post
aque
post 25.07.2006, 11:55:41
Post #10





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 24.07.2006

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


Cytat(siemakuba @ 25.07.2006, 12:39 ) *
wydaje mi się, że nieprawidłowo includujesz pliki.

  1. <?php
  2. // zamiast
  3. require_once("global.php");
  4.  
  5. // sprawdz tak
  6. require_once("../global.php");
  7. ?>

gdzieś ti się kręci wątek na temat include i ścieżek, więc możesz tam zajrzeć w poszukiwaniu wyjaśnień. Ja osobiście polecam po raz n-ty ścieżki absolutne. Znakomicie rozwiązują problemy takiego właśnie typu.

pozdr.

nic nie dala ta zmiana wyswietlilo tylko blad ze niemozna znalesc pliku global.php

edit:
dodalem do pliku menu.php na początku to
  1. <?php
  2. require_once("config.php"); // pobieranie zmiennych z config.php
  3.  
  4. // laczenia sie z baza mysql
  5.  $sql = mysql_connect($host, $user, $haslo);
  6.  mysql_select_db($baza);
  7. // koniec
  8.  
  9. //zamiast tego
  10.  
  11. require_once("global.php");
  12. ?>

i zaczelo all ok dzialac

Ten post edytował aque 25.07.2006, 12:58:51
Go to the top of the page
+Quote Post
Aure
post 25.07.2006, 12:56:53
Post #11





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 3.05.2004
Skąd: Warszawa

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


Skoro dostałes komunikat, że nie wybrano bazy to spróbuj wykorzystać die() po raz kolejny:

  1. <?php
  2. mysql_select_db($baza) or die(mysl_error());
  3. ?>


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


Go to the top of the page
+Quote Post
aque
post 25.07.2006, 13:33:50
Post #12





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 24.07.2006

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


thx aure dziala mozna zamknąć temat. dzieki wszystkim za zainteresowanie moim problemem
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: 20.07.2025 - 06:05