Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Biała strona podczas wyboru
Forum PHP.pl > Forum > Przedszkole
daw22
Witam!
Jak wiadomo jestem początkującym, staram się dużo czytać, lecz nie mogę rozgryść do końca tego. Aby zrobić listę, a następnie wybrać jakiś rekord i go wyświetlić. Tak jak lista userów, wyświetla się cała jak naciśniemy na nick pokazują się dokładniejsze dane na nowej stronie.
Opierałem się na skryptach z innego forum
list.php
  1. <?
  2. include('includes/list2');
  3. if(isset($_GET['action']) && $_GET['action']=='all' OR $_GET['action'] == '')
  4. {
  5. all();
  6. }
  7.  
  8. if(isset($_GET['action']) && $_GET['action']=='pokaz' && is_numeric($_GET['nr']))
  9. {
  10. pokaz();
  11. }
  12. ?>

a następnie mam kolejny plik z zawartymi funkacjami
list2.php
  1. <?
  2. function all()
  3. {
  4. $connect_mysql = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die (mysql_error());
  5. mysql_select_db($mysql_db) or die(mysql_error());
  6. $query="SELECT * FROM servers";
  7. $result= @mysql_query($query);
  8. echo '<table align="center" border="0">';
  9. while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
  10. {
  11. echo "<tr>
  12. <td width=\"100\" align=\"center\"><a href=\"index.php?id=list&action=pokaz&nr={$row['server_id']}\">{$row['nazwa']}</a></td>
  13. </tr>";
  14.  
  15. }
  16. echo '</table>';
  17. }
  18. function pokaz()
  19. {
  20. $connect_mysql = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die (mysql_error());
  21. mysql_select_db($mysql_db) or die(mysql_error());
  22. $query="SELECT * FROM servers WHERE server_id='{$_GET['nr']}'";
  23. $result= @mysql_query($query);
  24. $row = mysql_fetch_array($result, MYSQL_ASSOC);
  25. echo '
  26. Nazwa: '.$row['nazwa'].'<br />
  27. IP: '.$row['ip'].'<br />
  28. ';
  29. }
  30. ?>

Wie może ktoś dlaczego jak wpiszę: index.php?id=list&action=pokaz&nr=1
nie wyświetla się ten server ; (
Tylko biała strona, dodam, że wszystko w bazie danych się znajduje..
Może ktoś doradzić/poprawić lub napisać prościej abym otrzymał to co chciałbym uzyskać z tego skryptu?
Z góry dziękuję!
Pozdrawiam
c3zi
Sprawdź najpierw, w który warunek "wchodzi".
daw22
hmm... nie rozumiem gdzie mam błąd..

odświeżam,
nadal nie mogę sobie z tym poradzić ;/
c3zi
To moze zacznij od usuniecia @ sprzed funkcji mysql. Ten znaczek powoduje, iz nie wypisuje tobie bledow.
daw22
nawet jak usunę ten znaczek pojawia się tylko pusta strona
NetJaro
A źródło strony?

A zobaczy, czy zadziałają tak zbudowane te funkcje:

  1. <?
  2. function all()
  3. {
  4. $connect_mysql = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die (mysql_error());
  5. mysql_select_db($mysql_db) or die(mysql_error());
  6. $query="SELECT * FROM servers";
  7. $result= mysql_query($query);
  8. $return = '<table align="center" border="0">';
  9. while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
  10. {
  11. $return .= echo "<tr>
  12. <td width=\"100\" align=\"center\"><a href=\"index.php?id=list&action=pokaz&nr={$row['server_id']}\">{$row['nazwa']}</a></td>
  13. </tr>";
  14.  
  15. }
  16. $return .= '</table>';
  17. return $return;
  18. }
  19. function pokaz()
  20. {
  21. $connect_mysql = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die (mysql_error());
  22. mysql_select_db($mysql_db) or die(mysql_error());
  23. $query="SELECT * FROM servers WHERE server_id='{$_GET['nr']}'";
  24. $result= mysql_query($query);
  25. $row = mysql_fetch_array($result, MYSQL_ASSOC);
  26. echo '
  27. Nazwa: '.$row['nazwa'].'<br />
  28. IP: '.$row['ip'].'<br />
  29. ';
  30. }
  31. ?>

A jeżeli pojawi się jakiś błąd - wklej go.
Jeżeli źrodło strony jest puste - usuń warunki if i wklej tylko te funkcje do kodu, bez warunków. Wtedy musi coś się pojawić..
daw22
źródło strony jest puste..
a jeżeli wywalę if'y też się nic nie wyświetla :/ i oczywiście źródło strony jest puste..
Istalacar
A wywołujesz cokolwiek?
Sprawdź może czy na pewno wysyłasz to na serwer, być może jest jakiś błąd przy wysyłaniu(?).
Spróbuj może w pierwszym kodzie zamiast include użyć funkcji require.
Poza tym sprawdź czy nie masz w jakiś sposób wyłączonego wyświetlania błędów.
daw22
nadal nic ;/
cały czas pusta strona i w źródle strony też nic nie ma..
Istalacar
Jest to dla mnie zbyt dziwne, użyj najprostszego echo w skrypcie, gdziekolwiek w list.php, a potem także na wszelki wypadek w list2.php
atomek4
A ta linia nie powinna przypadkiem tak wyglądać:

  1. <?php
  2. include('includes/list2.php');
  3. ?>


Spróbuj może też wywołać jedną z tych funkcji z pliku list2.php w jakimś nowym czystym pliku, oczywiście dodając w pasku adresu prawidłową zmienną ID.
NetJaro
Gdzie masz serwer? Localhost czy gdzieś wykupiłeś?

@atomek4, słuszna uwaga ale czemu nie było o tym błędu..?
atomek4
@NetJaro: wiesz co, sam się nad tym zastanawiam, może kolega ma coś zmienione w raportowaniu błędów. Bo include() generuje tylko warning.
daw22
server livenet.pl
a co do tego include, że tam .php brakowało to wcześniej zmieniłem, ale nie chciałem edytować bo posypał by się post..
all standardowe ustawienia.. i wiem, że błędy się pokazują bo testowałem na innych skryptach, nie wiem dlaczego to się tak zachowuje..
atomek4
Spróbuj jeszcze to co tam ci wyżej pisałem. Utwórz w tym swoim katalogu nowy plik.php i wrzuć do niego coś takiego:

  1. <?php
  2. function pokaz()
  3. {
  4. $connect_mysql = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die (mysql_error());
  5. mysql_select_db($mysql_db) or die(mysql_error());
  6. $query="SELECT * FROM servers WHERE server_id=1";
  7. $result= @mysql_query($query);
  8. $row = mysql_fetch_array($result, MYSQL_ASSOC);
  9. echo '
  10. Nazwa: '.$row['nazwa'].'<br />
  11. IP: '.$row['ip'].'<br />
  12. ';
  13. }
  14.  
  15. pokaz();
  16. ?>


O ile id=1 istnieje w bazie, jeśli nie wstaw takie jakie jest na 100%. Spróbuj, może przynajmniej uda nam się coś wykluczyć.

Po drugie masz plik list1.php i list2.php, potem przy sposobie wywołania piszesz index.php?itd... To chyba tylko niedopatrzenie?
daw22
doszedłem..
nie wiem czemu ale jak dalismy w funkcji, żeby się połączył z bazą danych to tak naprawdę się nie łączył, a jak połączenie wywaliłem za bazę danych to nagle się wyświetliło..
Ale dzieki, że pomagaliście ; ))
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.