hello, i have table called news and columns called news_id, news_name and newS_data. i added alot of news and deleted alot of them too. cauze of that i got alot of them which arent in arranged numbers inside the unique column news_id so i wanna display the first 3 news from the last 10 ,beside i wanna handle each data alone in variable (iam no gonna display the 3 in list with while ) i mean i wanna got the 3 news like that $first_news_name = ..... $first_news_data = ... $second_news_name = ..... $second_news_data = ... $third_news_name = ..... $third_news_data = ... so if it was arranged number with no delete , i would make it like that $result = mysql_query("SELECT * FROM news ORDER BY news_id DESC "); if (mysql_num_rows($result)) { $row = mysql_fetch_array($result); $the_last_id = $row['$news_id']; } $before_10_news = $the_last_id-10; $before_9_news = $the_last_id-9; $before_8_news = $the_last_id-9; $result2 = mysql_query("SELECT * FROM news WHERE news_id = '$before_10_news'"); if (mysql_num_rows($result2)) { $row = mysql_fetch_array($result2); $first_news_name = $row['news_name']; $first_news_data = $row['news_data']; } PHP: and the smame way for $second_news and third_news but now the numbers arent in arrange , so please help me to display them thanks
I don't really understand what you're after here. Don't you just want the last three items? Is the number 10 relevant or just a red herring? $sql = "select news_name, news_data from news order by news_id desc limit 3"; $st = mysql_query($sql) or die(mysql_error()); $stupid_names = array('first', 'second', 'third'); $stupid_name_index = 0; while ($row = mysql_fetch_assoc($st)) { ${"{$stupid_names[$stupid_name_index]}_news_name"} = $row['news_name']; ${"{$stupid_names[$stupid_name_index]}_news_data"} = $row['news_data']; $stupid_name_index++; } Code (markup): That oughta do it.