Ocena wątku:
  • 1 głosów - średnia: 5
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z PHP i bazą danych
#1
Mam taki problem. Zrobiłem taki kod który ma za zadanie pobranie listy tabel z baazy danych. Niestety gdy próbuje go włączyć - albo pojawia się całe białe tło - albo pojawia się wszystko oprócz tej listy. Jak to naprawić?

<?php
$connection = mysql_connect("*********", "*********", "********") or die("Polaczenie nie powiodlo sie");
if($connection)
{
$msg = "Połączyłem sie z baza danych !!!";
$db_list = "<ul>";
$i = 0;
while($i < mysql_num_rows($dbs))
{
$db_names[$i] = mysql_tablename($dbs, $i);
$db_list .= "<li>$db_names[$i]";
$i++;
}
$db_list .= "</ul>";
}
?>

<HTML>
<HEAD>
<TITLE> Tabele</TITLE>
</HEAD>
<BODY>
<?php echo "$msg"; ?>
<p><strong>Bazy danych i tabele na stronie</strong>:</p>
<?php echo "$db_list"; ?>
</BODY>
</HTML>
Odpowiedz
#2
Zrób print_r po kolei wszystkich zmiennych, w końcu natrafisz na tą która jest pusta - po sznurku dojdziesz do celu.
[Obrazek: 2guxq1i.gif]
Odpowiedz
#3
A co to jest za zmienna $dbs?
Odpowiedz
#4
Dhofca - a poprawka - teraz ten kod wygląda tak ale efekty są takie same oprócz tego że strona ładuje się dłużej o ok. 5 sekund. Zmienna $dbs odpowiada chyba za połączenie.

<?php
$dbs = @mysql_connect("mysql.cba.pl", "*****", "*****") or die("Polaczenie nie powiodlo sie");
if($dbs)
{
$msg = "Połączyłem sie z baza danych !!!";
$db_list = "<ul>";
$i = 0;
while($i < mysql_num_rows($dbs))
{
$db_names[$i] = mysql_tablename($dbs, $i);
$db_list .= "<li>$db_names[$i]";
echo "$db_names[$i]<p>";
$i++;
}
$db_list .= "</ul>";
}
?>

<HTML>
<HEAD>
<TITLE> Tabele</TITLE>
</HEAD>
<BODY>
<?php echo "$msg"; ?>
<p><strong>Bazy danych i tabele na stronie</strong>:</p>
<?php echo "$db_names"; ?>
</BODY>
</HTML>
Wiecie co - gdy wpisałem zmienna $i - okazało się że ta pętla chyba wogóle się nie wykonuje. A jeżeli się nie wykonuje to znaczy że mysql_num_rows($dbs) = 0. Czyż nie jest tak?

Strone mam na serwerze cba.pl - baze danych mysql.cba.pl
Odpowiedz
#5
Zmienna chyba odpowiada za połączenie - to ty nie wiesz co masz w kodzie? Sprawdz lepiej czy prawidłowo pobierasz dane z bazy, bo mi tu brakuje odwołania do bazy typu "SELECT * FROM tabela", albo nie wkleiłeś całego kodu albo po prostu łączysz się z bazą a nie pobierasz danych.
[Obrazek: 2guxq1i.gif]
Odpowiedz
#6
No dobra, to jest trochę za tródne więc wziąłem kolejny kod który nie działa. Ma on za zadanie połączyć się z bazą danych i stworzyć tabele "zawodnicy.

<?php
$dbs = @mysql_pconnect("mysql.cba.pl:3306", "*********", "*******") or die("Polaczenie nie powiodlo sie");
if($connection)
{
$msg = "Połączyłem sie z baza danych !!!";
}
mysql_create_db('zawodnicy');
mysql_select_db('zawodnicy');
?>

<HTML>
<HEAD>
<TITLE> Tabele</TITLE>
</HEAD>
<BODY>
<?php echo "$msg"; ?>
<p><strong>Bazy danych i tabele na stronie</strong>:</p>
<?php echo "$dbs"; ?>
</BODY>
</HTML>

Ale zamiast tego - pojawia mi się tylko biały ekran - nawet bez tytułu strony z czego wnioskuje że nie dochodzi do zrobienia rzeczy między słowami HTML.
Odpowiedz
#7
Proponuję poczytać jakieś podstawowe kursy PHP+MySQL, bo to co wklejasz jest wybrakowane i bezwartościowe.
Odpowiedz
#8
Przepisałem (tym razem poprawnie) kod. Rzeczywiście w tamtych dużo brakowało. Ale przy tym też jest błąd bo nie można uzyskać danych z bazy danych.

<?php
$connection = mysql_connect("mysql.cba.pl", "***********", "**********") or die("Polaczenie nie powiodlo sie");
$dbs = mysql_list_dbs($connection) or die("Próba uzyskania listy bazy danych nie powiodła się !");

$db_list = "<ul>";
$i = 0;
while($i < mysql_num_rows($dbs))
{
$db_names[$i] = mysql_tablename($dbs, $i);
$db_list .= "<li>$db_names[$i]";
$i++;
}

$db_list .= "</ul>";
?>

<HTML>
<HEAD>
<TITLE> Tabele</TITLE>
</HEAD>
<BODY>

<p><strong>Bazy danych i tabele na stronie</strong>:</p>
<?php echo "$db_list"; ?>
</BODY>
</HTML>
Odpowiedz
#9
No, ale gdzie masz zapytanie do BD? ;/

Podstawy PHP + MySQL

Tak budujesz zapytania: http://home.pl/dokumentacja/kursy/sql/pobieranie
Musisz wskazać co i z której tabeli i ile chcesz pobrać... Np. 2-3 rekordy, albo wszystkie. Ty się łączysz z bazą danych, wybierasz bazę danych, ale nie wskazujesz z której tabeli chcesz pobrać.

Edit:
Tu masz przedstawiony skrypt pobierania danych z BD: http://www.docmirror.net/pl/php/ref.mysql.html
Odpowiedz
#10
Ooo działa! - rzeczywiście trzeba było to zapytanie zrobić. Wielkie dzięki wszystkim!
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  cron nie łączy się z bazą danych michalszyd 3 5,004 18-01-2018, 06:15
Ostatni post: ytprzetwornik
  Pobieranie danych z dwóch baz danych jarekcda 2 5,188 28-11-2016, 11:55
Ostatni post: ania9
  podział danych za pomocą substr ppsqm 1 4,148 18-06-2014, 15:18
Ostatni post: Kartofelek
  Przywrócenie bazy danych/struktury z plików OPT i FRM smiesznylolek 0 3,261 19-11-2013, 16:28
Ostatni post: smiesznylolek
  wyciągnięcie danych kendry 7 6,890 17-06-2013, 13:26
Ostatni post: kendry

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl