1

MySQL に PHP コードを追加するのに助けが必要です。コードは次のとおりです。

$query_qPosts = "SELECT * FROM front_news WHERE draft = 1 AND department_id = 1 OR     department_id = 0 ORDER BY id DESC";

「department_id = 1」と表示されているところは、1 を に置き換える必要があり<?php echo $id ?>ます。

4

6 に答える 6

3
$query_qPosts = "SELECT * FROM front_news WHERE draft = 1 AND department_id = $id OR     department_id = $id ORDER BY id DESC";

PHP では、変数を二重引用符で囲むと、変数が文字列の一部になります。例えば

$foo = 'foo';
$echo = "I am $foo";
----> I am foo

一重引用符の場合は、それらを連結する必要があります。例

$foo = 'foo';
$echo = 'I am ' . $foo;
----> I am foo

どちらを使用するかに関しては、それらを使用しているコンテキストに依存し、通常は個人的な好みに依存します. 一重引用符は、二重引用符よりも高速に実行されます。

于 2012-12-11T05:08:58.643 に答える
1

を使用するmysqliと、このプロセスが非常に簡単になります。

$db = new mysqli("localhost", "user", "password", "mydatabase");
$query_qPosts = $db->prepare("SELECT * FROM front_news WHERE draft = 1 AND department_id = ? OR department_id = 0 ORDER BY id DESC")
$id = 1;
$query_qPosts->bind_param("i",$id)
if (!$query_qPosts->execute()) {
    echo "There was an error (" . $query_qPosts->errno . ") " . $query_qPosts->error;
}
于 2012-12-11T05:15:21.467 に答える
0
$query_qPosts = "SELECT * FROM front_news WHERE draft = 1 AND department_id = 1 OR   department_id = ".$id." ORDER BY id DESC";
于 2012-12-11T05:14:10.687 に答える
0

試す

"SELECT * 
 FROM front_news 
 WHERE draft = 1 
    AND department_id = ".<?php echo (int)$id?>." 
    OR  department_id = 0 
 ORDER BY id DESC";
于 2012-12-11T05:15:56.600 に答える
0

SQL クエリで "AND" と "OR" を一緒に使用する場合は、括弧でグループ化する必要があります。そうしないと、結果が予測不能になるか、クエリが失敗します。

部署が 0 または 1 で、下書きが 1 でなければならない場合は、次のようにします。

"SELECT * FROM front_news WHERE draft = 1 AND (department_id = 1 OR department_id = 0) ORDER BY id DESC"

または、下書きが 1 である必要があり、部門が 1 または部門が 0 でなければならない場合は、これを試してください。

"SELECT * FROM front_news WHERE (draft = 1 AND department_id = 1) OR department_id = 0 ORDER BY id DESC"

どちらをやりたいかわかりません。

コード内のすべての「$」が変数として実行されるように、二重引用符を使用しています。これを確実に行うには、"{$id}" が必要な場合は中かっこで囲みます。

于 2012-12-11T05:11:36.780 に答える
0

このコードを試してください:

$query_qPosts = "SELECT * FROM front_news WHERE draft = 1 AND department_id = $id OR department_id = 0 ORDER BY id DESC";

$id が数値であり、null でないことを確認してください

于 2012-12-11T06:18:14.053 に答える