1

誰かが私を助けてくれるのではないかと思います。

以下のコードを使用して、のリストをリストするテーブルを作成していlocation recordsますcurrent user

<form name="locationsconsole" id="locationsconsole" method="post" action="locationsaction.php">
            <table width="865">
                    <tr>
                        <th width="22"></th>
                        <th width="236"><div align="left">Location Name</div></th>
                        <th width="244"><div align="left">Location Address</div></th>
                        <th width="71"></th>                                
                    </tr>   

                    <?php


                    $query = "SELECT  l.*, COUNT(f.locationid) totalfinds FROM detectinglocations l LEFT JOIN finds f ON f.locationid = l.locationid WHERE l.userid = '$idnum' GROUP BY l.locationname";
                    $result = mysql_query($query) or die('error');

                    while($obj=mysql_fetch_object($result))
                    {

                    ?>

                    <tr>
                        <td><input type="hidden" name="lid" value="<?php echo $obj->locationid;?>"/></td>
                        <td><?php echo $obj->locationname;?></td>
                    <td><?php echo $obj->returnedaddress;?></td>
                        <td><input name="type" type="submit" value="View Details"/></td>
                    </tr>
                                <?php
                                    }   

                                ?>


              </table>
      </form>

各行に、ユーザーを別のページに移動するためのボタンがあります。このボタンを使用して、locationsaction.php以下にリストします。

<?php 
session_start();
$_SESSION['lid'] = $_POST['lid'];
if (isset($_POST['type'])) {
    $urls = array(
        'View Details' => 'viewlocation.php'
    );
    $url = $urls[$_POST['type']];
    header("Location: " . $url);
}
?>

現在location、テーブルには正しい3つのレコードがあり、ボタンをクリックすると、ユーザーは正しい画面に移動します。

ただし、私が抱えている問題は、ボタンをクリックした行に関係なく、取得されたレコードが常に最後のlocationレコードに関連していることです。

私はかなり長い間これを分類しようとしてきました、そして私は多くのページの書き直しにもかかわらず解決策を見つけることができませんでした。

誰かがこれを見て、どこが間違っているのか教えてくれないかと思っただけです。

4

2 に答える 2

1

インターネットでこれを研究するのにかなりの時間を費やした後、私はここで解決策を見つけました。その後、次のスクリプトのニーズに合わせてこれを編集することができました。

<?php

                    $query = "SELECT  l.*, COUNT(f.locationid) totalfinds FROM detectinglocations l LEFT JOIN finds f ON f.locationid = l.locationid WHERE l.userid = '$idnum' GROUP BY l.locationname";
                    $result = mysql_query($query) or die('error');
                    $row = mysql_fetch_assoc($result);              
                    extract($row); 

                    /* Display Users in a table */ 
                    echo "<table cellspacing='5' border='0' cellpadding='0' width=95%>"; 
                    echo "<tr><td colspan='0' style='text-align: Left'></td></tr>\n"; 
                    echo "<tr><td style='font-weight: bold; 
                        font-size: 1.0em'>Location</td><td style='font-weight: bold; 
                        font-size: 1.0em'>Address</td><td style='font-weight: bold;  
                        font-size: 1.0em'>Finds Made</td></tr>\n";
                    mysql_data_seek($result, 0);

                    while($row = mysql_fetch_array($result))
                    {


                    /* display row for each user */ 
                        echo "<tr>\n"; 
                        $theID = $row['locationid']; 
                        echo " <td>{$row['locationname']}</td>\n"; 
                        echo " <td>{$row['returnedaddress']}</td>\n"; 
                        echo " <td>{$row['totalfinds']}</td>\n"; 
                        echo " <td><form action= locationsaction.php  method= 'post'><input type='hidden' name='lid' value=$theID />
                                    <input type= 'submit' name= 'type' value= 'View/Amend Location Details'/><input type= 'submit' name= 'type' value= 'Add/View Find Images'/><input type= 'submit' name= 'type' value= 'View Location Finds'/><input type= 'submit' name= 'type' value= 'View Location Finds'/></form></td>\n"; 
                        echo "</tr>\n"; 


                    }
                    ?>
于 2012-07-08T10:48:07.563 に答える
0

クエリを確認してください。クエリをハードコーディングしたので

$query = "SELECT  l.*, COUNT(f.locationid) totalfinds FROM detectinglocations l LEFT JOIN finds f ON f.locationid = l.locationid WHERE l.userid = '27' GROUP BY l.locationname";

ロケーションIDとユーザーIDのように。それらが可変として振る舞うのを私は見ることができないので、これは仮定です。むしろそれらは文字列です。見てください。

于 2012-07-06T13:57:03.803 に答える