Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP / SQL] Problem z funkcja include()
Posio
post
Post #1





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

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


Mój kod:

  1. <?php
  2. define('_TYLKO_INCLUDE', TRUE);
  3. require("config.php"); require("connect.php");
  4.  
  5. if(isset($_GET['id'])){
  6.  
  7. $zapytanie = mysql_query('select * from `panels` WHERE `id`='. $_GET['id'] . '');
  8. while($rekord = mysql_fetch_assoc($zapytanie))
  9.  
  10. $image = $rekord['image'];
  11. $sciezka = $rekord['sciezka'];
  12.  
  13.  
  14. echo '<div id="panel">
  15. <table width="100%" height="50px" background="'.$image.'">
  16. <tr>
  17. <td></td>
  18. </tr>
  19. </table>
  20. <table width="100%" height="auto">
  21. <tr>
  22. <td>';
  23. include ($sciezka);
  24. echo '</td>
  25. </tr>
  26. </table>
  27. </div>';
  28. }
  29. ?>


I rozchodzi mi o to, że nie includuje mi ($sciezka), chyba ze usune $image z tła tabeli. Błąd wygląda tak:
Kod
Warning: include() [function.include]: Failed opening '' for inclusion (include_path='.;C:\php5\pear') in D:\Program Files (x86)\WebServ\httpd-users\New Project\panel.php on line 31
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
hatesz
post
Post #2





Grupa: Zarejestrowani
Postów: 23
Pomógł: 7
Dołączył: 6.05.2010
Skąd: Kraków

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


Kod
while($rekord = mysql_fetch_assoc($zapytanie))
{
   $image = $rekord['image'];
   $sciezka = $rekord['sciezka'];
}
Go to the top of the page
+Quote Post
Posio
post
Post #3





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

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


Dzięki master ^^ a przy okazji,
gdy mam wszystko pustawiane na liczbach (id to liczba) wszystko działa.

  1. if(isset($_GET['id'])){
  2.  
  3. $zapytanie = mysql_query('select * from `panels` WHERE `id`='. $_GET['id'] . '');
  4. while($rekord = mysql_fetch_assoc($zapytanie))


a gdy chce sobie popracować na nazwach to już jest znów problem:

  1. if(isset($_GET['name'])){
  2.  
  3. $zapytanie = mysql_query('select * from `panels` WHERE `name`='. $_GET['name'] . '');
  4. while($rekord = mysql_fetch_assoc($zapytanie))


wyskakuje błąd:


Kod
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in D:\Program Files (x86)\WebServ\httpd-users\New Project\panel.php on line 16


Szukałem już w necie ale nie za bardzo mogłem coś znaleźć (jakąś logiczną odpowiedź)

Struktura bazy:
  1. `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  2. `name` TEXT NOT NULL ,
  3. `image` TEXT NOT NULL ,
  4. `sciezka` TEXT NOT NULL


Myślałem, że zamiast id powienienem mieć name czy coś w tym stylu. Nie wiem jak to do końca wytłumaczyć.

Ten post edytował Posio 8.07.2011, 14:58:27
Go to the top of the page
+Quote Post
hatesz
post
Post #4





Grupa: Zarejestrowani
Postów: 23
Pomógł: 7
Dołączył: 6.05.2010
Skąd: Kraków

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


Przed pętlą while daj:

  1. echo mysql_num_rows($zapytanie);
  2. exit(1);


Jeśli zwróci Ci 0 to znaczy, że nie znaleziono takich rekordów, a pusty zasób nie może być przesłany do mysql_fetch_assoc z tego co pamiętam.
Go to the top of the page
+Quote Post
Posio
post
Post #5





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

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


dałem to przed pętlą :

  1. $zapytanie = mysql_query('select * from `panels` WHERE `name`='. $_GET['name'] . '');
  2. echo mysql_num_rows($zapytanie);
  3. exit(1);
  4. while($rekord = mysql_fetch_assoc($zapytanie))
  5. {
  6. $image = $rekord['image'];
  7. $sciezka = $rekord['sciezka'];
  8. };


i w tym momencie mam pustą stronę, a name w bazie na pewno nie jest puste.
Go to the top of the page
+Quote Post
hatesz
post
Post #6





Grupa: Zarejestrowani
Postów: 23
Pomógł: 7
Dołączył: 6.05.2010
Skąd: Kraków

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


  1. $zapytanie = mysql_query('select * from `panels` WHERE `name`='. $_GET['name'] . '');
  2.  
  3. if (mysql_num_rows($zapytanie))
  4. {
  5. while($rekord = mysql_fetch_assoc($zapytanie))
  6. {
  7. $image = $rekord['image'];
  8. $sciezka = $rekord['sciezka'];
  9. };
  10. }
  11. else echo 'Brak rekordów w bazie danych!';
  12.  
Go to the top of the page
+Quote Post
Posio
post
Post #7





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

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


ok, wyrzuca brak rekordów, ale ten rekord jest (IMG:style_emoticons/default/haha.gif) nawet na niego patrze. Co z tym zrobić ?
(IMG:http://jpghost.pl/pliki/1107/th_Inne-bd_1310129691.jpg)
Go to the top of the page
+Quote Post
hatesz
post
Post #8





Grupa: Zarejestrowani
Postów: 23
Pomógł: 7
Dołączył: 6.05.2010
Skąd: Kraków

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


  1. $zapytanie = mysql_query('select * from `panels` WHERE `name` = "'. $_GET['name'] . '"');


?
Go to the top of the page
+Quote Post
Posio
post
Post #9





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

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


Jeszcze jeden problem (IMG:style_emoticons/default/haha.gif)

Kiedy includuje panel na inna strone:

  1. <?php include ('panel.php?name=online'); ?>


strona wywala mi :

Kod
Warning: include(panel.php?name=online) [function.include]: failed to open stream: No error in D:\Program Files (x86)\WebServ\httpd-users\New Project\test.php on line 33

Warning: include() [function.include]: Failed opening 'panel.php?name=online' for inclusion (include_path='.;C:\php5\pear') in D:\Program Files (x86)\WebServ\httpd-users\New Project\test.php on line 33


Wiem, że nie znajduje pliku panel.php?name=online. Teraz tylko nie wiem jak zrobić aby to działało ?

Ten post edytował Posio 8.07.2011, 16:58:01
Go to the top of the page
+Quote Post
muk4
post
Post #10





Grupa: Zarejestrowani
Postów: 309
Pomógł: 56
Dołączył: 3.11.2006
Skąd: Gliwice

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


Nie możesz przekazywać tak zmiennych, ale gdy robisz include to wszystkie zmienne robią się lokalne więc to zadziała:
test1.php
  1. <?php
  2. $zmienna = '1234';
  3. include 'test2.php'
  4. ?>

test2.php
  1. <?php
  2. echo $zmienna;
  3. ?>
Go to the top of the page
+Quote Post
Posio
post
Post #11





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

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


chodziło mi raczej o to, aby na stronie ukazał się panel, który pokazuje sie pod adresem xxx.pl/panel.php?name=online
Go to the top of the page
+Quote Post
hatesz
post
Post #12





Grupa: Zarejestrowani
Postów: 23
Pomógł: 7
Dołączył: 6.05.2010
Skąd: Kraków

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


  1. $_GET['name'] = 'panel';
  2. include 'panel.php';


Ale nie wiem czy zadziała.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 08:37