3

これら 2 つは、2 つの異なるデータベースからデータを引き出します。最初のスクリプトを 2 度目に繰り返すまで (複数の記事のコメント数を取得するため)、2 番目のスクリプト (vistis に関するデータを記事に引き出して降順で並べ替える) が停止するまでは問題ありません。動作しています(エラーなし、何もありません。出力が提供されないだけです)。私は (まだ) PHP の専門家ではないので、この状況で何が問題なのかわかりません。たぶん、あなたの何人かは、それらがそのように干渉する明らかな欠陥に気付くでしょうか?

最初のスクリプト (コメント数)。明確にするために、「定義」を使用しません。2回目に差分に使用します。論文。最初に動作する場合にのみ必要です。):

<?php
$id = "1"; //The ID of the page. You can get this from Manage -> Pages.

define('IN_COMMENTICS', '1');
require ($_SERVER['DOCUMENT_ROOT'].'comments/includes/db/connect.php');

$query = mysql_query("SELECT * FROM `".$cmtx_mysql_table_prefix."comments` WHERE is_approved = '1' AND page_id = '$id'");
$total = mysql_num_rows($query);

echo $total;
?>

2 番目のスクリプト (訪問数をカウント):

<?php 

$sql = "SELECT pagename, hits, title FROM counts ORDER BY hits DESC LIMIT 10"; 
$res = mysql_query($sql); 
if(!$res) { 
// oops - exit?  
} 
while(list($page,$hits,$title) = mysql_fetch_row($res)) { 
 echo "<li><a href='$page'>$title</a> $hits</li>"; 
} 

?>
4

1 に答える 1

0

私が見ることができた唯一のことは、requireデータベース初期化ファイルを含めるために関数を使用していて、その実行が2回行われたことです。これにより、問題が発生し、この問題が発生します。

おそらく、データベース初期化ファイルを複数回ロードしないように注意するrequire_once関数の使用を検討してください。

結論として、私は次のことを行うことをお勧めします

これを置き換えます:

require ($_SERVER['DOCUMENT_ROOT'].'comments/includes/db/connect.php');

これで:

require_once ($_SERVER['DOCUMENT_ROOT'].'comments/includes/db/connect.php');
于 2013-03-09T21:20:11.267 に答える