2011-07-20 18 views
0

私は自分のPHPページで内部結合を使用しました。問題は、私はほぼ6行をフェッチするMySQLのクエリブラウザでクエリを発生させるときです。すべて正しいですが、PHPページで同じものを使用すると、1行しか取得されません。それはあなたがfetch_arrayを呼び出して維持する必要があります。..内部結合の問題

while($row=mysql_fetch_array($result1)) 
{ 
while ($resultpoet = mysql_fetch_array($poet)) { 
    ?> 
    <tr> 
     <td><?= $iCounter?> 
      . </td> 
     <td><? if(($row['roman']=="")&&($row['hindi']=="")) { ?> 
      <?=$row['name'] ?> 
      <? } else { ?> 
      <a href="sview.php?title=<?=$row['sid'] ?>"> 
      <?=$row['name'] ?> 
      </a> 
      <? } ?></td> 
     <td width="216"><? 

if($resultpoet['pstatus']!='u') 
print '<a href="pview.php?title='.$resultpoet['pname'].'">'.$resultpoet['pname'].'</a>'; 
else 
print $resultpoet['pname']; 

      ?> 



      </td> 
     <td width="135"><?=$row['category'] ?></td> 
     <td width="67"><a href="songtitle_action.php?title=<?=$row['sid'] ?>"> Edit </a> 
      <input name="check[]" type="checkbox" value="<?=$row[s_id]?>" id="checkbox_<?=$row[sid]?>"></td> 
     <td width="75"><? if(($row['roman']=="")&&($row['hindi']=="")) { ?> 
      <a href="song_add_lyrics.php?title=<?=$row['sid'] ?>"> Add Lyrics</a> 
      <? } ?></td> 
    </tr> 
    <? } 
      $iCounter++; 
     }?> 

答えて

2

あなたは一度だけmysql_fetch_arrayを呼び出しているので、あなただけの1行を取得します。

代わりにwhileを使用して繰り返し、クエリによって返された各行に対して出力を行う必要があります。

$poet= mysql_query("SELECT p.name as pname, p.status as pstatus from poet p INNER JOIN song s ON p.pid=s.pid"); 
while ($resultpoet= mysql_fetch_array($poet)) { 
    if($resultpoet['pstatus']=='u') 
    print '<a href="pview.php?title='.$resultpoet['pname'].'">'.$resultpoet['pname'].'</a>'; 
    else 
    print $resultpoet['pname']; 
} 

チェックアウトthe documentation for mysql_fetch_array

は、サンプルコードは、この原理に詳しく説明:これはかなり単純化した例です。

+0

はい私はそれを忘れています...それを修正してください.. 1時間以来困惑しています。 – Aditii

+0

私は他のwhileループでこれを使用していますので、outerがwhileをフェッチするたびに、その特定の列またはタプルのすべての列の値を取り出します。 2つのwhileループを管理するにはどうすればよいですか? – Aditii

+0

whileループをネストできます。異なる変数名を使用していることを確認してください。 :) –

2

一つの値だけです。

while ($result = mysql_fetch_array($poet)) 
{ 
    /* do stuff with $result */ 
}