Jump to content

Retreiving news - simplier way?


markspec87

Recommended Posts

I currently use the code
[code]<? define ('DB_USER', 'hidden');
define ('DB_PASSWORD', 'hidden');
define ('DB_HOST', 'hidden');
define ('DB_NAME', 'hidden');

$dbc = @mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) or die('Failure: ' . mysql_error() );
mysql_select_db(DB_NAME, $dbc) or die ('Could not select database: ' . mysql_error() );

$query="SELECT * FROM news ORDER BY Datum";
$result=mysql_query($query);

$num=mysql_numrows($result);


$i=0;
while ($i < $num) {

$author=mysql_result($result,$i,"author");
$text=mysql_result($result,$i,"text");
$datum=mysql_result($result,$i,"Datum");
$readmore=mysql_result($result,$i,"readmore");
$image=mysql_result($result,$i,"image");
$Title=mysql_result($result,$i,"title");
$summary=mysql_result($result,$i,"summary");
$i++;
}

$dbc = @mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) or die('Failure: ' . mysql_error() );
mysql_select_db(DB_NAME, $dbc) or die ('Could not select database: ' . mysql_error() );

$query="SELECT * FROM news ORDER BY datum DESC LIMIT 1,1";
$result=mysql_query($query);
$rw = mysql_fetch_assoc($result);
$author2=$rw['author'];
$text2=$rw['text'];
$datum2=$rw['Datum'];
$readmore2=$rw['readmore'];
$image2=$rw['image'];
$newstitle2=$rw['title'];
$summary2=$rw['summary']; ?>[/code]

To retrieve the most recent and second most recent fields in news. Then i just call the variables for display on my news page (i have another page where news is submitted).

Im wondering if theres a simplier or more efficient way to do this? on some pages i have 5 news articles shown and i simply repeat the above but for 5 rows, surely theres a better way?

any help would be appreciated :)
Link to comment
Share on other sites

yes actually, but it would be alot different than your doing.  Instead of setting variables like author1 author2 etc, try outputting text 'as you go':  for ex.
[code]
$result=@mysql_query("SELECT * FROM news ORDER BY Datum limit 2"); //limit 2 means you only want the 2 most recent

while($row=mysql_fetch_array($result))                                                //get the data 1 news post at a time
{

now you can go ahead and display the news topic.  $row[0] would be the first table cell in your db table.  so
say you have your table as  author, text, datum, readmore, image, title, summary then $row[0] is author, $row[3] is
readmore and so on.  for example:

        echo "Author of article: $row[0]";  //displays the author we got from our query
}
[/code]

The while statement will repeat as long as the array is, in this case twice.

Hope it helps.
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.