0

urldecode以前のサイトから会員IDを受け取っていました。URL に正しい ID が表示されていますが、データベースから情報を取得できません。

members.php:

   <?php


$query = "SELECT name, memberID FROM members";

if(!$result = $db->query($query)){
    die('There was an error running your query[' . $db->error . ']');
}

while($row = $result->fetch_assoc()){
  printf ('<li><a href="profiles.php?memberID=' . urlencode($row['memberID']) . '">' . $row['name'] . '</a></li>');

}
?>

プロファイル.php:

  <?php

$id = isset($_GET['memberID']);

$query = "SELECT * FROM members WHERE memberID = '".$id."'";

if ($result = $db->query($query)) {

while ($row = $result->fetch_assoc()){
    printf("%s (%s)\n", $row["memberID"], $row['name']);
}
}
 var_dump($query);
?>

私が得るのは空白の画面だけです。

4

4 に答える 4

1

コードにいくつかの問題が見つかりました:

members.php

while($row = $result->fetch_assoc()){
  printf ('<li><a href="profiles.php?memberID=' . urlencode($row['memberID']) . '">' . $row['name'] . '</a></li>');

}

ここでは、文字列の形式printfの最初の引数を持つ関数を使用しています。以下のステートメントでそれを修正してください:echo

while($row = $result->fetch_assoc()){
  echo '<li><a href="profiles.php?memberID=' . urlencode($row['memberID']) . '">' . $row['name'] . '</a></li>';

}

プロファイル.php

$id = isset($_GET['memberID']);

ここでは、$idwith isset()関数の戻り値を設定しています。代わりに、GETパラメータの値を次のように設定する必要があります。

if(isset($_GET['memberID']))    $id = $_GET['memberID'];

それが機能しているかどうか今すぐ確認してください。

于 2013-02-07T04:59:00.843 に答える
1

memberIdvs.の正しい大文字を使用していることを確認してくださいmemberID。これはとても重要です。

GET/POST から取得した値を に渡さないでくださいurldecode彼らはすでにです

于 2013-02-07T03:51:20.273 に答える
0

コードに基づいて次のことを試して、結果をお知らせください。

<?php
$id = isset($_GET['memberID']) ? $_GET['memberID'] : 0;
if($id > 0){
    $query = "SELECT * FROM members WHERE memberID = '".$id."'";
    $result = $db->query($query);
    if($result){
        echo "Rows found: " + $result->num_rows;
    } else {
        echo "No rows found";
    }
} else {
    echo "memberID is 0";
}
?>
于 2013-02-07T05:13:10.233 に答える
-1

memberID はデータベースの int フィールドですか、それとも文字列フィールドですか? int フィールドの場合は、profiles.php のクエリで一重引用符を削除してください。

于 2013-02-07T03:51:08.603 に答える