سلام من یک سایت خبری طراحی کردم می خوام مو قعی که کاربر داره یک خبر رو می خونه بتونه به خبر بعد از اون و قبل از اون بره مثل سایتهای خبری .
به این شکل که دو تا لینک بذارم خبر بعدی و خبر قبلی
لطفا راهنماییم کنید![]()
سلام من یک سایت خبری طراحی کردم می خوام مو قعی که کاربر داره یک خبر رو می خونه بتونه به خبر بعد از اون و قبل از اون بره مثل سایتهای خبری .
به این شکل که دو تا لینک بذارم خبر بعدی و خبر قبلی
لطفا راهنماییم کنید![]()
خبرتون حتما یه فیلد ID داره
یکی از ID کم کن یکی هم بهش اضافه کن
میشه یک مثال یزنید متوجه نشدم اینکه چطور اضافه و نمایش بدم . مرسی
این روش به مشکل میخوره.یکی از ID کم کن یکی هم بهش اضافه کن
چون شاید بعضی از خبرها پاک شده باشن و اختلاف آید دو خبر متوالی در جدول بانک بیش از یک باشه.
به نظر من هنگام نمایش اخبار یک شمارنده درست کن که به ازای هر واکشی سطر از جدول یکی اضافه بشه.بعد یه تابع بنویس که وقتی روی هر سطر کلیک می کنی شماره ی اون سطر رو(شماره ی تایمر مربوط به اون سطر و نه آید سطر) در یه متغیر سراسری پر کنه.
حالا هر وقت که روی لینک بعدی یا قبلی کلیک می کنی باید از مقدار متغیر سراسریت یکی کم و یا یکی اضافه کنی.
//با فرض اتصال به بانک
Connect();
<table>
<tr onclick='rowCod(<?php print($Counter); ?>);'>
<td></td>
</tr>
</table>
var rowId = 0;
function rowCod(ID)
{
rowId = ID;
}
function next()
{
if(rowId != 0)
{
document.getElementById(rowId).style.bgColor='With e';
}
else
{
rowId = rowId+1;
document.getElementById(rowId).style.bgColor='Yell ow';
}
}
function Back()
{
if(rowId != 0)
{
document.getElementById(rowId).style.bgColor='With e';
}
else
{
rowId = rowId - 1;
document.getElementById(rowId).style.bgColor='Yell ow';
}
}
<inpute type='button' value='Next' onclick ='next();' />
<inpute type='button' value='Back' onclick ='Back();' />
فقط یادت باشه که سطرهای جدولت نباید رنگی باشه(البته در این روش)
سلام .
ممنونم که جواب منو دادین .
اما منظور من این بود :
من می خواهم یک کوئری بزنم سپس رکوردها را در یک متغیر مثلاً Row بریزم سپس به وسیله دکمه (عکس) اعمالی مثل رکورد بعدی و قبلی و... را پیمایش کنم .
همانند برنامه های رویداد گرا .
من می خواهم تمام این اعمال در یک صفحه انجام شود و فرم را به صفحه دیگری پست نکنم .
مطمئنا وقتی حرف از «بعدی» و «قبلی» میشه، باید یک ترتیبی در میون باشه.
که طبیعتا فکر میکنم ترتیب مورد نیاز شما در اینجا، بر اساس زمان ثبت خبر هست.
پس شما باید محور انتخاب رکورد قبلی و بعدی رو زمان ایجاد رکورد قرار بدی، نه ID اونها!! (هر چند که ترتیب idها در اکثر مواقع -یعنی نه همیشه- مشابه ترتیب زمانی رکوردها هست)
حالا اگر فرضا اگر قراره ترتیب نمایش بر اساس تاریخ و ساعت باشه
بهتره این کار رو بکنی:
// $date=date of this record
$query=mysql_query("select * from `tablenName` where `date`>'$date' order by `date` asc limit 1");
$rowNext=mysql_fetch_assoc($query);
$query=mysql_query("select * from `tablenName` where `date`<'$date' order by `date` desc limit 1");
$rowPrev=mysql_fetch_assoc($query);
اگر هم بخوای خبرها شرط خاص دیگه ای هم داشته باشن، به همون شرط کوئری ها میتونی اضافه کنی... (مثلا ممکنه بخوای خبرهایی رو نمایش بدی که مقدار فلان فیلدشون برابر با فلان چیز هست، که شرط مذکور رو میتونی همینجا بهش اضافه کنی)
موفق باشید.
سلام دوستان .
از پاسخ هاتون ممنونم.
کد من اینه .
مشکل اینجاست که مقدار IDState تغییر نمی کنه .
داخل تابع هم شناخته نمیشه . حتی موقعی کهIDState را global تعریف می کنم .
2- همانطور که در عکس دیدید من می خواهم یک Navigator برای پیمایش رکوردها داشته باشم .
اما می خواهم فقط یکبار Query بزنم نه برای هر بار زدن یک دکمه Query جدیدی اجرا کنم .
چون تعداد مراجعات به بانک زیاد می شود .
پس بهتر است یکبار هنگام Load صفحه این Query اجرا شود و با تغییرات جدول به صورت خودکار دوباره در صفحه لود شود .
فکر می کنم برای لود خودکار تغییرات باید از AJAX استفاده کنم .
در ضمن برای اینکه دکمه های من رویداد گرا باشند ، از مقاله ای IranPHP استفاده نمودم که آدرسش را قرار می دهم و برای رکورد بعدی و قبلی هم از کد جناب طبیب استفاده نمودم .
من برای رفتن به رکورد قبلی و بعدی به مقدار ID ها کم یا اضافه نمی کنم . بلکه رکوردها را مرتب کرده و اولین فیلد را بر می دارم .
http://www.iranphp.net/articles/apli...rticles007.pdf
لطفا راهنمایی بفرمائید .
<?php
$row=array('IDState'=>1);
$IDState=1;
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PHP Page</title>
<style>
body
{
font:12px, Tahoma, "Times New Roman", Andalus, Arial;
direction:rtl;
}
</style>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>';
Function submit($IDStateIN)
{
$Conn = mysql_connect("localhost", "root", "");
if (!$Conn) {
die("Could not connect: " . mysql_error());
}
mysql_select_db("pishnahadat",$Conn) or die("Could not select database");
if(isset($_POST['formsubmit']))
{
$q1="select * from statep order by IDState ASC limit 0,1 ";
$res1=mysql_query($q1,$Conn);
$row=mysql_fetch_assoc($res1);
return $row;
}// 1
if(isset($_POST['formsubmit2']))
{
$q1="select * from statep where IDState <= ". $IDStateIN." order by IDState ASC limit 1 ";
$res1=mysql_query($q1,$Conn);
$row=mysql_fetch_assoc($res1);
return $row;
}// 2
if(isset($_POST['formsubmit3']))
{
$q1="select * from statep where IDState > ". $IDStateIN ." order by IDState asc limit 1 ";
$res1=mysql_query($q1,$Conn);
$row=mysql_fetch_assoc($res1) ;
return $row;
}// 3
if(isset($_POST['formsubmit4']))
{
$q1="select * from statep order by IDState DESC limit 1 ";
$res1=mysql_query($q1,$Conn);
$row=mysql_fetch_assoc($res1) ;
return $row;
}// 4
}
echo '
<body dir="rtl" background="Images/Back0.JPG" >
';
$row=submit($IDState);
$IDState=$row['IDState'] or 1;
echo '
<table width="100%" border="0">
<tr>
<td><b>پیشنهادات جدید </b></td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><input type="button" name="LoadPishnahad" value="پیشنهادات رسیده" /></td>
<td>کد پیشنهادی </td>
<td><INPUT Name="txtIDState" Type="text" value=""></td>
<td>گروه کارشناسی </td>
<td><select name="txtGroupK">
<option>کامپیوتر</option>
<option>مالی</option>
<option>اداری</option>
</select></td>
<td>تعداد پیشنهادات جدید </td>
<td></td>
</tr>
<tr>
<td>
<form name="fLast" action="NewPishnahad.php" method="post" >
<input type="hidden" name="formsubmit4" value="4" />
<input width="80" name="BtnLast" type="submit" value="رکورد آخر" id="BtnLast" />
</form>
</td>
<td>
<form name="fNext" action="NewPishnahad.php" method="post" >
<input type="hidden" name="formsubmit3" value="3" />
<input name="BtnNext" type="submit" id="BtnNext" value="بعدی" width="80"/>
</form>
</td>
<td>';
echo '<input name="txtIDstate" type="text" id="txtIDstate" width="60" value="'.$IDState.'" />
</td>
<td>
<form name="fBack" action="NewPishnahad.php" method="post" >
<input type="hidden" name="formsubmit2" value="2" />
<input width="80" name="BtnBack" type="submit" id="BtnBack" value="قبلی" />
</form>
</td>
<td>
<form method="post" action="NewPishnahad.php" name="fFirst">
<input type="hidden" name="formsubmit" value="1" />
<input type="submit" name="btnsubmit" value="رکورد اول" width="80" />
</form>
</td>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>';
?>
سلام دوستان .
بالاخره با کلی دردسر به این نتیجه رسیدم که با متد Get متغیر را برای صفحه ام بفرستم این هم کدش :
کد قسمت Head
<?php
$row=array('IDState'=>1);
global $IDState;
$IDState=1;
if(isset($_GET['IDState']))
{
$IDState=$_GET['IDState'];
echo "myID : $IDState";
$Conn = mysql_connect("localhost", "root", "");
mysql_select_db("pishnahadat",$Conn) or die("Could not select database");
$q1="select * from statep where IDState > ". $IDState ." order by IDState asc limit 1 ";
$res1=mysql_query($q1,$Conn);
$row=mysql_fetch_assoc($res1) ;
$IDState=$row['IDState'];
}
?>
کد قسمت Body :
<a href="NewPishnahad.php?IDState=<?php echo $IDState ;?>" >Next</a>
سلام من هنوز نتونستم کد خودم رو میزارم کمکم کنید مرسی
$number=7;
$hostname="localhost";
$username="root";
$password="";
$link = mysql_connect($hostname,$username,$password);
if ( ! $link )
die( "Couldn't connect to MySQL ". mysql_error() );
$db = mysql_select_db("aa",$link);
if (!$db) {
die ('Can\'t use foo : ' . mysql_error());
}
mysql_query($sql, $link );
if (!isset($_GET['start']))
{
$start=0;
$sql="SELECT count(*) FROM news ";
$result=mysql_query($sql, $link );
$row = mysql_fetch_row($result);
$total=$row[0];
}
else
{ $start=$_GET['start'];
$total=$_GET['total'];
}
$sql="SELECT * FROM news where 1 ORDER BY 'id' DESC LIMIT $start , $number";
if(!$_REQUEST['newsId']){
$res=mysql_query($sql, $link );
$num=mysql_num_rows($res);
for($i=0; $i<$num; $i++){
$row=mysql_fetch_array($res);
$link=$thisPageName."?newsId=".md5($row['title']);
echo "<table style='border:0px solid #ff9966; font-size:8px; font-family:Tahoma,serif margin-top: 0; margin-bottom: 0' cellSpacing=0 cellPadding=0 width='30%' border=0 >
<td width='90%' bgcolor='#fde3c3'><div align='right' style=\"font-family: Tahoma; color: #993300; font-size: 8pt\"><a href='$link' target='_blank'>".$row['title']."</a><img src='services_bullg.gif'></div></td>
</table>
";
}
} else { // age ieki az link ha click shod ..
$res=mysql_query(" select * from `news` where md5(`title`)='".$_REQUEST['newsId']."' limit 1 "); // dar ovordan e record i az news ke click khorde
$row=mysql_fetch_array($res); // ..
echo "<table width='100%' style='border: 1px SOLID #CCCCCC;' border='0' cellspacing='0'>
<tr>
<td div align=\"right\" dir=\"rtl\" style=\"font-family: Tahoma; font-size: 8pt\"> ".nl2br($row['note'])."</td>
</tr>
<tr>
<td bgcolor='#F9F9F9'><div align='left' style=\"font-family: Tahoma; color: #993300 ;font-size: 8pt\">����� : $row[author]<src='n-f.gif'> </div></td>
</tr>
</table>
";
}
سلام .
چرا از mysql_num_rows استفاده نمی کنید .
با استفاده از این تابع می توانید تمام رکوردهای مورد نظر را انتخاب و روی آنها حرکت کنید .
من از این تابع استفاده کردم . جواب گرفتم .