Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: POBRAĆ NAZWY TABELI Z BAZY I WYŚWIETLIĆ JE W POLU <SELECT
Forum PHP.pl > Forum > Bazy danych > MySQL
Berni
Mam następujący problem: jestem w trakcie pisania magazynu produktów, w magazynie znajduje się opcja DODAJ KATEGORIE ( kateg. produktów np rowery i skarpety smile.gif), nastepnie przechodzimy do opcji DODAJ POZYCJE, w ktorej znajduje sie pole <SELECT> poprzez, ktore wybieram do jakiej kategorii ( tabeli ) chcem dodac rekord....i tu sie zaczyna problem. Jak wstawić nazwy tabel z bazy do pola <SELECT> zeby miec mozliwosc wyboru kategorii przy dodawaniu produktu hmmm??
dob
Jeżeli dobrze zrozumiałem to chodzi ci o to :
[php:1:74d6ac2150]<select size="1" name="tabele">
<?php
mysql_connect('serwer', 'user', 'haslo') or die('Nie można się połączyć');

$result = mysql_list_tables('baza');

while ($row = mysql_fetch_row($result)){
echo "<option value='".$row[0]."'>".$row[0]."</option>";
}

mysql_free_result($result);
?>
</select>[/php:1:74d6ac2150]

p.s. czytaj manuala
Berni
dzieki stary, jestes wielki
Berni
hmmmm ale chciałbym zrozumieć ten kod...pomożesz?
dob
Cytat
dzieki stary, jestes wielki

Spoko smile.gif w sumie fakt mam 193 cm wzrostu smile.gif

Wyjasnienie :
Połączenie z serwerem Mysql - podajesz adres serwera mysql, uzytkownika oraz haslo do konta. W przypadku błędu skrypt zostanie zatrzymany i wyswietli napis Nie można się połączyć
[php:1:b6e252deef]<?php
mysql_connect('serwer', 'user', 'haslo') or die('Nie można się połączyć');
?>[/php:1:b6e252deef]
Pobierasz do zmiennej wynik pobierania listy tabel z bazy
[php:1:b6e252deef]<?php
$result = mysql_list_tables('baza');
?>[/php:1:b6e252deef]
Za pomocą pętli while wyswietlasz kod html wraz z nazwami tabel - tyle razy ile jest tabel w podanej bazie
[php:1:b6e252deef]<?php
while ($row = mysql_fetch_row($result)){
echo "<option value='".$row[0]."'>".$row[0]."</option>";
}
?>[/php:1:b6e252deef]
Zwalnia pamięć zajmowaną przez wynik
[php:1:b6e252deef]<?php
mysql_free_result($result);
?>[/php:1:b6e252deef]

Nie umiem tłumaczyc lepiej poczytaj manuala - tam znajdziesz lepszy niż moj opis kazdej użytej tu funkcji
Berni
no i kolejny problem...mianowicie musze utworzyc wybranej za pomoca tego pola tablicy wartosci z formularza. Rozumiem, ze musze stworzyć plik ktory mi to wykona, zamiast sztywnej nazwy tabeli musze uzyc zmiennej...ale jak tą zmienną zdobyć
Kinool
jesli korzystasz z powyszego przykladu jaki podal dob

[php:1:39b09d03a0]
<select size="1" name="tabele">
<?php
mysql_connect('serwer', 'user', 'haslo') or die('Nie można się połączyć');

$result = mysql_list_tables('baza');

while ($row = mysql_fetch_row($result)){
echo "<option value='".$row[0]."'>".$row[0]."</option>";
}

mysql_free_result($result);
?>
</select>
[/php:1:39b09d03a0]

to nazwa tabeli znajduje sie w zmiennej $tabele pewnie bedziesz korzystal z POST-a do przeslania jej z formularza wiec jest ona w $_POST[tabela]

jak chesz utworzy potem jakies zapytanie do bazy dotyczace tej tabeli to np.

[php:1:39b09d03a0]<?php
$query="SELECT * FROM ".$_POST[tabela]." WHERE costam=1";
?>[/php:1:39b09d03a0]

chyba o to ci chodzilo bo niewiem czy dobrze zrozumialem

PS
DOBRANOC winksmiley.jpg
Berni
dzieki chlopy, w realu raczej nikt by nie wytlumaczyl tego znajac zycie, jeszczeraz dzieki winksmiley.jpg
gugas
Witam!!

Temat troche stary ale mam z nim pewien problem. Otoz robilem skrypt na powyzszym przykladzie, wszystko ladnie pobiera z bazy(nazwy tabel), ale dopisalem jeszcze kawalek kodu ktory ma mi wyswietlac zawartosc danej tabeli. Wyswietla, tylko jest problem z odswiezaniem pola select. Gdy wybiore tabele z listy, np. pozycje 2 lub 3 to po wyswietleniu zawartosci tabeli nazwa tabeli w polu select zmieni sie domyslnie na pierwsza w kolejnosci. Chcialbym natomiast zeby pozostala wlasnie ta ktora wybralem.

Kod:
CODE

<form method="post" action="" >
<tr>
<td>Dostepne kursy:</td>
<td><select size="1" name="kursy" onchange="this.form.submit();" >
<?
$sql_conn = @mysql_connect('---', '---', '----') or die('Nie mozna sie polaczyc.Blad!!!');

$result = mysql_list_tables('-----');
$num = mysql_num_rows($result);
if ($num >0) {

while ($row = mysql_fetch_row($result)){

echo "<option value='".$row[0]."'>".$row[0]."</option>";
}
}


?>
</select>
</td>
</tr>
<?

echo '<link rel=stylesheet href="css.css" type="text/css">';

$sql_conn = @mysql_connect('----', '----', '----') or die('Nie mozna sie polaczyc.Blad!!!');

mysql_select_db('-----');
$kursy = trim(strip_tags($_POST['kursy']));
$zapytanie = "SELECT `id`,`imie`,`nazwisko`,`adresat` FROM ".$kursy." WHERE `potwierdzony`='t' ORDER BY `id` ASC";
$idzapytania = mysql_query($zapytanie);
print ("Tabelka zawierajaca potwierdzone dane:\n");

print '<table>';
while ($wiersz = mysql_fetch_row($idzapytania))
{
echo '<tr><td class=tb1>'.
$wiersz[0] . '</td><td class=tb3>'.
$wiersz[1] .'</td><td class=tb2>'.
$wiersz[2] .'</td><td class=tb4>'.
$wiersz[3] .'</td><td class=tb5>'.
$wiersz[4] .'</td></tr>';
}

?>

Z gory dzieki za pomoc.
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.