Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Wyszukiwarka / dwie bazy danych
Forum PHP.pl > Forum > Przedszkole
admin22
Mam problem z wyszukiwarką opartą o dwie bazy danych mysql.
Nie wiem jak zrobić wyszukanie rekordu z drugiej bazy na podstawie na podstawie wyszukania z pierwszej bazy.

Na początek łącze się z pierwszą bazą i wybieram dane które najpierw porównuje na podstawie dwóch tabel z pierwszej bazy.

  1. <?php
  2. $qwe = THIS_PAGE_KEYWORD;
  3. $query1 = "SELECT * FROM tag, tag0 where id=id0 AND znacznik0='$qwe' LIMIT 0, 1";
  4. $result1 = mysql_query($query1);
  5.  
  6. //w tym miejscu chciałbym się połączyć z drugą bazą danych i wykonać właściwe zapytanie z drugiej bazy na podstawie słowa które jest niestety w zmiennej $znacznik (w //dalszej pętli while $row1).
  7.  
  8. $szukaj = "%$znacznik%";
  9. $sqlq = "SELECT a.*, b.*, c.* FROM firmy2 AS a, gmi AS b, branza2 AS c WHERE a.miejscowosc LIKE '".$szukaj."' AND a.id_gmi = b.idw AND a.id_br = c.idb";
  10.  $qq = mysql_query($sqlq);
  11.  
  12.  
  13. while ($row1 = mysql_fetch_array($result1))
  14.  {
  15. $znacznik = $row1['znacznik'];
  16. echo "<h1>$znacznik</h1>";
  17.  
  18.  
  19. while($db = mysql_fetch_array($qq)){
  20.  
  21. // właściwa pętla która nie wybiera dane na podstawie zmiennej $znacznik ponieważ zmienna $sqlq jest przed zadeklarowaniem tej zmiennej a select nie działa we while
  22.  
  23. }
  24.  
  25. }
  26. ?>



..rozwiązanie pewnie jest banalne, ale ja go nie znam.

Proszę o pomoc.
Lion_87
a nie możesz uży

  1. <?php
  2. $row1 = mysql_fetch_array($result1);
  3. $szukane_z_1_bazy = $row1['costam'] ;
  4.  
  5. $query2 = "SELECT * FROM tag, tag0 where cos like '%$szukane_z_1_baz%'";
  6. $result2 = mysql_query($query2);
  7. ?>
admin22
Dawno nie używałem PHP, przetestuje i dam znać.
Podziękował.
Spawnm
skoro mowa o kilku bazach to przekazuj połączenie do mysql_query" title="Zobacz w manualu PHP" target="_manual
skowron-line
możesz zrobić tak
  1. <?php
  2. $q = mysql_query( 'select a from baza1.tabela where id=1' );
  3. $f = mysql_fetch_assoc( $q );
  4.  
  5. $q2 = mysql_query( 'select b from baza2.tabela where a = '. $f[ a ] );
  6. // i cos tam dalej
  7. ?>


Jak dodasz nazwę BD przed nazwa tabeli to zapytanie odwoła się do tej właśnie BD a nie tej do której właśnie jesteś podłączony.
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.