Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mysql_list_tables ?
Forum PHP.pl > Forum > Bazy danych > MySQL
Fo
[php:1:33ad3e57a2]mysql_connect('localhost', 'uzytkownik', 'haslo') or
die('Nie można się połączyć');
mysql_select_db('baza');

$result = mysql_list_tables();

while (($row = mysql_fetch_row($result))
printf ("Tabela: %sn", $row[0]);

mysql_free_result($result);[/php:1:33ad3e57a2]

To jest zywcem z manuala wyciagniete ale nie dziala, wie ktos dlaczego ?
Mnie wypisuje : Parse error: parse error, unexpected T_STRING in C:apachehtdocstestylist_tables.php on line 9
ale osochosi ? bo ja nie bardzo kumam dlaczego tak akuratnio nie moze byc ?
Jabol
[php:1:641f659ed6]mysql_connect('localhost', 'uzytkownik', 'haslo') or
die('Nie można się połączyć');
mysql_select_db('baza');

$result = mysql_list_tables();

while (($row = mysql_fetch_row($result))//zadużo o jeden nawias z lewej
printf ("Tabela: %sn", $row[0]);

mysql_free_result($result);[/php:1:641f659ed6]
Fo
no ok ... a teraz z kolei jest takie cus (juz po usunieciu nawiasu z lewej -
Warning: Wrong parameter count for mysql_list_tables() in C:apachehtdocstestylist_tables.php on line 6

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:apachehtdocstestylist_tables.php on line 8

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:apachehtdocstestylist_tables.php on line 11
Fo
hmm w manualu byl brak .... przy mysql_list_tables("tu_miala_byc_nazwa_bazy"); podaje jakby ktos jeszcze sie na to nabil..

[php:1:52431c5c3e]mysql_connect('localhost', 'uzytkownik', 'haslo') or
die('Nie można się połączyć');
mysql_select_db('baza');

$result = mysql_list_tables(); /*brak podanej bazy danych do ktorej ma sie odwolac mysql_list_tables, powinno byc mysql_list_tables("baza"); */

while ($row = mysql_fetch_row($result))
printf ("Tabela: %sn", $row[0]);

mysql_free_result($result); [/php:1:52431c5c3e]
edit: mam jeszcze pytanko : co robi %s ? bo nie moge sie o tym nigdzie doczytac... sad.gif
edit2: chcialbym jeszcze zrobic cos takiego zeby listowalo mi tabele z bazy danych tak ja powyzszy zapis to robi bardzo ladnie ale chcialbym zeby listowane byly tylko tabele rozpoczynajace sie od kat_* gdzie * jest dowolna dalsza nazwa tabeli... w bazie mam np. tabele : kategoria, kat_hp, kat_lexmark i chcialbym alby tylko wylistowane zostaly te tabele z "kat_".... ma ktos na to jakis pomysl ?
Jabol
%s pochodzi od string
Fo
hmm ok fajnie juz wiem co znaczy %s.
ale czy wie ktos jak moglbym poradzic sobie z tym co napisalem w edit2 ?
Cytat
chcialbym jeszcze zrobic cos takiego zeby listowalo mi tabele z bazy danych tak ja powyzszy zapis to robi bardzo ladnie ale chcialbym zeby listowane byly tylko tabele rozpoczynajace sie od kat_* gdzie * jest dowolna dalsza nazwa tabeli... w bazie mam np. tabele : kategoria, kat_hp, kat_lexmark i chcialbym alby tylko wylistowane zostaly te tabele z "kat_".... ma ktos na to jakis pomysl ?
Jabol
to musisz sobir napisać taki skrypt. Poczytaj w manualu. To będzie coś w rodzaju:
Kod
SELECT * FROM

`systables`--nazwa tabli może być inna, ta jest w większości baz

WHERE `name`--ta nazwa pola też może być inna

LIKE 'kat_%';
DeyV
wystaczy chwilę pomyśleć. A jak Ci się nie uda w MySQL, no to można w php. A tu jest taka fajna funkcja jak substr().
np. [php:1:5489d2416f]<?php
while (...){
$nazwa = $wiersz[...];
if ( substr($nazwa, 0, 4) =='kat_'){
echo ....
}
?>[/php:1:5489d2416f]


W pości poniżej chyba właśnie o to chodzi biggrin.gif
Fo
mhm pewnie by dzialalo tak jak pisal Jabol ale mnie chodzi o to ze kiedy wykonuje sie :
[php:1:c859d298a2]$result = mysql_list_tables("baza");

while ($row = mysql_fetch_row($result))
printf ("%sn", "<a href="wys_kat.php?kat=$row[0]">$row[0]</a><br>");
mysql_free_result($result);[/php:1:c859d298a2]
to wtedy zeby listowalo mi tabele tej bazy ale tylko te ktore zaczynaja sie na "kat_"

edit: a DeyV znowu szybszy tongue.gif
Jabol
wycinasz pierwsze cztery znaki i sprawdzasz czy są równe kat_
Fo
thx wlasnie oto mi chodzilo ... podaje kompletny kod ... moze znajdzie sie drugi taki ktos jak ja co bedzie mial ten sam problem... tongue.gif
[php:1:da0a843318]$result = mysql_list_tables("baza");

while ($row = mysql_fetch_row($result)) {
$nazwa = $row[0];
if ( substr($nazwa, 0, 4) == 'kat_') {
printf ("%sn", "<a href="wys_kat.php?kat=$row[0]">$row[0]</a><br>");
}
}
mysql_free_result($result);[/php:1:da0a843318]
DeyV
tylko mam taką propozycję - jeżeli decydujesz sie na przepisanie $row[0] do $nazwa, to kożystaj z tego z całej pętli. A jeśli nie - to również w całej. Ianczej robi się zbedny bałagan.
Fo
no ok ale jeszcze jedna sprawa ktora wyszla mi wlasnie przed momentem... czy moge w to wszystko wplesc jakos sensownie ereg_replace bo chcialbym otrzymana nazwe tabeli "kat_hp" zmienic np. na hapek poniewaz pozniej ta nazwa wyciagnietej tabeli zamienia sie w link do kategorii na ktory sobie klikam (linkiem jest nazwa tabeli czyli kat_hp a chcialbym zamiast tego miec np. hapek) .... i probowalem na ereg_replace to zrobic ale nie dziala. sad.gif
DeyV
[php:1:2258705ecb]<?php
$nazwa = strtr ( $nazwa, 'hp', 'hapek');
?>[/php:1:2258705ecb]questionmark.gifquestionmark.gifquestionmark.gif?
Fo
niestety niby powinno byc ok...ale po wykonaniu sie tego :[php:1:22b922f673]$result = mysql_list_tables("baza");
while ($row = mysql_fetch_row($result)) {
$nazwa = $row[0];
if ( substr($nazwa, 0, 4) == 'kat_') {
$txt = strtr ( $txt, 'kat_hp', 'hapek');
printf ("%sn", "<a href="wys_kat.php?kat=$row[0]">$row[0]</a><br>");
} }
mysql_free_result($result); [/php:1:22b922f673]
dostaje wynik w postaci :
kat_hp
kat_lexmark , a chcialbym zamiast kat_hp otrzymac hapek... i strtr ani ereg_replace tego nie robi... zbuntowaly czy co ? a moze ja juz poprostu dzis wysiadam ?
uboottd
Zakladam ze chodzi o mysql-a:
Kod
SHOW TABLES LIKE '%cos%';


Czesci phpowej chyba nie musze grzybic bo jest analogiczny ?
DeyV
choroba - sprawdź, co ty robisz...
Chyba juz czas, na <spać>
[php:1:5de52e0857]<?php
while ($row = mysql_fetch_row($result)) {
$nazwa = $row[0];
if ( substr($nazwa, 0, 4) == 'kat_') {
$txt = strtr ( $txt, 'kat_hp', 'hapek'); //<<<<Gdzie wykorzystujesz $txt?questionmark.gif
printf ("%sn", "<a href="wys_kat.php?kat=$row[0]">$row[0]</a><br>");
} }
?>[/php:1:5de52e0857]
Fo
tak masz racje juz pora na <spanie>
powinno i chodzi ok jak jest tak : [php:1:b2cd72e4ed]------
if ( substr($nazwa, 0, 4) == 'kat_') {
printf ("%sn", "<a href="wys_kat.php?kat=$row[0]">");
$row[0] = ereg_replace("kat_hp","hapek", $row[0]);
print ("$row[0]</a><br>");
-----[/php:1:b2cd72e4ed]

thx & dobranoc.... tym razem nie 3 ani 5 tylko 12 godzin bede spal....
DeyV
Cytat
str_replace
str_replace -- Replace all occurrences of the search string with the replacement string
Description
mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count])


This function returns a string or an array with all occurences of search in subject replaced with the given replace value. If you don't need fancy replacing rules, you should always use this function instead of ereg_replace() or preg_replace().
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.