[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: CREATE TABLE
Crater
Если вопрос глупый - не судите строго, второй день только программирую. Если тема где-то уже поднималась, прошу прощения. Киньте ссылку. А дело вот в чём.

Дана база. Нужна команда (в php файл), которая создавала бы таблицы с уникальными именами. Пробовал написать
$q = mysql_query("CREATE TABLE '".$sql['id_game']."' (не_имеющие_никакого_значения_поля)");
, чтобы имя таблицы было хотя бы просто номером, связанным с одним из полей основной таблички. Понятное дело, не работает. Вопрос: а можно ли вообще что-то подобное устроить и, если можно, то как? unsure.gif



Спустя 9 минут, 27 секунд (19.10.2010 - 10:42) Michael написал(а):
CREATE TABLE `table_name`

обрати внимание на кавычки

Спустя 32 минуты, 23 секунды (19.10.2010 - 11:15) Crater написал(а):
Точно, спасибо. В описанном случае имя - (). Функция банально не читается, не считается, игнорируется. Если скобки убрать, вовсе ничего создаваться не будет. Я что-то неправильно делаю или в создании таблицы банально нельзя название таким образом задавать?

Спустя 6 минут, 18 секунд (19.10.2010 - 11:21) arvitaly написал(а):

Спустя 2 минуты, 15 секунд (19.10.2010 - 11:23) Michael написал(а):
давай названиям таблиц уникальные имена, состоящие из букв латинского алфавита и цифр и знака подчеркивания - будет тебе счастье. Подробнее тут почитай

Спустя 8 минут, 53 секунды (19.10.2010 - 11:32) Crater написал(а):
arvitaly, Michael, большое спасибо за ссылки. Счастье уже грядёт.

Спустя 2 часа, 38 минут, 52 секунды (19.10.2010 - 14:11) sergeiss написал(а):
Меня вот это настораживает:
Цитата (Crater @ 19.10.2010 - 11:33)
чтобы имя таблицы было хотя бы просто номером, связанным с одним из полей основной таблички

По-моему, человеку надо немного другое. А именно, просто 2 связанные таблицы. В одной - та самая основная таблица, а во второй - какие-то данные, привязанные к первой по id или какому другому полю.
Иначе он просто наплодит очень много таблиц.

Спустя 11 часов, 37 минут, 40 секунд (20.10.2010 - 01:49) Crater написал(а):
Всё верно, необходимо получить связанные таблицы. Что ж, если гора не идёт к Магомеду, Магомед идёт к горе. Создать таблицу с уникальным связанным с id другой таблицы именем никак не вышло. Сделал так: (поясню всё для простоты)
$test = mysql_query("SELECT * FROM games WHERE gamer_1_id = '".$_SESSION['id']."'"); 
//Ну, тут я тип выбрал строку из таблицы списка существующих игр, где уже участвует id игрока
$a = mysql_fetch_assoc($test);
//Ну понятно, ассоциативный массив слепил из того что было
if (mysql_num_rows($test) == 0) {
//Если в незавершённых играх игрок не учавствует
$n = mt_rand(1,9999999999);
//вот, задаю тот самый номер
$q = mysql_query("CREATE TABLE `game_$n` (game_id INT, A INT, B INT, C INT, D INT, E INT)");
//Создаю с ним таблицу
mysql> mysql_query("INSERT INTO games (`id_game`, `gamer_1_id`) VALUES ('".$n."', '".$_SESSION['id']."')");
//А в таблицу списка незавершённых игр ввожу ту же переменную
//Ну, дальше, если кому интересно идёт кнопка, снимающая всё сотворённое юзером выше

echo 'Новая игра была зарегистрирована. Ожидайте подключения второго игрока или снимите текущую регистрацию<br/><br/><br/><br/>
<form
action="../index.php" method="POST"><input name="do" type="submit" value="Снять"><br/></form><br/>';
if($_POST['do'] !='') {
$n = ($a['id_game']);
mysql> mysql_query("DROP TABLE `game_$n`");
mysql> mysql_query("DELETE FROM games WHERE id_game = '".$n."'");
echo 'Вы успешно снялись с текущей регистрации.<br/><br/>';
}

Пока что пытаюсь сам решить проблему, но вообще-то кнопка работает не совсем так, как хотелось бы. Может, кто скажет, каким ещё способом усилиями php можно сделать кнопку? Третий день всего изучаю, может, упустил чего.

Обновлённые данные - принцип работы такой вот, как у меня, кнопки путём научного тыка и догадок смекнул. Проблема была в том, что вариант нажатия кнопки обрабатывался... никогда он не обрабатывался - работа резво перескакивала по ссылке и к удалению таблицы и записи не возвращалась. Банально перенёс оператор условия в индекс-файл. Тему можно закрывать (если они тут закрываются), если будут ещё вопросы - задам отдельно.


_____________
Цитата
Я не потерпел неудачу. Я просто нашел десять тысяч способов, которые не работают.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.