2011-07-06 2 views
0

순열의 결과를 mysql의 임시 테이블에 저장하여 검색 스크립트에서 사용할 수 있도록하고 싶습니다.순열의 결과를 mysql의 테이블에 삽입하는 방법

<?php 
function permute($str,$i,$n) { 
    if ($i == $n) { 
     echo "$str\n"; 
     echo "<br/>"; 

     $query = mysql_query("CREATE TABLE temp(
      id int NOT NULL AUTO_INCREMENT, 
      number varchar(64) NOT NULL, 
      PRIMARY KEY(id) 
      )"); 

     $str = addslashes(trim($_POST['str'])); 

     $query = mysql_query("INSERT INTO temp (number) VALUES ('$str')") 
      or die(mysql_error()); 
    } 
    else { 
     for ($j = $i; $j < $n; $j++) { 
      swap($str,$i,$j); 
      permute($str, $i+1, $n); 
      swap($str,$i,$j); // backtrack. 
     } 
    } 
} 

// function to swap the char at pos $i and $j of $str. 
function swap(&$str,$i,$j) { 
    $temp = $str[$i]; 
    $str[$i] = $str[$j]; 
    $str[$j] = $temp; 
} 

$str = @$_GET['number'] ; 
permute($str,0,strlen($str)); // call the function. 
    // Get the search variable from URL 

?> 

누가 순열의 결과를 임시 테이블에 삽입하는 방법을 알고 있습니까?

영구 테이블에 삽입하려고했지만 1234의 24sets 결과가 삽입되지 않지만 ID 1-24 만 삽입됩니다. $ str 결과의 24sets 포함되어 있기 때문에 문제가 있다고 생각하지만 그것은 함께 인쇄되기 때문에 분리되지 않습니다 ??

모든 솔루션?

+2

임시 테이블에 아무 것도 삽입하는 방법을 알고 있습니까? – zerkms

+0

해결책을 묻기 전에 적어도 시도해야합니다. http://dev.mysql.com/doc/refman/5.1/de/insert.html은 어떻습니까? – Marco

+0

영구 테이블에 삽입하려고하지만 작동하지 않습니다 .. id가 삽입되었지만 결과의 24 세트가 전혀 삽입되지 않았습니다 ... $ str = addslashes (trim ($ _ POST [ 'str ']))); \t $ query = mysql_query ("INSERT INTO test (number) VALUE \t ('$ str')") 또는 die (mysql_error()); id 만 삽입되지만 결과는 삽입되지 않습니다. – l3x

답변

0

실제 문제는 $str = addslashes(trim($_POST['str']));이며 게시판의 웹 요청에서 임시 테이블에 넣기 직전에 값을 검색하려고합니다.
기본적으로 변수를 공백으로 설정해야합니다 (설정되지 않았기 때문에 공백으로 표시됩니다).
오, 나는 당신이 안전하게 귀하의 입력 parms을 탈출하거나, 귀하의 사이트가 짧은 순서로 장악하게되기를 바랍니다. number인 경우에 실제 문자열 (ABC)이 아닌 실제 번호 (1234)가 포함되어 있다고 가정하면 숫자 데이터로 캐스팅하고 문자열로 다시 보내면 완전히 위생 처리됩니다 (예외 처리도 포함되어야 함).

관련 문제