私は、メッセージングシステムを構築するためにMySQLを使用しています。これまでのところすべてが美しく動作しますが、私はある特定のことをする必要があります。JSONと同じMYSQL列を2回出力する方法
テーブルの1つには、 'sender_id'という列があります。
私はこの 'sender_id'を受け取り、ユーザーのアバターを取得し、返されたJSON応答のリンクを出力する関数を通して実行します。
私はこのリンクが必要です...しかし、私はjenderでそれに対してテストできるように、 'sender_id'自体を数字として取り出すこともできる必要があります。
私は最終的に元の 'sender_id'が複製され、 '前'という種類の仮想列に入れられました。それは私の 'get avatar'関数によって処理されました。
私は、クエリなどの後に出力にJSONを使用していたコードは次のとおりです。 -
/*
* Output
*/
$output = array(
"sEcho" => intval($_GET['sEcho']),
"iTotalRecords" => $iTotal,
"iTotalDisplayRecords" => $iFilteredTotal,
"aaData" => array()
);
while ($aRow = mysql_fetch_array($rResult))
{
$row = array();
for ($i=0 ; $i<count($aColumns) ; $i++)
{
if ($aColumns[$i] == "version")
{
/* Special output formatting for 'version' column */
$row[] = ($aRow[ $aColumns[$i] ]=="0") ? '-' : $aRow[ $aColumns[$i] ];
}
if ($aColumns[$i] == "sender_id")
{
/* Special output to render Avatar by user id */
$row[] = commentplayer_get_user_avatar($aRow[ $aColumns[$i] ]);
}
else if ($aColumns[$i] == "message")
{
/* General output */
$row[] = strip_slashes($aRow[ $aColumns[$i] ]);
}
else if ($aColumns[$i] != ' ')
{
/* General output */
$row[] = $aRow[ $aColumns[$i] ];
}
}
$output['aaData'][] = $row;
}
echo json_encode($output);
?>
$ aColumnsは明らかに「sender_idを」先に定義された列の配列であり、これらの一つであります。あなたが見ることができるように、私はsender_idが実際のsender_idではなくアバターリンクとして再実行されるように条件文を入れました。だから、私はちょうど別の列に、実際のsender_idだけでなく、アバターを引き出すことができることをsumariseにする必要があります。
アイデア?
私はこのサーバー側の操作を行うことができれば、それははるかに効率的であるowever私は実際には、DOM内のテキストではなく、ユーザーIDを比較することによって、jQueryを使って私の問題への解決策を発見しました。誰かが正しい方向に私を指すことができるなら、それは素晴らしいだろう。 – gordyr
あなたのコメントは私を悲しくします。 – AlienWebguy
ところで、私は '$ aColumns [$ i]!= '' ... 'の実際の差異を実際に低くする確率を見積もっています。 –