PDA

View Full Version : سوال: مشخص کزدن سمت افراد توسط دکمه checkbox



scofield007
پنج شنبه 10 بهمن 1392, 14:12 عصر
سلام دوستان.خسته نباشید

یک فرم برای صفحه مدیر سایتم طراحی کردم که در اون صفحه مدیر میتونه از بین کاربران عضو سایت ، هر کسی رو به دلخواه برای عضویت در هیئت تحریریه انتخاب کنه . من کد رو به صورت زیر نوشتم و لی متاسفانه ستون انتخاب و دکمه checkbox برای انتخاب فرد در فرم ظاهر نشد

ازتون خواهشمندم مشکل کد رو به من بگید



<?php
$con = mysqli_connect("localhost","root","","login") or die ("can not connect" . mysqli_error());

$sql = "SELECT * FROM members";
$result = mysqli_query($con , $sql);
echo "<b>لیست اعضای قابل انتخاب</b>";
echo "<form method='post' action='exec-tahririe.php'>
<table border='1' align='center' style='margin-top:30px;'>
<tr>
<th>نام</th>
<th>نام خانوارگی</th>
<th>انتخاب</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['firstname'] . "</td>";
echo "<td>" . $row['lastname'] . "</td>";
echo "<td><input type='checkbox' name='check1' /></td>";
echo "</tr>";
}
echo "</table>";
echo "</form>";
?>

scofield007
پنج شنبه 10 بهمن 1392, 14:14 عصر
خوشبختانه مشکلم حل شد

scofield007
پنج شنبه 10 بهمن 1392, 16:49 عصر
ضمن عرض خسته نباشید
سوالی برام پیش اومده بود.میخاستم از طریق فرم بالا چک باکسی رو که مدیر انتخاب کرده به سمت سرور بره و سرور هر عضوی از سایت رو که چک باکسش توسط مدیر تیک خورده به عنوان عضو هیئت تحریریه انتخاب بشه.برای اینکار از چه روشی استفاده کنم
اگر بخام برای کاربران عضو هر کدام یک چک باکس بزارم پس برای کسانی که بعدا در سایت ثبت نام می کنند چطور می شود از بینشان عضوی را انتخاب کرد؟

http://upload7.ir/imgs/2014-01/87444500065617435500.jpg (http://upload7.ir/)

در عکس بالا کاربران عضو سایت نمایش داده می شوند.در حال حاضر میشه برای این دو کاربر کدی نوشته شود که مدیر بتواند از بین این دو کسی را که می خواهد برای تحریریه انتخاب کند..

ولی برای بعدا که سایت برپا شد و امکان کد نویسی نیست الان چطور کدی باید بنویسم که هر کاربری که ثبت نام کرد مدیریت بتونه از بینشون افرادی رو برای تحریریه انتخاب کنه؟؟

امیدوارم منظورمو رسونده باشم.

با تشکر

scofield007
جمعه 11 بهمن 1392, 00:24 صبح
واقعا کاربرای این سایت محشرن.به زور یکی پیدا میشه بهت کمک کنه
اساتید کارکشته هم که عارشون میاد به این سوالات که از نظرشون آبکی هست پاسخ بدن.

واقعا متاسفم.

SlowCode
جمعه 11 بهمن 1392, 01:09 صبح
همش 7 ساعت از زمان پرسیدن سوالتون میگذره ها اینطور طلبکار شدین!
-------------
شما مگه داخل یه حلقه for چک باکس ها و tr رو تولید نمیکنی؟ خب هربار میای یه name یا id(بستگی داره به روشتون) برای ایجاد میکنی، مثلا همون id کاربر که تو دیتابیس هست رو به خاصیت name اون چک باکس میدی.
حالا تعداد کاربر میخواد یکی باشه یا n تا.

scofield007
جمعه 11 بهمن 1392, 10:08 صبح
همش 7 ساعت از زمان پرسیدن سوالتون میگذره ها اینطور طلبکار شدین!
-------------
شما مگه داخل یه حلقه for چک باکس ها و tr رو تولید نمیکنی؟ خب هربار میای یه name یا id(بستگی داره به روشتون) برای ایجاد میکنی، مثلا همون id کاربر که تو دیتابیس هست رو به خاصیت name اون چک باکس میدی.
حالا تعداد کاربر میخواد یکی باشه یا n تا.

خیلی ممنونم از پاسختون.منظورتون از حلقه در کجاست؟

SA_Developer
جمعه 11 بهمن 1392, 10:53 صبح
خیلی ممنونم از پاسختون.منظورتون از حلقه در کجاست؟
حلقه While
شما تو این کد گفتی به تعداد اعضایی که در تیبل موجودن رکورد اضافه کن و نمایش بده پس نیازی نیست بعدا دستی وارد کنی :)


while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['firstname'] . "</td>";
echo "<td>" . $row['lastname'] . "</td>";
echo "<td><input type='checkbox' name='check1' /></td>";
echo "</tr>";
}

scofield007
جمعه 11 بهمن 1392, 11:13 صبح
حلقه While
شما تو این کد گفتی به تعداد اعضایی که در تیبل موجودن رکورد اضافه کن و نمایش بده پس نیازی نیست بعدا دستی وارد کنی :)


while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['firstname'] . "</td>";
echo "<td>" . $row['lastname'] . "</td>";
echo "<td><input type='checkbox' name='check1' /></td>";
echo "</tr>";
}


با تشکر.پس منظورمو درست نرسوندم
هر موقع کاربری ثبت نام کنه یک چک باکس براش طبق کد بالا ساخنه میشه.اما موقعی که مدیر بخاد افرادی رو انتخاب کنه چطوری سرور بفهمه که مدیر کدوم کاربرا رو انتخاب کنه؟؟

scofield007
جمعه 11 بهمن 1392, 11:18 صبح
میتونم اینطوری بنویسم؟



$n = 1;
while($row = mysqli_fetch_array($result))
{

echo "<tr>";
echo "<td>" . $row['firstname'] . "</td>";
echo "<td>" . $row['lastname'] . "</td>";
echo "<td><input type='checkbox' name=$n /></td>";
echo "</tr>";
$n++;
}

SA_Developer
جمعه 11 بهمن 1392, 11:27 صبح
میتونم اینطوری بنویسم؟


$n = 1;
while($row = mysqli_fetch_array($result))
{

echo "<tr>";
echo "<td>" . $row['firstname'] . "</td>";
echo "<td>" . $row['lastname'] . "</td>";
echo "<td><input type='checkbox' name=$n /></td>";
echo "</tr>";
$n++;
}
بهتره برای هر کاربر در جدول فیلد ID بذارید (ضروریه) بعد اینجا هم کار شما راحت میشه بجای اینکه متغییر بذارید بجاش ID همون کاربر رو بذارید:


while($row = mysqli_fetch_array($result))
{

echo "<tr>";
echo "<td>" . $row['firstname'] . "</td>";
echo "<td>" . $row['lastname'] . "</td>";
echo "<td><input type='checkbox' name='{$row['ID']}' /></td>";
echo "</tr>";
}

scofield007
جمعه 11 بهمن 1392, 12:02 عصر
بهتره برای هر کاربر در جدول فیلد ID بذارید (ضروریه) بعد اینجا هم کار شما راحت میشه بجای اینکه متغییر بذارید بجاش ID همون کاربر رو بذارید:


while($row = mysqli_fetch_array($result))
{

echo "<tr>";
echo "<td>" . $row['firstname'] . "</td>";
echo "<td>" . $row['lastname'] . "</td>";
echo "<td><input type='checkbox' name='{$row['ID']}' /></td>";
echo "</tr>";
}


من داخل تمام جداول ID گذاشتم.به نظز راه شما بهترین باشه.با تشکر فراوان

scofield007
جمعه 11 بهمن 1392, 12:08 عصر
یک قصعه کد برای آپلود نوشتم که به درستی کار میکنه.ولی وقتی میخام نام فایلی که آپلود شده رو در جدول برای کاربر خاصی ثبت کنم ارور میده.نمیدونم مشکل از کجاس.فیلد nashrie هم از نوع text گذاشتم.فایلی هم که میخام آپلود کنم اسمش payan name هست.خواهشمندم مشکل کد رو به من بگید


<?php
session_start();
if(!isset($_SESSION['namkarbari']) or !isset($_SESSION['password']))
{
header("location: login.php");
}
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "application/pdf")
|| ($_FILES["file"]["type"] == "application/msword")/*format doc*/
|| ($_FILES["file"]["type"] == "application/vnd.openxmlformats-officieducumenr.wordprocessingml.
document") /*format docx*/
&& ($_FILES["file"]["size"] < 9999999)
&& in_array($extension, $allowedExts)))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

if (file_exists("../SITE2/upload/upload" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"../SITE2/upload/upload" . $_FILES["file"]["name"]);
echo "Stored in: " . "../SITE2/upload/upload" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
$con = mysqli_connect("localhost","root","","login") or die("can not connect" . mysqli_error());

$sql = "SELECT * FROM members WHERE login = '$_SESSION[namkarbari]' and passwd = '$_SESSION[password]'";
$result = mysqli_query($con . $sql);
while($row = mysqli_fetch_array($result))
{
$row['nashrie'] = $_FILES['file']['name'];
}
?>
و تکه ای که برای ثبت نام قایل در جدول هست این کد می باشد:


$con = mysqli_connect("localhost","root","","login") or die("can not connect" . mysqli_error());

$sql = "SELECT * FROM members WHERE login = '$_SESSION[namkarbari]' and passwd = '$_SESSION[password]'";
$result = mysqli_query($con . $sql);
while($row = mysqli_fetch_array($result))
{
$row['nashrie'] = $_FILES['file']['name'];


}

اروری که میده به این شرح هست:

Catchable fatal error: Object of class mysqli could not be converted to string in C:\xampp\htdocs\macromedia\proje\SITE2\exec-upload.php on line 47

scofield007
جمعه 11 بهمن 1392, 12:13 عصر
مشکل در سینتکس خط 47 بود که حل شد
با این حال اسم فایل آپلود شده در جدول قرار نگرفت.
مشکل از کجاست؟

scofield007
جمعه 11 بهمن 1392, 12:45 عصر
بهتره برای هر کاربر در جدول فیلد ID بذارید (ضروریه) بعد اینجا هم کار شما راحت میشه بجای اینکه متغییر بذارید بجاش ID همون کاربر رو بذارید:


while($row = mysqli_fetch_array($result))
{

echo "<tr>";
echo "<td>" . $row['firstname'] . "</td>";
echo "<td>" . $row['lastname'] . "</td>";
echo "<td><input type='checkbox' name='{$row['ID']}' /></td>";
echo "</tr>";
}


موقع فرستادن نام چک باکس به فایل سرور چگونه عمل کنم؟
مثلا اگر اسم چک باکس check1 باشه باید به صورت $_POST['check1'] در فایل سرور استفاده بشه.ولی الان اسمش {$row='id'} هست و شیوه استفاده از اون رو نمیدونم

scofield007
جمعه 11 بهمن 1392, 18:03 عصر
مشکل در سینتکس خط 47 بود که حل شد
با این حال اسم فایل آپلود شده در جدول قرار نگرفت.
مشکل از کجاست؟
دوستان من وقت کمی دارم.لطفا از راهنمایی بنده مضایغه نفرمایید
ممنون

scofield007
جمعه 11 بهمن 1392, 19:11 عصر
تا حدودی ثبت اسم فایل حل شدو
مشکل کوچکی که وجود داره اینه که اسم فایلی که کاربر سایت آپلود میکنه به شکل درستی در جدول پایگاه داده ثبت نمیشه
کدی که برای ثتب اسم فایل پس از آپلود نوشتم اینطوری هست:


$con = mysqli_connect("localhost","root","","login") or die("can not connect" . mysqli_error());
$sql = "UPDATE members SET nashrie = '$_FILES[file][name]' WHERE login = '$_SESSION[namkarbari]' and
passwd = '$_SESSION[password]'";
$result = mysqli_query($con , $sql);

اینم ار عکس.اسم فایل به جای اینکه payan name.doc باشه به صورت
ARRAY[name] هست.چطوری این مشکل حل میشه؟

http://upload7.ir/imgs/2014-01/04205915432241585774.jpg (http://upload7.ir/)

scofield007
جمعه 11 بهمن 1392, 19:19 عصر
خوشبختانه این مشکلم هم حل شد

با تشکر از اساتید محترم

scofield007
جمعه 11 بهمن 1392, 19:21 عصر
حال چطوری فایلی که آپلود شده ، می تونیم دانلود کنیم؟

scofield007
شنبه 12 بهمن 1392, 13:27 عصر
کسی جواب سوال ما رو بلد نیست؟؟؟؟

scofield007
دوشنبه 14 بهمن 1392, 10:01 صبح
دم کاربرای سایت گرم.خیلی کمک کردن.من شرمندشون شدم
یا علی