2009-03-26 5 views
0

안녕을 반환하고 난 다음 스크립트PHP + MySQL의 행 단지 내가 PHP에 밖으로 시작하고 INT

<?php 

$username = "firstleg_floa"; 
$password = "**"; 
$hostname = "***1"; 
$db = "firstleg_bank"; 
$guildUser = strtolower('grissiom'); 

$dbh = mysql_connect($hostname, $username, $password) or die ("Unable To Connect"); 
$connectDB = mysql_select_db($db, $dbh); 
$results = mysql_query("SELECT * FROM Bank where userId ='" .$guildUser."'"); 

$i = 0; 
$rsArr = array(); 

While ($row = mysql_fetch_array($results, MYSQL_ASSOC)) 
{ 
    $rsArr [$i] [0] = $row{'userId'}; 
    $rsArr [$i] [1] = $row{'item'}; 
    $rsArr [$i] [2] = $row{'amount'}; 
    $rsArr [$i] [3] = $row{'position'}; 
    $i++; 
} 
?> 
<?="ghdfdgdfg ". $rsArr[$i][1];}." ----";?> 
    <? echo $rsArr[$i][0]; ?> 
    <table> 
    <tr><td>Item</td><td>Amount</td></tr> 
    <?for ($x=0;$x <= $i; $x++) 
    {?> 
    <tr><td><?=$rsArr[$x][3];?></td><td><?=$rsArr[$x][2];?></td></tr> 
    <?}?> 
    </table> 

<?php 
mysql_close($dbh); ?> 

을하고 난 데이터베이스에 다음과 같은 데이터가

1 - grissiom - 실크 천 - 100 - 1

위의 데이터와 위의 스크립트를 사용하여 가져올 수있는 모든 금액 (100)과 위치 (1)는 어떻게 다른 것을 꺼낼 수 없습니까? 누군가 나를 도울 수 있습니까

답변

1

이 완료 $ rsArr [ $ I] [0]와 $ rsArr [$ i가 [1] doensn't 존재, $ rsArr [0] [0] $ rsArr [0] [1] 이와 같은 사용하려고 :

<?="ghdfdgdfg ". $rsArr[0][1];}." ----";?> 
    <? echo $rsArr[0][0]; ?> 
    <table> 
    <tr><td>Item</td><td>Amount</td></tr> 
    <?for ($x=0;$x <= $i; $x++) 
    {?> 
    <tr><td><?=$rsArr[$x][3];?></td><td><?=$rsArr[$x][2];?></td></tr> 
    <?}?> 
    </table> 
4

네가 정사각형 대신 중괄호를 사용하고 있기 때문일 수 있습니다. mysql_fetch_array()에 의해 반환 된 행은 PHP 배열이며 객체 또는 문자열이 아닙니다.

+0

php의 배열도 중괄호로 정의 할 수 있습니다. 이것은 문제가되지 않습니다. – Ivan

+0

이반, 그건 사실이 아니야. –

+0

Milen, 다음 코드를 실행 해보십시오 : 'a test', 'another test2'=> 'test'); echo $ arr [ 'test']. "\ n"; $ arr { 'test3'} = '세 번째 요소'; var_export ($ arr); 에코 "\ n"; $ arr2 = array ('test1', 'test2', 'test3'); echo $ arr {2}. "\ n"; array_push ($ arr2, 'test4'); var_export ($ arr2); ?> – Ivan

0

나에게는 괜찮은 것 같습니다. 아마도 중괄호를 사용하여 문제가 제기되었을 것입니다.

어쨌든 내가 즉, 몇 가지 간단한 구문을 가고 싶어요 : $ i가 1과 동일하지만, $ rsArr [$ 내가] 정의되지 않은 변수 있도록 루프 후

<?php 

$username = "firstleg_floa"; 
$password = "**"; 
$hostname = "***1"; 
$db = "firstleg_bank"; 
$guildUser = strtolower('grissiom'); 

$dbh = mysql_connect($hostname, $username, $password) or die ("Unable To Connect"); 
$connectDB = mysql_select_db($db, $dbh); 
$results = mysql_query("SELECT * FROM Bank where userId ='" .$guildUser."'"); 

$i = 0; 
$rsArr = array(); 
while ($row = mysql_fetch_array($results, MYSQL_ASSOC)) 
{ 
    $rsArr[] = $row; 
} 
mysql_close($dbh); 
echo '<table><tr><td>Item</td><td>Amount</td></tr>'; 
for ($i = 0;$i<count($rsArr);$i++){ 
    echo <<<EOF 
    <tr><td>{$rsArr["item"]}</td><td>{$rsArr["amount"]}</td></tr> 
EOF; 
} 
echo '</table>'; 
?> 
3

가능한 해결책 :

1) DB의 해당 열 이름은 대소 문자가 다릅니다. 사용자 ID은 단지 사용자 ID

2) 이러한 열은 존재하지 않을 수 있습니다.

3) 대신 대괄호, 중괄호를 사용하는 다음 DB는 PHP에 통과로

$rsArr [$i][0] = $row{'userId'}; //wrong 
$rsArr [$i] [0] = $row['userId']; //correct 

이 함께 while 루프를 교체하십시오, 각 레코드의 내용을 읽습니다 :

while ($row = mysql_fetch_array($results, MYSQL_ASSOC)) 
{ 
    echo '<pre>' . var_dump($row) . </pre>; 
} 

정확히 DB에서 되돌아 오는 것을 확인하십시오.