I made a script and I added lot of data in a MYSQL Database. Then I made a few pages, now I want only some records to appear in pages. At the moment, what I do is, if I want record A B C D to appear on 4 pages, I put it 4 times, and I have a column PageId in Database. Other option is I make 4 columns in table and set 0 or 1 in those fields either to show or hide data on the page. Third option is I have a field PAGEID and put page numbers like 1,2,3 so that it shows that record on page 1,2,3 but if I do that, how do I select it ? For example, if I write code for page 2 and want to see which data has to be put there, what SQL statement do I put ? Will this work ? SELECT * from xyz WHERE PAGEID=2; Thanks Gautam
Why don't you just use paging, and display the number of records you want at a time? It's super easy with PHP, and you don't need to modify your MySQL database at all
That is not what I am trying to do. There are many records and many pages. A record can be on more than one page.
I'm not quite sure I understand what you're after... I'm assuming you have an article or something that can be many pages and you want to display potentially the same article on different pages/sections of your site. select * from xyz articles where articleid=1 and pageid=2 would work nicely. You could then have a showarticle.php page: showarticle.php?id=1 If you want to get really fancy use a keyword and mod rewrite. /article/keyword/pageX.html -> showarticle.php?keyword=blah&page=X
There are many articles and many pages. One article may appear on more than one page. Also, an article can only be limited to one page. So, these are choices I have Table - articles : Name, Content, PID TEST TEST 1 TEST TEST 2 TEST TEST 3 Then on Page 1, I have SELECT * from articles where PID=1; and so on. The disadvantage is I have to copy same article again and again to get it on different pages. Second choice. Table articles : Name, Content, PID1, PID2, PID3 TEST TEST 1 1 1 (1 = show, 0 = don't show) Then on Page 1, I have SELECT * from articles WHERE PID1=1; Third Option, Table Articles Name, Content, PID TEST TEST 1,2,3 If I do this, then SELECT * from articles WHERE PID=1 does not work. Which is best way to do it ? Thanks for your help.
I do not know if i understand you correctly but the way i see it is you need to call articles and consolidate them in a given page. I suggest that you create a separate table hold the PID's and a groupid/article id with an incremental id, so now you have 3 fields. sample: id groupid pid groupid will stand as your grouper of all of the pid's. you can now select * from groupertable where pid=1; You will need to edit your php or create a new page where you can assign a pid to a groupid where the groupid will be your page. so if page 1 is groupid 1, you can now select * from groupertable where pid=1 AND groupid=1; or you can use range queries like > or =< type of queries to echo 1,2,3 or jut play around qith your queries then. I hope this is what you meant, and also hope you understood my point hehe.
Suppose in a MySql Field PageId, the following data is there 1,2,5,10,15 & If I want to search that to see if 5 is there or not. If I Use SELECT * From TABLE where PageId = 5 , It won't work because it is not 5. If I use WHERE PageId Like 5%, it will create problem if I have 50+ Pages. So, basically , how do I search a string?
This will not work properly in mysql Instead you should write a query like this : SELECT * From TABLE where 5 in (PageId); PageId = 1,2,5,10,15 OR if PageId = '1','2','5','10','15' in the database then it should be like this: SELECT * From TABLE where '5' in (PageId);