PDA

View Full Version : سوال: ادامه مطلب برای رکوردهای جدول



ravand
شنبه 15 آبان 1389, 08:05 صبح
سلام
من یه سری اطلاعاتی رو از داخل مطالب ثبت شده در جدول و بانک اطلاعاتیم رو با php روی یه صفحه به نمایش گذاشتم ولی چون تعداد رکورد ها از فیلد های جدول زیاده می خوام براشون یه ادامه مطلب درست کنم چجوری می تونم این کار رو بکنم. البته می خوام به طور خودکار یه ادامه مطلب برای اطلاعات هر فردی که ثبت نام می کنه درست شه.
ممنون میشم راهنماییم کنید.:لبخند:

alonemm
شنبه 15 آبان 1389, 10:35 صبح
میتونید یک فیلد برای ادامه مطلب داشته باشید.
بعد یک لینک که id رو به لینک ادامه مطلب میفرسته.
بر اساس id رکورد مورد نظر رو select کنید و نمایش بدید.

ravand
شنبه 15 آبان 1389, 11:34 صبح
داداش
من اینو نوشتم ولی وقتی روی لینک ادامه کلیک می کنم مشخصات افراد دیگه هم که ثبت نام کردن میاد . نمیشه کاری کرد که فقط مشخصات خود فرد بیاد؟

<td align=center ><a href=\"edit.php?ID=".$row['0']."\">ادامه</a></td>

وقتی روی لینک ادامه کلیک می کنم مثلا به این آدرس میره:
http://localhost/loginSample/edit.php?ID=63

binyaft
شنبه 15 آبان 1389, 11:58 صبح
Query رو چک کنید !!

ravand
شنبه 15 آبان 1389, 16:15 عصر
من با حذف یه سری کد تونستم مشخصات فقط یک نفر رو چاپ کنم ولی هنوز نتونستم یک ادامه مطلب درست کنم. مثلا توی کد های زیر فقط نام و نام خانوادگی باشه ولی بقیه ی مشخصات رو باید حتما روی لینک ادامه کلیک کنم تا بتونم در یک صفحه ی جدید ببینم؟


<?php
@session_start();
$_SESSION['login'] = "true";
if ($_SESSION['login'] == "true") {

mysql_connect("localhost", "root", "");
mysql_select_db("fani");
$query = mysql_query("select * from form")
or die ("Could not match data because ".mysql_error());

//
$num_rows = mysql_num_rows($query);


?>
<!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" />

<?php
if ($num_rows > 0 ) {

if($_GET['action'] == 'edit' && isset($_GET['ID'])){

$query_edit = mysql_query("select * from form where ID=".$_GET['ID'])
or die ("Could not match data because ".mysql_error());
if(mysql_num_rows($query_edit)== 1)
$row_edit = mysql_fetch_row($query_edit);



echo '<p align=center>ویرایش کاربر</p>
<form action=edit.php?action=regedit&ID='.$_GET['ID'].' method=post>
<table align="center" width="100%" cellpadding="0" border="0" bgcolor="C#‎C99FF">
<tr>
<td align=center ></td>
<td align=center ></td>
<td align=center >صادره</td>
<td align=center >شماره شناسنامه</td>
<td align=center >سایت</td>
<td align=center >ایمیل</td>
<td align=center >جنسیت</td>
<td align=center >نام خانوادگی</td>
<td align=center >نام</td>
<td align=center >عکس</td>
<td align=center >ID</td>
</tr>
<tr>
<td align=center ></td>
<td align=center ><input type="submit" name=regsubmit value=" ثبت "></td>
<td align=center ><input type=text name=tfsader size=1 value='.$row_edit[7].'></td>
<td align=center ><input type=text name=tfsho size=1 value='.$row_edit[6].'></td>
<td align=center ><input type=text name=email size=20 value='.$row_edit[5].'></td>
<td align=center ><input type=text name=radio size=10 value='.$row_edit[4].'></td>
<td align=center ><input type=text name=tffamily size=10 value='.$row_edit[3].'></td>

<td align=center ><input type=text dir=rtl name=tfname size=8 value='.$row_edit[2].'></td>
<td align=center ><input type=text dir=rtl name=URL size=8 value='.$row_edit[1].'></td>
<td align=center ><input type=text name=ID size=1 disabled value='.$row_edit[0].'></td>
</tr>
</table>
</form> ';

}
if($_GET['action'] == 'regedit' && isset($_GET['ID'])){

$ID = $_GET['ID'];

$tfname = $_POST['tfname'];
$tffamily = $_POST['tffamily'];
$radio = $_POST['radio'];
$email = $_POST['email'];
$web = $_POST['web'];
$tfsho = $_POST['tfsho'];
$tfsader = $_POST['tfsader'];
$query_reg = mysql_query("UPDATE form SET tfname='$tfname', tffamily='$tffamily', radio='$radio', email='$email',tfsho='$tfsho'
,tfsader='tfsader' where ID='$ID'")
or die ("Could not match data because ".mysql_error());
echo "<h3>Updated!</h3>";
}


if($_GET['action'] == 'delete' && isset($_GET['ID'])){

$query_delete = mysql_query("DELETE from form where ID=".$_GET['ID'])
or die ("Could not match data because ".mysql_error());
echo '<p align="center" class="style4">کاربر مورد نظر با موفقیت حذف شد</p>';
}
echo '<p class="style4" align="center">تعداد کاربران ثبت شده در سیستم : '.$num_rows.'</p>';




?>

<table width="95%" height="28" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#FFFFFF">
<tr bgcolor="C#‎CFFCC">
<td align="center" class="style4">حذف</td>
<td align="center" class="style4">ویرایش</td>
<td align="center">صادره</td>
<td align="center" >شماره شناسنامه</td>
<td align="center" >سایت</td>
<td align="center" >ایمیل</td>
<td align="center" >جنسیت</td>
<td align="center" >نام خانوادگی</td>
<td align="center" >نام</td>
<td align="center" >عکس</td>
<td align="center" >ID</td>
</tr>

<?php

$query = mysql_query("select * from form");
//این کد پایین باعث می شود که مشخصات ثبت نام کننده ها ادامه پیدا کند و اضافه شود
for ($i = 0 ; $i < $num_rows ; $i++) {

$row = mysql_fetch_row($query);

echo "<tr>
<td align=center >
<a href=edit.php?action=delete&ID=".$row[0].">Del</a></td>
<td align=center >
<a href=edit.php?action=edit&ID=".$row[0].">Edit</a></td>
<td align=center >".$row[8]."</td>
<td align=center >".$row[7]."</td>
<td align=center >".$row[6]."</td>
<td align=center >".$row[5]."</td>
<td align=center >".$row[4]."</td>
<td align=center >".$row[3]."</td>
<td align=center >".$row[2]."</td>
<td align=center ><a href='" . $row['1'] . "'>" . عکس . "</a></td>
<td align=center >".$row[0]."</td>
<td align=center ><a target=_blank href=\"edit.php?ID=".$row['0']."\">ادامه</a></td>


</tr>";

}


?>

</table>



<?php
}
else
{
echo '<p align="center" class="style4">هیچ کاربری در سایت عضو نیست</p>';
}
?>

</td>
</tr>
<tr bgcolor="C#‎CCCCC">
<td height="44" colspan="6">&nbsp;</td>
</tr>
</table>
</body>
</html>
<?php
} else {
session_destroy();
header("Location: http://localhost/project/admin/");
};
?>

خیلی ممنون.

binyaft
شنبه 15 آبان 1389, 16:45 عصر
ساده ترین راه :
دو تا صفحه بساز داخل یکی فقط نام و انم خانوادگی رو نشون بده ، داخل یکی دیگه هم همه اطلاعات رو نشون بده

ravand
شنبه 15 آبان 1389, 19:58 عصر
من کاری رو که شما گفتید انجام دادم .
برای مثال این لینکی هست که من در صفحه ی اول قرار دادم :

<a target=_blank href=\"edit.php?ID=".$row['ID']."\">ادامه</a>

با کلیک روی دکمه ی ادامه وارد صفحه ی بعد میشم ولی در صفحه ی بعد به جای نمایش اطلاعات فرد ثبت نام کننده . اطلاعات همه ی افراد ثبت نام کننده نمایش داده میشه و اطلاعات اون فرد خاص نمایش داده نمیشه. و وقتی که کاری کردم که در ادامه ی مطلب مشخصات یه نفر نمایش داده بشه این باعث شد که در ادامه ی مطلب مشخصات یه نفر برای همه ی افراد در ادامه ی مطلب نشون داده بشه.
مثلا در صفحه ی اول که علی و حسین هستن وقتی روی لینک ی ادامه که مختص علی هست کلیک می کنم مشخصات علی نشون داده میشه و وقتی روی لینک ادامه که مختص حسین هست هم که کلیک می کنم بازم مشخصات علی نشون داده میشه.
کد های صفحه ی دوم (http://barnamenevis.org/forum/attachment.php?attachmentid=59762&stc=1&d=1289062654)
بازم از لطفتون ممنونم

funpatogh
شنبه 15 آبان 1389, 20:35 عصر
سلام
من یه سری اطلاعاتی رو از داخل مطالب ثبت شده در جدول و بانک اطلاعاتیم رو با php روی یه صفحه به نمایش گذاشتم ولی چون تعداد رکورد ها از فیلد های جدول زیاده می خوام براشون یه ادامه مطلب درست کنم چجوری می تونم این کار رو بکنم. البته می خوام به طور خودکار یه ادامه مطلب برای اطلاعات هر فردی که ثبت نام می کنه درست شه.
ممنون میشم راهنماییم کنید.:لبخند:
خوب شما وقتی داری مشخصات کوتاه از تمام افراد تو یک لیست نشان میدهید فقط 3 تا فیلد رو نمایش بدهید و روی ادامه که کلیک میشه توی همان صفحه کل فیلد مشخصات کاربر رو بگیرید و نشان دهید

binyaft
شنبه 15 آبان 1389, 21:37 عصر
من کاری رو که شما گفتید انجام دادم .
برای مثال این لینکی هست که من در صفحه ی اول قرار دادم :

<a target=_blank href=\"edit.php?ID=".$row['ID']."\">ادامه</a>

با کلیک روی دکمه ی ادامه وارد صفحه ی بعد میشم ولی در صفحه ی بعد به جای نمایش اطلاعات فرد ثبت نام کننده . اطلاعات همه ی افراد ثبت نام کننده نمایش داده میشه و اطلاعات اون فرد خاص نمایش داده نمیشه. و وقتی که کاری کردم که در ادامه ی مطلب مشخصات یه نفر نمایش داده بشه این باعث شد که در ادامه ی مطلب مشخصات یه نفر برای همه ی افراد در ادامه ی مطلب نشون داده بشه.
مثلا در صفحه ی اول که علی و حسین هستن وقتی روی لینک ی ادامه که مختص علی هست کلیک می کنم مشخصات علی نشون داده میشه و وقتی روی لینک ادامه که مختص حسین هست هم که کلیک می کنم بازم مشخصات علی نشون داده میشه.
کد های صفحه ی دوم (http://barnamenevis.org/forum/attachment.php?attachmentid=59762&stc=1&d=1289062654)
بازم از لطفتون ممنونم

شما اون Query ای که برای نمایش کاربران بر اساس ID دزیافت شده از لینک هست رو echo کنید
ببینید همون چیز هست که انتظار دارید یا نه

ravand
شنبه 15 آبان 1389, 22:54 عصر
خوب شما وقتی داری مشخصات کوتاه از تمام افراد تو یک لیست نشان میدهید فقط 3 تا فیلد رو نمایش بدهید و روی ادامه که کلیک میشه توی همان صفحه کل فیلد مشخصات کاربر رو بگیرید و نشان دهید

فکر کنم شما تمام حرف های منو نخوندی.
من گفتم که این کارا رو کردم ولی وقتی روی لینک ادامه کلیک می کنم مشخصات افراد دیگه هم به غیر از مشخصات من میاد و یا مشخصات یه نفر برای افراد دیگه میاد.:ناراحت:

ravand
شنبه 15 آبان 1389, 22:58 عصر
شما اون Query ای که برای نمایش کاربران بر اساس ID دزیافت شده از لینک هست رو echo کنید
ببینید همون چیز هست که انتظار دارید یا نه

اون Query رو هم که شما میگی در کد زیر است یعنی صفحه ی اول که یه لینک ادامه داره برای صفحه ی دوم . من هم بر اساس ID این کار رو کردم . شما اگه کد های edit.php رو که من ارسال کردم ببینی با این کد ها متوجه منظور من میشی .

$User = "root";
$Password = "";
$conn = mysql_connect("localhost","root","");
$db = mysql_select_db("fani");

$target_path = "";

$dbresult = mysql_query("SELECT * FROM 'form'");
$Link= mysql_connect($Host,$User,$Password);
// Displays all current files
$getDocuments = mysql_query("SELECT * FROM form");

while($row = mysql_fetch_array($getDocuments,$dbresult))
{
echo ($row["tfname"]."<br>"."Download: <a href='" . $row['URL'] . "'>" . $row['URL'] . "</a>
<a href=\"delete/delete.php?ID=".$row['ID']."\">Delete</a>
<a target=_blank href=\"edit.php?ID=".$row['ID']."\">ادامه</a><br>");

اگه کد های خط آخر رو ببینی می بینی که echo هم کردم .

<a target=_blank href=\"edit.php?ID=".$row['ID']."\">ادامه</a>
کدهای این قسمت :

alonemm
یک شنبه 16 آبان 1389, 09:58 صبح
دوست من توی صفحه 2 یک رشته تقاضا بنویس و یک شرط بر اساس ID بزن که همه فیلدها رو بر اساس id=45 بیاره.
بعد کل این رکورد رو نمایش بده.
اگه بهشتر از یکی نمایش میده حتما توی جدولت از این id چندتا داری و باید فیلدتو کلید کنید.

ravand
یک شنبه 16 آبان 1389, 10:59 صبح
ببخشید داداش که تا اینجا اینقدر بهتون زحمت دادم . مشکل اینجاست که من یه مبتدی هستم برای همین اصلا این چیزی رو که شما گفتی متوجه نشدم . این قسمت edit.php که صفحه ی دوم میشه در واقع قسمتی هست که مشخصات افراد ثبت نام کننده در سایت رو می خونه پس هر باری که یه نفر ثبت نام می کنه مقدار ID جدید میاد و همیشه 45 یا 46 نیست . و 47 هم خواهد امد و همینطور اضافه میشه. یعنی من نمی تونم فقط برای این دو تا شرط بسازم. البته نمی دونم چجوری باید این شرط رو براشون بسازم . و از چه چیزایی استفاده کنم . شما می تونی یه خط کدش رو بنویسی؟:قلب:

ravand
یک شنبه 16 آبان 1389, 18:57 عصر
هیچ کس نیست به سوال ما جواب بده؟ :ناراحت::افسرده:

binyaft
یک شنبه 16 آبان 1389, 19:51 عصر
select * from `from` where id='$_GET[id]'
Query بالا بر اساس ID رکورد ها رو استخراج میکنه

ravand
یک شنبه 16 آبان 1389, 20:32 عصر
ببخشید این خطی رو که شما گفتی من توی صفحه ی اول یعنی user.php که اصلا نمی تونم بذارم توی صفحه ی دوم یعنی edit.php هم اگه منظورتون به جای خط زیر است که بذارم . باید بگم که اگه این کار رو بکنم ، کلا اطلاعات نمایش داده نمیشه:

$query = mysql_query("select * from form");

شما که میگی با این کد مشکل حل میشه پس یه لطفی کن این کد رو داخل هر کدوم از این صفحات که میدونی بذار . یه دنیا ممنون میشم.:لبخندساده:
کدهاش رو توی این تاپیک گذاشتم بازم اینجا میذارم:
edit.php (http://barnamenevis.org/forum/attachment.php?attachmentid=59762&d=1289062654)

user.php (http://barnamenevis.org/forum/attachment.php?attachmentid=59777&d=1289073678)

binyaft
یک شنبه 16 آبان 1389, 20:44 عصر
کد زیر رو امتحان کنید

ravand
یک شنبه 16 آبان 1389, 22:12 عصر
شرمنده ام داداش.
ولی این کد یه اخطار میده ، این اخطار:

Parse error: syntax error, unexpected T_VARIABLE in F:\xampp\xampp\htdocs\loginSample\edit.php on line 118

در این خطی که مشخص کرده میگه مشکل داره . خطش هم اینه:

$row = mysql_fetch_row($query_$edit);

من کلمه ی _$edit رو برداشتم دیگه اخطار نداد . ولی بازم کار نکرد مثل اول شد.:ناراحت:

ravand
دوشنبه 17 آبان 1389, 13:11 عصر
کسی نیست ما رو راهنمایی کنه؟ :افسرده::ناراحت:

binyaft
دوشنبه 17 آبان 1389, 14:08 عصر
ببخشیبد حواسم نبوده :دی


$row = mysql_fetch_row("$query_edit");

ravand
دوشنبه 17 آبان 1389, 16:20 عصر
ببخشید ولی بازم این خط رو خطا داد. خطای زیر:

Warning: mysql_fetch_row() expects parameter 1 to be resource, string given in F:\xampp\xampp\htdocs\loginSample\edit.php on line 118
اگه شما این کدهایی رو که بهتون دادم امتحان بکنید . بیتشر مشکل حل میشه. چون شما الان داری احتمال میدی مشکل از این کلمه است.:ناراحت:

binyaft
دوشنبه 17 آبان 1389, 16:34 عصر
این الان میگه که Query شما هیچ خروجی ای نداره
شما ببین داخل بانک اطلاعاتی اصلاح شد ( فیلدی ) به نام ID وجود داره یا نه؟

mysql_query("select * from form where ID=".$_GET['ID'])
چک کن ، اگر نشد بنده خودم یک کد برای ادامه مطلب ( مجزا از این کد ) براتون مینویسم

ravand
دوشنبه 17 آبان 1389, 18:30 عصر
قبل از هر چیز باید بگم که شرمنده ام که اینقدر بهتون زحمت دادم. آخه این موضوع خیلی برام مهمه.
من توی بانک اطلاعاتیم یک فیلد به نام ID برای هر کاربر در نظر گرفتم تا به هر کاربر ثبت نامی با این ID بهش یه شماره اختصاص داده باشه . ولی من جدولی با این نام یعنی ID ندارم و اصلا فکر نمی کردم که باید باشه. حالا این جدول ID که شما میگید باید چه فیلدهایی داشته باشه؟
البته این را هم بگم که این فیلد ID خوب کار می کنه و مشکلی هم نداره و به هر کاربری یه شماره میده . تا الان به دو نفر کاربر ثبت نام شده شماره های 66 و 67 رو اختصاص داده.:چشمک:

binyaft
دوشنبه 17 آبان 1389, 18:48 عصر
قبل از هر چیز باید بگم که شرمنده ام که اینقدر بهتون زحمت دادم. آخه این موضوع خیلی برام مهمه.
خواهش میکنم


ولی من جدولی با این نام یعنی ID ندارم
جدول نیاز نیست ، همون فیلد هست منظورم ( چرا امروز من اینقد ... میزنم؟ )

البته این را هم بگم که این فیلد ID خوب کار می کنه و مشکلی هم نداره و به هر کاربری یه شماره میده . تا الان به دو نفر کاربر ثبت نام شده شماره های 66 و 67 رو اختصاص داده
اگر اینطوری باشه کد زیر رو در یک فایل جداگانه PHP بزارید ببینید کار میکند یا نه


<?php
$conn = mysql_connect("localhost","root","");
$db = mysql_select_db("fani");
$query=mysql_query("SELECT * FROM `form` where id='66'");
while($row=mysql_fetch_array($query)){
echo $row[1];
}
?>

کد بالا باید مقداری رو برگردونه ( نتیجه رو همینجا بنویسید )

ravand
دوشنبه 17 آبان 1389, 21:32 عصر
آره دادش
امتحانش کردم و کار کرد . اگه به $row مقدار صفر رو بدم . مقدار ID یعنی 66 رو نشون میده. و اگه 1 بدم عکس کاربری که آی دی 66 رو داره نشون میده و اگه 2 بدم اسم کاربر و ...
همینطور مثل اون چیزی که توی فایل edit.php کدش رو نوشتم. البته این رو هم باز بگم که مقدار ID همیشه 66 و 67 نمی مونه و با هر ثبت نام افراد در سایت مقدار اضافه میشه . مثلا 68 و 69 و ... همینطور ادامه پیدا می کنه. ما باید کدی رو بنویسیم که به طور خودکار قسمت ادامه مطلب رو با صفحه ی اول تنظیم بکنه که هر مشخه ی کاربری ادامه مطلب خودش رو داشته باشه.

binyaft
دوشنبه 17 آبان 1389, 21:46 عصر
خوب Query رو به صورت زیر عوض کن

SELECT * FROM `form` where id='$_GET[ID]'
حالا اون کد هایی که دادم رو بزار داخل صفحه ادامه مطلب ( یک صفحه جدید بساز )
و چاپشون کن
مشکلی بود بنده در خدمتم

Mah
سه شنبه 25 آبان 1389, 08:25 صبح
سلام .
من يك پيشنهاد دارم كه پياده سازيش بستگي به خود شما دارد .
شما براي هر كاربر يك لاگين داريد ..
شما مي توانيد ID هر كاربر را در كوكي ذخيره نمائيد . اين طوري در صفحه ادامه مطلب ID كاربر را از كوكي مي خوانيد . بعد مي توانيد فيلدهاي مورد نظر خود را بدست آوريد .
نكته :


براي پاس دادن متغير در صفحات ديگر مي توانيد از لينك GET يا همون روشي كه ساير دوستان توضيح دادن استفاده كنيد .
يا اينكه از كوكي يا Session استفاده نمائيد .

موفق باشيد .