0

私はPHPを初めて使用するので、ごちゃごちゃしてください。これは、私のような誰かが変更するための非常に複雑なクエリです。

以下のクエリを参照してください。現在、すべての結果が$row['Post']に表示されています。代わりに、次のようなことができるようにしたいと思います。

$ somerow = $ row ['some_row']; $ somerow2 = $ row ['some_row2'];

そして、上記で使用した$variablesを使用してどこでも使用できるようになります。

以下でこれを使用してみましたが、機能しませんでした。

if($rows == 0)
{
print("");

}
elseif($rows > 0)
{
while($row = mysql_fetch_array($query))
{

$postid = htmlspecialchars($row['post_id']);
$postname = htmlspecialchars($row['post_name']);


print("$postname and the id is $postid");
}

}

どうすればこれを達成できますか?

完全なクエリ:

$denied = "Denied";
$userid = Drawn from db for user viewing;

$sql = "SELECT  concat(  (select client_name from user_accounts where 
User_id = tv.User_id), ' commanded ' , title_1  ,' on ', CAST(other_date AS 
CHAR(10)) ) AS Post FROM client_visits tv where User_id in (select contact_id 
from contacts where User_id = '$userid' ) and user_allowed = '$denied'
or User_id in (select User_id from contacts where contact_id = '$userid')
and user_allowed = '$denied'
union
SELECT  concat(  (select client_name from user_accounts where User_id 
= tv.User_id), ' commanded ' , title_2  ,' on ', CAST(other_date AS CHAR(10)) )
AS Post FROM client_notes tv where User_id in (select contact_id from 
contacts where User_id = '$userid' ) and user_allowed = '$denied'
or User_id in (select User_id from contacts where contact_id = '$userid')
and user_allowed = '$denied'
union
SELECT  concat(  (select client_name from user_accounts where User_id 
= tv.User_id), ' commanded ' , title_3  ,' on ', CAST(other_date AS CHAR(10)) )
AS Post FROM client_media tv where User_id in (select contact_id 
from contacts where User_id = '$userid' ) and user_allowed = '$denied'
or User_id in (select User_id from contacts where contact_id = '$userid')
and user_allowed = '$denied'
union
SELECT  concat(  (select client_name from user_accounts where User_id 
= tv.User_id), ' commanded ' , title_4  ,' on ', CAST(other_date AS CHAR(10)) )
AS Post FROM client_stats tv where User_id in (select contact_id from 
contacts where User_id = '$userid' ) and user_allowed = '$denied'
or User_id in (select User_id from contacts where contact_id = '$userid')
and user_allowed = '$denied'
union
SELECT  concat(  (select client_name from user_accounts where User_id 
= tv.User_id), ' commanded ' , title_5 ,' on ', CAST(other_date AS CHAR(10)) )
AS Post FROM client_current_list  tv
where User_id in (select contact_id from contacts where User_id = '$userid' )
and user_allowed = '$denied'
or User_id in (select User_id from contacts where contact_id = '$userid')
and user_allowed = '$denied'
union
SELECT  concat(  (select client_name from user_accounts where User_id 
= tv.User_id), ' commanded ' , title_6 ,' on ', CAST(other_date AS CHAR(10)) )
AS Post FROM client_past  tv
where User_id in (select contact_id from contacts where User_id = '$userid' )
and user_allowed = '$denied'
or User_id in (select User_id from contacts where contact_id = '$userid')
and user_allowed = '$denied'
union
SELECT  concat(  (select client_name from user_accounts where User_id 
= tv.User_id), ' commanded ' , title_7  ,' on ', CAST(other_date AS CHAR(10)) )
AS Post FROM  client_listers  tv
where User_id in (select contact_id from contacts where User_id = '$userid' )
and user_allowed = '$denied'
or User_id in (select User_id from contacts where contact_id = '$userid')
and user_allowed = '$denied'
union
SELECT  concat(  (select client_name from user_accounts where User_id 
= tv.User_id), ' commanded ' , title_8  ,' on ', CAST(other_date AS CHAR(10)) )
AS Post FROM    client_events  tv
where User_id in (select contact_id from contacts where User_id = '$userid' )
and user_allowed = '$denied'
or User_id in (select User_id from contacts where contact_id = '$userid')
and user_allowed = '$denied'
union
SELECT  concat(  (select client_name from user_accounts where User_id 
= tv.User_id), ' commanded ' , title_9  ,' on ', CAST(other_date AS CHAR(10)) )
AS Post FROM    client_admissions  tv
where User_id in (select contact_id from contacts where User_id = '$userid' )
and user_allowed = '$denied'
or User_id in (select User_id from contacts where contact_id = '$userid')
and user_allowed = '$denied'
union
SELECT  concat(  (select client_name from user_accounts where User_id 
= tv.User_id), ' commanded ' , title_10  ,' on ', CAST(other_date AS CHAR(10)) )
AS Post FROM    client_immu  tv
where User_id in (select contact_id from contacts where User_id = '$userid' )
and user_allowed = '$denied'
or User_id in (select User_id from contacts where contact_id = '$userid')
and user_allowed = '$denied'";

$query = mysql_query($sql) or die ("Error: ".mysql_error());

$result = mysql_query($sql);

if ($result == "")
{
echo "";
}
echo "";


$rows = mysql_num_rows($result);

if($rows == 0)
{
print("");

}
elseif($rows > 0)
{
while($row = mysql_fetch_array($query))
{

print($row['Post']);
}
}
4

1 に答える 1

2

各行を配列に格納し、後で使用する行を選択することができます。

if($rows == 0)
{
    print("I have no rows!");
}
else
{
   $allrows = array();
   while($row = mysql_fetch_array($query))
   {
       $allrows[] = $row;
   }
   $row1 = $allrows[0];
   $row2 = $allrows[1];
   echo $row1['Post']; // Print out first row
   echo $row2['Post']; // Print out second row
   var_dump($allrows); // Print out all the rows and the structure of this array
}

その後、これらの変数をどこでも使用したい場合は、それらをグローバルにする必要がありますが、そのようなことや一般的なことについては、グローバル変数を使用しないことをお勧めします。

于 2012-05-11T21:56:39.017 に答える