مشکل در کد ادامه مطلب...

majidf1

Member
سلام به همه دوستان
راستش این سوال را قبلا مطرح کردم ولی نه کسی اونو دیده و نه جواب داره
لطفا اگه میشه جواب منو بدید..:)

فکر کنید که یه دیتابیس Mysql داریم که 2 تا ستون به نام های subject و text داره
در ستون subject عنوان خبر قرار می گیره و در ستون text متن کامل خبر نوشته می شه
حالا من عنوان ها رو در یک صفحه ، از روی دیتابیس چاپ کردم و مشکلم اینه که چطور می شه که
وقتی روی عنوان کلیک شد ، صفحه news باز بشه و فقط ستون text همون عنوان را چاپ کنه
ممنون می شم
 

Zanguei

Member
نحوه واکشی یک رکورد خاص از بانک

سلام دوست عزیز
شما باید عنوان خبرها رو به صورت لینک در بیارید و یا همون لینک "ادامه مطلب" رو بذارید. خصیصه href در تگ <a> باید چیزی شبیه به این باشه:
HTML:
<a href="news.php?nid=9">ادامه مطلب</a>
توسط کد بالا یک متغیر به نام nid که در اینجا اختصار news id هست به صفحه news.php ارسال میشه که دارای مقدار 9 است. این مقدار همون مقدار id یا کد مربوط به خبر هست که در ستون سوم جدول که شما نگفتید ذخیره میشه. اگر در خصوص id و نحوه ایجاد اینطور فیلدها اطلاعاتی ندارید دوباره سوال کنید تا یکی از دوستان در اولین فرصت براتون توضیح بده. در صفحه news.php مقدار nid رو توسط زبان برنامه نویسی مورد استفاده میگیریم و اون رو در دستور sql به بانک ارسال می کنیم و نتیجه رو نمایش میدیم.
کد:
SELECT subject,fulltext FROM tbl_news WHERE id=9
موفق باشید.
 

majidf1

Member
سلام
ضمن تشکر از شما دوست عزیز
من برای این کار یه مشکل دارم
چون کسی که سایت رو آپ می کنه خبر ها رو از پنل خودش می نویسه , باید هر خبر یک ای دی بگیره که این کار رو هم کردم
اما مشکل اینجاست که :
وقتی روی عنوان خبر کلیک می شه در صفحه بعد متن اخرین خبر رو نشون میده این مشکل در دو تا کد پایین هست
صقحه ای که عناوین هر خبر درج میشه:
PHP:
<?php
session_start();
$con = mysql_connect("localhost","root","");
mysql_query("SET CHARACTER SET utf8;");
mysql_query("SET SESSION collation_connection = 'utf8_persian_ci'"); 
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }mysql_select_db("db", $con);
  $result = mysql_query("SELECT * FROM news");
  while($row = mysql_fetch_array($result))
  {
   $_SESSION['id']=$row['id'];
   $i=$row[subject];
    print "<a href=nn.php?$_SESSION[id]><br>$i=1";
 
 
  }
  mysql_close($con);
?>
-------------------------------------------------------------------------------------
صفحه ای که قرار است متن کامل خبر کلیک شده درج بشه :
PHP:
<?php
session_start();
$con = mysql_connect("localhost","root","");
mysql_query("SET CHARACTER SET utf8;");
mysql_query("SET SESSION collation_connection = 'utf8_persian_ci'"); 
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }mysql_select_db("db", $con);
  $result = mysql_query("SELECT * FROM news WHERE id='$_SESSION[id]'");
  while($row = mysql_fetch_array($result))
  {
   print "$row[text]";
  }
  mysql_close($con);
?>
 
آخرین ویرایش:

Zanguei

Member
سلام دوست عزیز
اصلا برای این موضوع احتیاجی به استفاده از session نیست. session ها متغیرهایی سراسری هستن که مقدار اونها در تمام صفحات سایت یکسان است بنابراین وقتی در حلقه شما مقدار id آخرین رکورد در session ذخیره میشه خوب همون هم در صفحه دوم نمایش داده میشه. صفحاتتون رو کمی تغییر دارم تا به درستی کار کنه. اگر مشکل حل نشد خبر بدید تا بررسی کنیم ببینیم دلیلش چیه.
موفق باشید.

صقحه ای که عناوین هر خبر درج میشه:
PHP:
session_start();
$con = mysql_connect("localhost","root","");
mysql_query("SET CHARACTER SET utf8;");
mysql_query("SET SESSION collation_connection = 'utf8_persian_ci'"); 
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }mysql_select_db("db", $con);
  $result = mysql_query("SELECT * FROM news");
  while($row = mysql_fetch_array($result))
  {
   //$_SESSION['id']=$row['id'];
   //$i=$row[subject];
    print "<a href=\"nn.php?nid=$row[id]\">$row[subject]</a><br>";
 
 
  }
  mysql_close($con);
صفحه ای که قرار است متن کامل خبر کلیک شده درج بشه :
PHP:
session_start();
$con = mysql_connect("localhost","root","");
mysql_query("SET CHARACTER SET utf8;");
mysql_query("SET SESSION collation_connection = 'utf8_persian_ci'"); 
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }mysql_select_db("db", $con);
  $nid=(int)$_GET['nid'];
  $result = mysql_query("SELECT * FROM news WHERE id=$nid");
  $row = mysql_fetch_array($result);
  print "$row[text]";
  mysql_close($con);
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا