2013-12-14 3 views
0

새 필드 이름을 사용하여 phpmyadmin에 새 테이블을 만들 때 약간의 문제가 있습니다. 필드 이름에 데이터를 삽입하려고하는 for 루프를 사용하고 있습니다. 그러나 어떤 이유로 나는 오류데이터베이스의 열에 새 이름을 삽입하는 방법

받고 있어요 "당신은 당신의 SQL 구문에 오류가있다; 이 근처 '[0] VARCHAR를 사용할 수있는 권리 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인 (30) '3 호선에서 ". 내 함수의 첫 번째 부분은 그래서 그것은 PHP 오류입니다하지만 100 % 확실 생각하지 않는다 노력하고 있습니다 알고

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'); 

?> 

:

여기 내 코드입니다.

+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()); 
관련 문제