Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP / SQL] Problem z funkcja include()
Forum PHP.pl > Forum > PHP
Posio
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
hatesz
Kod
while($rekord = mysql_fetch_assoc($zapytanie))
{
   $image = $rekord['image'];
   $sciezka = $rekord['sciezka'];
}
Posio
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ć.
hatesz
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.
Posio
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.
hatesz
  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.  
Posio
ok, wyrzuca brak rekordów, ale ten rekord jest haha.gif nawet na niego patrze. Co z tym zrobić ?
hatesz
  1. $zapytanie = mysql_query('select * from `panels` WHERE `name` = "'. $_GET['name'] . '"');


?
Posio
Jeszcze jeden problem 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 ?
muk4
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. ?>
Posio
chodziło mi raczej o to, aby na stronie ukazał się panel, który pokazuje sie pod adresem xxx.pl/panel.php?name=online
hatesz
  1. $_GET['name'] = 'panel';
  2. include 'panel.php';


Ale nie wiem czy zadziała.
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.