ďťż
 
[mysql,php] Jak przeszukac wszystkie tabele? ďťż
 
[mysql,php] Jak przeszukac wszystkie tabele?
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[mysql,php] Jak przeszukac wszystkie tabele?



Pacio - 04-11-2005 23:16
[mysql,php] Jak przeszukac wszystkie tabele?
  Witam!
Mam problem poniewaz chcialbym przeszukac cala baze danych pod katem jednego
stringa.
Probowalem sprawdzic kazda tabele z osobna za kazdym razem gdy pobierana
zostala jej nazwa za pomoca mysql_list_tables(), lecz nie bardzo to wychodzi
(nic nie wychodzi). Petla pobierajaca nazwy tabel wewnatrz ktorej
Najlepiej jakby bylo cos takiego:
select * from * where pole=szukana_wartosc
Dodam ze nie znam ilosci tabel i ich nazw.

Czesc kodziku:

$result = mysql_list_tables(baza_danych);
$i = 0;
while ($i < mysql_num_rows($result))
{
$tb_names[$i] = mysql_tablename($result, $i);
echo $tb_names[$i]." ; ";

$zapytanie = "SELECT * FROM \'$tb_names[$i]\' WHERE \`pole2\` LIKE
\'%$search%\' ORDER BY \`pole1\` ASC";
$wykonaj = mysql_query($zapytanie);

while($wiersz=mysql_fetch_array($wykonaj))
{
echo "<tr>
<td>".$wiersz['pole1']."</td>
<td>".$wiersz['pole2']."</td>
<td>".$wiersz['pole3']."</td>
</tr>";
}
$i++;
}

--
Pozdrawiam
Pacio





artiun - 04-11-2005 23:16

  Pacio napisał(a):
> Witam!
> Mam problem poniewaz chcialbym przeszukac cala baze danych pod katem jednego
> stringa.
NTG, ale masz (dość uproszczone). Tylko nie wiem po co to pakujesz w HTML,
masz zamiar to wyświetlać na jakiejś stronie - to raczej administracyjne niż
użytkowe. Chyba, że dodatkowo we wszystkich tabelach będzie istniało
unikalne pole np. ID i dla niego można np. wyrzucać link do rekordu z
określonej tabeli. Wtedy to ma jakiś sens.

<?php

mysql_connect( "", "artur", "" );
$result = mysql_list_tables( "httplog" );

// Co bedzie przeszukiwane (ma sens dla LIKE)
$atable = array();
$afield = array();
for ($i=0; $i<mysql_num_rows( $result ); $i++)
{
$tname = mysql_tablename( $result, $i );
$rdesc = mysql_query( "DESCRIBE ".$tname );
while( $rows = mysql_fetch_row( $rdesc ) )
{
$fldn = $rows[0]; // field name
$type = $rows[1]; // field type
if( substr( $type, 0, 4 ) == "char" ||
substr( $type, 0, 7 ) == "varchar" ) // ..
{
$atable[] = $tname;
$afield[] = $fldn;
}
}
}

// Przeszukanie pol zadanego typu w tabelach w jakich wystepuja pod
katem LIKE $sfind
$sfind = "1%";
for( $i=0; $i<count( $atable ); $i++ )
{
$query = "SELECT ".$afield[$i]." FROM ".$atable[$i]." WHERE
".$afield[$i]." LIKE '".$sfind."'";
printf( "TABLE: %s\tFIELD %s \n", $atable[$i], $afield[$i] );
// printf( "\tQuery: [%s]\n", $query );
$rfind = mysql_query( $query );
while( $rows = mysql_fetch_row( $rfind ) )
printf( "\tValue: [%s]\n", $rows[0] );
}

mysql_close();

?>

--
Artur
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?= [mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?= [MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?= [mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?= [MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?= [MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?= Gdzie MySQL 4.1, a gdzie 5.0? [MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?= [MS SQL] "set names" (mySQL) w MS SQL [mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • bajkomoda.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com