0

id2 つの列を持つデータベースがあり、ユーザーがJoomla 2.5 コンポーネント (管理ビュー) のフォームで値を 送信したときに、title. これらのテーブル値をフィルター処理して一致する結果を表示する最良の方法は何ですか?titleid

ここのドキュメントを見ると:

http://docs.joomla.org/Selecting_data_using_JDatabase

Joomla の API を使用することで、省略形を使用してこの接続を作成できることがわかりました。私が試してみました:

$userSubmittedIDValue = $_GET["userSubmittedIDValue"];

// Get a db connection.
$db = JFactory::getDbo();

// Create a new query object.
$query = $db->getQuery(true);

$query
->select($db->quoteName(array('title')))
->from($db->quoteName('#__mycomponent_table'))
->where($db->quoteName('id') . ' = '. $db->quote('$userSubmittedIDValue'))

$results = $db->loadObjectList();

残念ながら、これにより次のエラーが発生します。

Parse error: syntax error, unexpected T_VARIABLE

次に、エラーは$results = $db->loadObjectList();

必要に応じて使用できるように、その値を取得して php 変数に適用するだけです。何か案は?


最初の回答のおかげで、セミコロンが足りないことに気づきました。私が今抱えている問題は、 を使用して配列から値を取得することforeachです。私は以下を追加しようとしました:

foreach (array($results) as $userSubmittedIDValue) {

echo $results;

}

しかし、これは単語を出力するだけArrayです。近づいていますが、まだ何かがずれています。

4

1 に答える 1

0

クエリの後にセミコロンがないため、このエラーが発生しています。

したがって、これを変更します。

->where($db->quoteName('id') . ' = '. $db->quote('$userSubmittedIDValue'))

これに:

->where($db->quoteName('id') . ' = '. $db->quote('$userSubmittedIDValue'));

;単に最後に注意してください

完了したら、foreachループを使用して結果を表示できます。

したがって、使用する最終的なコードは次のようになります。

$db = JFactory::getDBO();
$query = $db->getQuery(true);

$query->select('*')
->from('#__mycomponent_table')
->where($db->quoteName('id') . ' = '. $db->quote($userSubmittedIDValue));

$db->setQuery($query);    
$rows = $db->loadObjectList();

foreach ($rows as $row) {
    echo $row->title;
}

$userSubmittedIDValue上記のコードに示されているように、クエリで囲まれた一重引用符も削除する必要があることを前に完全に忘れていました。お役に立てれば

于 2013-10-21T19:29:27.187 に答える