0

他の人の提案で更新されましたが、まだ行き詰まっているようです。

ここでは、このphpコードを使用して、IDを使用してデータベースからの情報を表示しています。メインページに次のようなリンクを作成しました。

<h1><a href="fetch.php?id=<?php echo $row_getDisplay['post_id']; ?>"><?php echo $row_getDisplay['title']; ?></a></a></h1>

彼らが記事のタイトルをクリックすると、私がfetch.phpという名前の私のphpフィールドに移動し、以下のコードがそこにあります。私は他の誰かの仕事を中心にこれを構築しました。何らかの理由で、最初の「else」ステートメントを渡すことができません。そのため、「有効な場所を選択する必要があります」というメッセージが表示され続けます。phpはかなり新しいので、コードが失敗する理由がよくわかりません。

<?php require_once('Connections/XXXXXX.php'); ?>
<?php 
if (isset($_GET['id']) ==  false) // check if id has been set 
{ 
echo "You must select a location"; // if not, display this error 
exit; 
} else { 
$id = (int) $_GET['id']; 
if (is_numeric($id) == false) 
**{ 
echo "You must select a valid location."; 
} else {** 

mysql_select_db($database_XXXXXX, $XXXXXX);
$query = MYSQL_QUERY("SELECT * FROM news WHERE post_id ");

if (MYSQL_NUM_ROWS($query) == "1")

{ 
$fetch = MYSQL_FETCH_ARRAY($query); // set $fetch to have the values from the table 
echo "Title: " . $fetch['title'] . "<BR>"; // output the info 
echo "Blog: " . $fetch['blog_entry'] . "<BR>"; // etc... 
echo "Author: " . $fetch['author'] . "<BR>"; // etc... 
} else { 
echo "No match in database found."; // if no match is found, display this error 
} 
} 
}

どんな助けでも大歓迎です。あなたが私にとってより良い解決策を見つけることができれば、それは素晴らしいことです。

4

3 に答える 3

2

非推奨のものを使用$HTTP_GET_VARSしないでください。オンにしない限り、データは入力されません。$_GET代わりに使用してください。

if (isset($_GET['id']) == false)

于 2012-07-28T16:28:53.627 に答える
0

ifステートメントに使用$_GETします。

if (isset($_GET['id']) ==  false) 

$_GETまた、現在は文字列であるため、値を整数に変換する必要があります。

その直後に、上記のifステートメントで、次のように入力しelseます。

 $id = (int) $_GET['id']; 

そうすればあなたis_numeric()はきちんと働くでしょう。

于 2012-07-28T16:29:23.080 に答える
0

これを試して;

<?php
require_once('Connections/XXXXXX.php');

if (isset($_GET['id'])) // check if id has been set
 {
$id = $_GET['id'];
if (is_numeric($id) == false)
{
echo "You must select a valid location.";
} else {

mysql_select_db($database_XXXXXX, $XXXXXX);
$query = MYSQL_QUERY("SELECT * FROM news WHERE locationid = 'news.post_id' ");

if (MYSQL_NUM_ROWS($query) == "1")

{
$fetch = MYSQL_FETCH_ARRAY($query); // set $fetch to have the values from the table
echo "Title: " . $fetch['title'] . "<BR>"; // output the info
echo "Blog: " . $fetch['blog_entry'] . "<BR>"; // etc...
echo "Author: " . $fetch['author'] . "<BR>"; // etc...
} else {
echo "No match in database found."; // if no match is found, display this error
}
}
}
else{
echo "You must select a location"; // if not, display this error
exit;
}
?>

また、 について明確にする必要がありnews.post_idます。どこからこれを取得していますか?

于 2012-07-28T17:33:11.803 に答える