0

2 つの名前がリンクされたときに追跡する別のデータベースと結合された 1 つのデータベースから人々 の名前を表示するページがあります。すべてが正常に機能します。でも; ユーザーが入力ボックスを選択したときに、入力ボックスからデータまたは具体的には正しいユーザー名 ($id2u) と文字列 ($permissions) を転送できません。onclick イベントは、パーミッション文字列に従ってデータ フィールドを表示する必要があります。問題は、表示される情報が常に、ループを実行した DB 内の最後のユーザーであることです。チェックボックスがクリックされたときにonclickイベントを繰り越して情報を表示しようとしています。

データの表示を呼び出す関数です。

function display1(type) {document.getElementById("pi").style.display = "none"
 document.getElementById(type).style.display = ""}

これは、各人物の入力ボックスを生成した DB への呼び出しです。

$result1  = mysql_query('SELECT * FROM level1 LEFT JOIN linkreq ON level1.idnumber = linkreq.idme ORDER BY LEAST(lname, fname) DESC');
for ($i = mysql_num_rows($result1) - 1; $i >= 0; $i--){
    if (!mysql_data_seek($result1, $i)){echo "Cannot seek to row $i: " . mysql_error() . "\n";continue;}
    if (!($row = mysql_fetch_assoc($result1))) {continue;}
    if($_SESSION["idnumber"] == $row['id2u']){
    if($row['returnack'] == 0){$id2u = $row['idme']; echo'<font color="#FF6600">*</font>&nbsp;&nbsp;&nbsp;'.$row['title'].' '.$row['fname'].' '.$row['mname'].' '.$row['lname'].' '.$row['suffex'].'<br />';}
    else{
    $permissions  = $row['permissions'];
    parse_str($permissions);
    $permissions; 
    $id2u = $row['idme'].'&nbsp; ';
    echo '<input type="checkbox"  value = " .$id2u. " onClick="display1(\'pi\');">&nbsp;&nbsp;&nbsp;'
    .$row['title'].' '.$row['fname'].' '.$row['mname'].' '.$row['lname'].' '.$row['suffex'].'
    <br />';}}}

これは表示されるデータですがonclick(pi)、選択したユーザーではなく最後のユーザーを表示します。基本的に、$id2u 変数データが​​チェック ボックスから引き継がれる場合、これは機能します。$id2u = xxxxxx;クエリの直前に設定することで、手動で強制することができます。

$result2  = mysql_query('SELECT * FROM pi WHERE idnumber = "'.$id2u.'"');


for ($i = mysql_num_rows($result2) - 1; $i >= 0; $i--){
    if (!mysql_data_seek($result2, $i)){echo "Cannot seek to row $i: " . mysql_error() . "\n";continue;}
    if (!($row = mysql_fetch_assoc($result2))) {continue;}
    echo '<br>row #'.$row['idnumber'];
    if($id2u == $row['idnumber']){echo'...// PRINTS OUT DATA //...}}

</span>

これはmySQLiにあるはずですが、今のところは、後で変換するために機能させる必要があります。

4

1 に答える 1

0

while()ループを使ってみませんか?

$query = mysql_query("...");
while($row = mysql_fetch_array($query))
{
   ...
}

これは私にとっては常にうまくいきます:)

于 2013-02-13T10:11:28.283 に答える