Displaying records from database using enum


#1

Hi

I am struggling with some code and was wondering any someone could please help me. My php skills are VERY limited and only get stuff done by reading forums like this and watching YouTube videos :-[. I am enjoying learning so that is why I am sticking with it and not reverting back to html which I am pretty well accomplished at.

I have a phpMyAdmin database with 75 entries. My site has pagination setup where it shows 10 entries per page. I have setup one column in my database with enum and the values are 0, 1, 2, with the header ‘active’

My query code is:

[php]$sql = “SELECT * FROM videos WHERE active=‘1’ AND title LIKE ‘%$q%’ ORDER BY title”;[/php]

Now my pages are only showing entries from the database where the active enum column is showing 1 (45 entries / 5 pages) which is fine, however my pagination is still showing 3 blank pages because for some reason it is picking up the entries that have the enum 0 or 2. So even though the entries with 0 and 2 are not showing, the pagination is still picking them up.

My guess is because in my sql I have SELECT * which is selecting all the entries and only displaying the active=‘1’. But how do I not get it to select the entries that have 0 and 2?

I am sorry if I have not been able to clearly convey my problem but if anyone has understood my problem please could you point me in the right direction, thank you very much.

Robert


#2

The query that gets a COUNT(*) of the matching rows, which determines the total number of pages, must use the same WHERE … clause as the query that retrieves the data. You should build the WHERE … clause in a php variable, then use it in both queries.

You should also NOT put data values directly into an sql query statement. Instead, use a prepared query with a place-holder for each value, and supply the value(s) when the query gets executed.


#3

OP has already been answered on the other forum he cross posted on.