25 en son eklenen tablolar üzerinden yazdırma

2 Cevap php

Aşağıdaki kodda, ben kullanıcıların bir MySQL veritabanı tabloları eklemek için izin. En son eklenen 25 tabloları yazdırmak için bir yolu var mı?

Teşekkür peşin,

John

$table = mysql_real_escape_string($_POST['name']);

$query = "CREATE TABLE `$table` (id INT(11) NOT NULL auto_increment, site VARCHAR(350) NOT NULL, cat1 BIGINT(9) NOT NULL, cat2 BIGINT(9) NOT NULL, PRIMARY KEY(id), UNIQUE (site))";
$result = mysql_query($query) or die(mysql_error());

2 Cevap

select TABLE_NAME
  from INFORMATION_SCHEMA.TABLES
 where TABLE_SCHEMA='your_db_name`
 order by CREATE_TIME desc
 limit 25

Bu, yukarıda MySQL sürümünde 5 ve içindir. Bu da, sizin kullanıcılara and Sen tarafından oluşturulmuş tabloları listeler.

Sen ama tüm tablo yarattıkları (ve diğer ilgili faaliyet) öyküsü veya denetim tablo oluşturarak öneririm edebilirsiniz. Örneğin:

$now = time();
$user = $_SESSION['user'];
$sql = <<<END
INSERT INTO table_history
(table, user, action, action_time)
VALUES
('$table', '$user', 'CREATE', $now)
END;
mysql_query($sql) or die($sql . ': ' . mysql_error());

Ayrıca, muhtemelen onlar gerçekten büyük olmak için gidiyoruz sürece bunu kullanmak için gereken her örneği için ayrı bir tablo yaratmak değil öneririz ediyorum. Kullanıcı, kuruluş ya da sık sık olursa olsun (ama her zaman değil) daha iyi bir yaklaşım tanımlamak için başka bir sütun oluşturma.