我正在尝试查询:
SHOW TABLES;
将显示一堆带有chat_前缀的表。我想从字符串中删除chat_前缀,格式化变量(带链接),然后显示它。
这是如何完成的?
答案 0 :(得分:3)
不知道你的意思是“链接”。遍历您的表并将“chat_”替换为空字符串以删除前缀:
$formatted_table_name = str_replace("chat_", "", $table_name);
//... do something
$link = '<a href="#">' . $formatted_table_name .'</a>'; //add to link
答案 1 :(得分:2)
您可以使用以下命令删除SQL中的chat_前缀:
SELECT REPLACE(t.table_name, 'chat_', '')
FROM INFORMATION_SCHEMA.TABLES t
WHERE t.table_schema = 'your_db_name'
AND t.table_name LIKE 'chat_%'
参考:
答案 2 :(得分:0)
这应该完成整个工作:
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
if($result = $mysqli->query("SHOW TABLES")){
while($row = $result->fetch_row()){
echo '<a href="link_target">'.str_replace('chat_', '', row[0]).'</a>';
}
}
由于没有带有“SHOW TABLES”数组的标准列名,我使用了fetch_row()函数而不是fetch_assoc()函数。
答案 3 :(得分:0)
这显示了如何在PHP方面进行解析:
<?php
@$db = mysql_pconnect('server', 'user', 'password') or die('Error: Could not connect to database: ' . mysql_error());
mysql_select_db('database_name') or die('Error: Cannot select database: ' . mysql_error());
$query = "SHOW TABLES";
$result = mysql_query($query) or die('Error: ' . mysql_error());
$num = mysql_num_rows($result);
for ($i = 0; $i < $num; $i++)
{
$row = mysql_fetch_assoc($result);
$table = $row['Tables_in_database_name'];
$table2 = str_replace("chat_", "", $table);
$link[] = "<a href=\"http://whatever\">" . $table2 . "</a><br />";
}
print_r($link);
?>