0

I am coding a game site. On this site, every question should be displayed to the user only once. Questions ID's are stored in a one field:

name of field in table: hidden_questions

hidden_questions values :1,2,3,17

I'm trying to get the IDs from the database and store them in an array using the implode function:

$q1= array($data['question_id']);
$q2= implode(',', $q1); // returns 1,2,3,4,5

And I want to display a non-repeat question using the following query:

$sql = "SELECT * FROM question WHERE question_id!=('".$q2."') LIMIT 1";

This code does not work and questions with the ID stored in the hidden_questions field are displayed. please guide me.

2
  • 1
    You probably want to say SELECT... WHERE... NOT IN() Commented Jan 11, 2019 at 7:35
  • !=('".$q2."') should be NOT IN ($q2) Commented Jan 11, 2019 at 7:37

1 Answer 1

0

I see that someone already wrote a comment about the solution, but I still write it down for you.

You are on the right way and I understand what you want to do. But, MySQL does not have something like != in this syntax.

Maybe you can try to use the NOT IN

$sql = "SELECT * FROM question WHERE question_id NOT IN (".$b.") LIMIT 1";

Also, why do you use the LIMIT 1? According to your explanation it looks like that you want to show multiple questions.

Disclaimer: I did not test the code, maybe you needto play some with the quotes. But this should be the solution

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.