2013-12-14 3 views
0

Существует небольшая проблема, когда я создаю новую таблицу в phpmyadmin с новыми именами полей. Я использую цикл for, пытаясь вставить данные для имен полей. Но по какой-то причине я получаю ошибкуКак вставить новое имя для столбца в базу данных

«У Вас есть ошибка в вашем SQL синтаксиса, обратитесь к руководству, что соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать вблизи«[0] VARCHAR (30) «на линии 3».

Вот мой код:

include 'simple_html_dom.php'; 
include ('connection.php'); 


function getsquad($url, $tablename){ 

$html = file_get_html($url); 

$player = array(); 

foreach($html->find('td[align=left]') as $element) { 
    if ($element->children(0)) { // work only when children exists 
      array_push($player ,$element->children(0)->innertext); 
    } 
} 

$length = count($player); 

for($i = 0;$i<=$length;$i++){ 
// Create a MySQL table in the selected database 
mysql_query("CREATE TABLE $tablename(

player[$i] VARCHAR(30)") 
or die(mysql_error()); 
} 

echo "Table Created!"; 

} 

$Squad = new squad(); 
$Squad->getsquad('site', 'Players'); 

?> 

Я знаю, что первая часть моей функции работает, поэтому я не думаю, что это ошибка PHP, но не 100% уверен.

+1

Именование столбца 'player [n]' невозможно. Какова ваша цель? Создание отдельной таблицы для каждого игрока кажется плохим дизайном базы данных, возможно, вам захочется пересмотреть этот подход. –

+0

Я пытаюсь получить имена игроков и помещать их в одну таблицу. – Nic

ответ

2

Вы забыли $ перед тем игроком , Правильный путь:

mysql_query("CREATE TABLE $tablename($player[$i] VARCHAR(30)") or die(mysql_error()); 

обновление: И как user876345 сказал, вы забыли закрыть скобки. Таким образом, код должен быть:

mysql_query(" CREATE TABLE $tablename($player[$i] VARCHAR(30)) ") or die(mysql_error()); 
+0

Работал, спасибо. Маленький, но потребовалось время, чтобы пересмотреть – Nic

+0

Спасибо @ david-cain за исправления. Я новичок в сообществе, и еще изучаю английский язык. – csbenjamin

0

Вы пропустили, чтобы закрыть ) в конце запроса, а также пропустил $ в player переменной

CREATE TABLE $tablename($player[$i] VARCHAR(30)) 

Ваш код должен быть как:

mysql_query("CREATE TABLE $tablename($player[$i] VARCHAR(30)") or die(mysql_error()); 
Смежные вопросы