2013-04-11 3 views
0

누군가이 솔루션을 통해 나를 도울 수 있습니다. 나에게는 조금 까다 롭다.str_split 및 mysql에서 데이터 가져 오기

나는 긴 숫자 (예 : 102030)를 참조합니다. 이제는이 긴 숫자를 더 짧은 숫자 (예 : 10 20 30)로 나누고 싶습니다. 이 짧은 숫자는 mysql에서 데이터베이스에있는 id이고, 그들과 함께 모든 id_name의 foreach 짧은 숫자를 얻고 싶습니다 (이름 -10 이름 -20 이름 -30).

긴 숫자를 나누려면 str_split을 사용했지만이 배열을 지금 사용하는 방법을 모르겠습니다.

여기 내 코드입니다. 이

$result = mysql_query("SELECT id, id_name FROM names WHERE id= '$split_id[0]' "); 
을 시도 할 수
+0

[** 새 코드 **] (http://bit.ly/phpmsql)에 mysql_ * 함수를 사용하지 마십시오. 그들은 더 이상 유지되지 않으며 [공식적으로 사용되지 않습니다] (http://j.mp/XqV7Lp). [** 빨간색 상자 **] (http://j.mp/Te9zIL)를 참조하십시오. 대신 [* prepared statements *] (http://j.mp/T9hLWi)에 대해 알아보고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용하십시오. mysqli) - [이 기사] (http://j.mp/QEx8IB)는 어떤 결정을 내리는 데 도움이 될 것입니다. PDO를 선택하면 [여기는 좋은 튜토리얼입니다] (http://j.mp/PoWehJ). –

+0

여기서'$ result = mysql_query ("SELECT id, id_name FROM names ..... ....."); ' –

+0

이 참조를 주셔서 감사합니다. 그것을 고려할 것입니다 ... – Potator

답변

1

변경이

$long_id =$_GET[long_id]; 

$long_id =$_GET['long_id']; 

<?php 
$long_id =$_GET[long_id]; 

if($_SESSION['test']) { 
foreach($_SESSION['test'] as $split_id => $number) { 

$split_id = str_split($long_id, 2); 

       $result = mysql_query("SELECT id, id_name FROM names"); 
//Here is my WHERE missing, because it's not working with split_id... 
       list($id, $id_name) = mysql_fetch_row($result); 
       while($row = mysql_fetch_array($result)){ 
       echo $id_name; 

       } 
} 
} else { 
    echo "test is empty"; 
} 
?> 

감사

을 (데이터베이스는이 코드 전에 포함)

당신은 또한

당신이

OR id= '$split_id[1]' OR id= '$split_id[2]' .... 
+0

예, 그것을 시도했습니다. 그러나 결과도 오류없이 비어 있습니다. – Potator

0

좋아 추가 할 수 있습니다 다른 숫자를하려면이는 처음 두 자리를 찾습니다. 스케치 된 설계 경로에서 우울하게 만드는 대신 디자인에 대해 다시 생각해 봅시다.

귀하의 데이터

당신은 하나 개의 긴 번호, 102030을 가지고, 당신은을 분할합니다. 내가 물어볼지도 모르지, 어떻게? 구분 문자가 없습니다. PHP는 하나의 숫자가 시작되는 위치와 하나의 숫자가 끝나는 위치를 어떻게 알 수 있습니까? '두 자마다'로 정착 한 것처럼 보입니다. 이것은 매우 엄격한 코드입니다.

CSV 방식을 사용하고 쉼표를 사용하여 숫자를 분리하는 것이 좋습니다. 그렇게하면 디버깅해야하는 경우 훨씬 더 읽기 쉽고 코드는 더욱 유연 해집니다. 01 대신 1 또는 4904909을 ID로 사용할 수 있음을 의미합니다.

데이터베이스 연결

당신은 되지 않는 코드를 사용! 더 이상 사용되지 않는 코드는 더 이상 지원되지 않으며 PHP 이후 버전에서는 이 작동하지 않습니다.. 코드를 mysqli으로 업데이트하거나 PDO 개체를 사용해야합니다.

+0

좋아요, PDO 연결로 시도했습니다. 결과는 비어 있으며 오류가 발생하지 않습니다. – Potator

+0

코드 디버깅을 시도하고 값을 확인 했습니까? – christopher

+0

나는 여전히 코드 디버깅 작업을합니다. – Potator

0

$ _GET [ 'long_id']에 값 "102030"이 있다고 가정합니다.

다음처럼해야 뭔가 :

WHERE id=$split_id[0] OR id2=$split_id[1] OR id3=$split_id[2] 

그냥 모든 별도의 id를 표시하려면 다음을 수행 할 수 있습니다

$long_id =$_GET[long_id]; 
foreach ($split_id as $id) 
{ 
    echo "This is a id: ".$id."<br />"; 
} 

출력 : 10 이 : 이것은 ID입니다 id : 20 ID : 30

+0

좋아, 내가 원하는 걸 좋아. 그러나 이제 $ val은 어디에 있습니까? – Potator

관련 문제