| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > создание таблицы из массива |
| Автор: hhh 9.5.2008, 10:35 | ||||||||
Есть вот такой XML файл
прочита его в массив в таком виде [0] [title] = name [0] [type] = varchar [0] [length] = 15 [0] [isobyaz] = 1 [1] [title] = phone [1] [type] = number [1] [length] = 15 [1] [isobyaz] = 1 Пытаюсь саздать из этого массива таблицу но почемуто выходит ошибка
Получается код в таком виде ошибка думал из за запятой
Но при таком тоже кодетоже ошибка
|
| Автор: Feldmarschall 9.5.2008, 10:38 |
| О, hhh! Как будто специально для тебя писал - http://forum.vingrad.ru/articles/topic-206796.html ! |
| Автор: hhh 9.5.2008, 10:47 |
| Ошибка: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' name VARCHAR (15)NOT NULL )' at line 1 |
| Автор: solenko 9.5.2008, 11:45 |
| Не, ну я бы на месте mysql тоже обиделся, если бы мне html пытались скормить ) Вам нужно понять разницу между ТЕГОМ <br /> и СИМВОЛОМ перевода строки \n. По поводу лишней запятой... Очень удобно собирать определения полей в массив а потом делать ему join/implode с разделителем запятой. |
| Автор: hhh 9.5.2008, 12:09 | ||||
Как можно решить проблему с join/implode
конец sql кода должен заканчиваться без запятой
|
| Автор: solenko 9.5.2008, 12:29 | ||
|
| Автор: hhh 9.5.2008, 12:58 | ||
Warning: join() [function.join]: Bad arguments. in z:\home\localhost\www\xml.php on line 140 CREATE TABLE table_name() Ошибка: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1 |
| Автор: Fortop 9.5.2008, 14:45 |
| hhh, ты не хочешь прочитать ссылку что дал Feldmarshall? Посмотри внимательно, на код, который ты отправляешь в базу? |
| Автор: hhh 9.5.2008, 15:09 |
| Вроде все правильно не могу найти где ошибка |
| Автор: Feldmarschall 9.5.2008, 15:17 |
| проверь, какие аргументы ты передаешь в функцию join выведя каждый с помощью функции var_dump() |
| Автор: hhh 9.5.2008, 15:31 |
| var_dump($field_def); string(23) "addres INT (15)NOT NULL" |
| Автор: Feldmarschall 9.5.2008, 15:36 |
| а зачем ты передаешь field_def, если тебе нужно передавать field_defs? |
| Автор: hhh 9.5.2008, 15:48 |
| var_dump($field_defs); NULL |
| Автор: Feldmarschall 9.5.2008, 16:07 |
| воооот! значит, в этот массив почему-то ничего не попадает, хотя должно. дальше смотри по коду - почему. где-то у тебя косяк со скобками, что ли |
| Автор: Nigel 9.5.2008, 17:11 |
| следи за названиями переменных $sql="CREATE TABLE table_name(".join(",\n", @$filed_defs).")"; |
| Автор: Feldmarschall 9.5.2008, 17:18 | ||
А вот, как раз, для таких случаев и служит команда
вначале всех скриптов! ПХП сам бы сказал, что не к той переменной обращаешься |
| Автор: hhh 9.5.2008, 17:52 |
| Всем огромное спасибо за помощь |
| Автор: Feldmarschall 9.5.2008, 17:59 |
| Блин, точно. Оттуда у этой собаки ноги и растут. hhh, ты хоть понял, кукую невероятную глупость сделал, поставив @? Где ты вообще такого набрался, кто тебя научил так исправлять ошибки? |