2010-06-09 3 views
0

Я пытаюсь сделать запрос:Удаление части строки в PHP

SHOW TABLES; 

, который будет отображать кучу таблиц с префиксом chat_. Я хочу удалить префикс chat_ из строки, отформатировать переменную (со ссылкой) и отобразить ее.

Как это делается?

+0

Таким образом, у вас есть переменная, содержащая строку «SHOW TABLES;» и вы хотите что-то сделать с этим? – VoteyDisciple

+4

Формат как? Показать как? Вы должны быть более подробными, чтобы получить хороший ответ. –

ответ

3

Не знаете, что вы подразумеваете под «ссылкой». Перебрать таблиц и заменить "chat_" с пустой строкой, чтобы удалить префикс:

$formatted_table_name = str_replace("chat_", "", $table_name); 
//... do something 
$link = '<a href="#">' . $formatted_table_name .'</a>'; //add to link 
+0

Это было не совсем в таком порядке, или все на одной линии. Я имел в виду, что я планировал добавить ссылку на уже отформатированную переменную. – Nik

+0

@ Нik: вот так? – Simon

+0

Да. Теперь мне нужно выяснить, как отредактировать еще 3 запроса, чтобы приспособить это изменение. Мне нужно передать переменную комнаты через GET на страницы, и она должна вставить эту переменную в запрос, любые идеи> – Nik

2

Вы можете удалить chat_ префикс в SQL с помощью:

SELECT REPLACE(t.table_name, 'chat_', '') 
    FROM INFORMATION_SCHEMA.TABLES t 
WHERE t.table_schema = 'your_db_name' 
    AND t.table_name LIKE 'chat_%' 

Ссылка:

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().

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); 
?> 
Смежные вопросы