2016-03-16 17 views
6

Tüm MySQL tablolarını Veritabanından geri göndermeyi ve belirli bir kullanıcıyı kullanıcılarla hariç tutmayı denerim. Masamın isimlerini yazdırmak için kod aşağıdaki kullanın:Tüm MySQL tablolarını listeleyin ve bunlardan hariç tutunuz. Belirli bir

function findTables() { 
    global $conn; 
    global $DB; 

    $query = "SHOW TABLES FROM $DB "; 
    $showTablesFromDb = mysqli_query($conn, $query); 
    while($row = mysqli_fetch_row($showTablesFromDb)) { 
     echo "<li><a href='admin.php?show={$row[0]}'>{$row[0]}</a></li>"; 
    } 
} 
+0

Sorunuz nedir? –

+0

Yukarıdaki kod tüm tabloları ve hoşlarını gösterir ancak süreçler sırasında belirli bir tabloyu döngüden hariç tutmak istiyorum - örneğin kullanıcılar – Ganga

cevap

6

çözüm olacaktır:

İşte
show tables where tables_in_$DB not like 'a%'; 

bazı demolar şunlardır:

mysql> show tables; 
+-----------------+ 
| Tables_in_test3 | 
+-----------------+ 
| a1    | 
| t1    | 
| t2    | 
+-----------------+ 
3 rows in set (0.00 sec) 

-- LIKE is simpler than NOT LIKE 
mysql> show tables like 'a%'; 
+----------------------+ 
| Tables_in_test3 (a%) | 
+----------------------+ 
| a1     | 
+----------------------+ 
1 row in set (0.00 sec) 

-- `show tables not like 'a%'` is not working, 
-- use the following way for NOT LIKE matching 
mysql> show tables where tables_in_test3 not like 'a%'; 
+-----------------+ 
| Tables_in_test3 | 
+-----------------+ 
| t1    | 
| t2    | 
+-----------------+ 
2 rows in set (0.01 sec) 
+0

Yeterince adil - ancak doğru sorgu şu: 'GÖSTER TABLOLARININ OLDUĞU tablo_in_ $ $ veritabanı_adı DEĞİLSE. Neyse bir ipucu için teşekkür ederim - kabul olarak işaretler – Ganga

+0

Teşekkürler, biliyorum 'a%' gibi tablolar, tablolar çalışır ve sonra LIKE DEĞİL de işe yarar. O zaman acele ediyordum. Gönderiyi daha fazla bilgi ve demo ile yeni güncelledim. –

2

yukarıdaki cevabı çalışmazsa, Bunu deneyin:

SHOW TABLES FROM $DB WHERE Tables_in_$DB NOT LIKE 'foo' 
İlgili konular