2015-07-19 3 views
1

У меня возникают проблемы с попыткой выяснить, почему мой $query2 не работает. Я просматривал этот код снова и снова, но не могу понять.Почему мой запрос SELECT не работает

Это строка коды, неисправная ..

$query2 = mysqli_query($con,"SELECT * FROM forum_topics WHERE category-id='".$cid."' ORDER BY topic_reply_date DESC") 
    or die ("Query2 failed: %s\n".($query2->error)); 

Кто-нибудь увидеть что-то, что я отсутствующее что бы сделать это не получится?

$user = new User(); 
if(!$user->isLoggedIn()) { 
    Redirect::to('index.php'); 
} 
$logged = $user->isLoggedIn(); 
$con = mysqli_connect("localhost", "root", "", "db"); 
$cid = $_GET['cid']; 
$userid = (isset($_SESSION['user']) ? $_SESSION['user'] : ""); 

if(isset($_SESSION['user'])) { 
    $logged = " | <a href='forum_create_topic.php?cid=".$cid."'>Create a new topic</a>"; 
} 
$query = mysqli_query($con,"SELECT * FROM forum_categories WHERE id='".$cid."' LIMIT 1"); 
$numrows = mysqli_num_rows($query); 
if($numrows == 1){ 
    $query2 = mysqli_query($con,"SELECT * FROM forum_topics WHERE category-id='".$cid."' ORDER BY topic_reply_date DESC") 
    or die ("Query2 failed: %s\n".($query2->error)); 
    $numrows2 = mysqli_num_rows($query2); 
+0

Что означает "провал" означает? –

+0

Я получаю сообщение об ошибке ... 'Query2 failed:% s' на загрузке страницы. – Becky

+0

Сделайте «или умрите (mysqli_error ($ con))« вместо »или die (« Ошибка Query2:% s \ n ». ($ Query2-> error)); и вы увидите сообщение об ошибке. То, как вы хотите отображать его, ничего не покажет. –

ответ

7

category-id необходимо сбежать.

Используйте обратные выходы `, чтобы избежать имени столбца следующим образом: `category-id`. Т.е .:

WHERE `category-id` ='".$cid."' 

MySQL переводит, что в качестве «category МИНУС id», думая, что вы хотите сделать математику.

Ваш SQL должен выглядеть следующим образом:

$query2 = mysqli_query($con,"SELECT * FROM forum_topics WHERE `category-id`='".$cid."' ORDER BY topic_reply_date DESC") 
or die ("Query2 failed: %s\n".($query2->error)); 
+0

Что вы подразумеваете под этим? – Becky

+0

только что обновил мой ответ (имел некоторые проблемы, так как StackOverflow конвертирует тики в код Markdown) –

+0

Все еще получаю ошибку после ее изменения. – Becky

Смежные вопросы