PDA

View Full Version : سوال: مشکل در وضعیت!



pasargadteam
یک شنبه 10 آذر 1392, 11:03 صبح
با سلام و درود بیکران
بنده یه مشکل دارم اینکه اومدم برای نمایش وضعیت های خنثی, افزایش و کاهش به ترتیب 1, 2 و 3 در دیتابیس انتخاب کردم که باشه.
ساختار جدول این طور است:


CREATE TABLE IF NOT EXISTS `currency` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`curtitle` text NOT NULL,
`curratetoday` text NOT NULL,
`curratelast` text NOT NULL,
`curprocess` decimal(11,0) NOT NULL COMMENT 'neutral=1,increase=2,decrease=3',
`adminid` int(11) NOT NULL,
`dtpublic` text NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;


در مورد کد PHP مربوطه چنین نوشتم:

فانکشنی که تعریف کردم:



function StatusPESC()
{
$curpro = mysql_query ("select curprocess FROM `currency`");
$row = mysql_fetch_array($curpro);
if (($row["curprocess"]) == 1) {
return '<span class="badge"> - </span>';
}
elseif (($row["curprocess"]) == 2) {
return '<span class="badge badge-important">افزايش</span>';
}
elseif (($row["curprocess"]) == 3) {
return '<span class="badge badge-warning">کاهش</span>';
}
}


نحوه فراخوانی از دیتابیس:



<?php
$arz = mysql_query ("select * FROM `currency` order by `ID` ASC");
while ($row = mysql_fetch_array($arz))
{
echo '<tr>';
echo '<td>' . StatusPESC($row["curprocess"]) . '</td>';
echo '<td>' . $row["curtitle"] . '</td>';
echo '<td>' . $row["curratetoday"] . '</td>';
echo '<td>' . $row["curratelast"] . '</td>';
echo '</tr>';
}
?>


حالا مشکل از اون جایی شروع میشه که اگر در جدول کارنسی ID = 1 وضعیتش هرچی باشه در تمام گزینه های دیگه هم همون وضعیت رو میزاره.
مشکل کد از کجاست؟

nadi_1368
یک شنبه 10 آذر 1392, 14:50 عصر
سلام

شما مقداری برای تابع StatusPESC ارسال نمی کنید

و اون هر بار اولین سطر اول میخونه و مقدار همونو بر می گرداند

SadeghPro19
یک شنبه 10 آذر 1392, 14:53 عصر
کد فانکشن:

function StatusPESC($id)
{
$curpro = mysql_query (" select curprocess FROM `currency` WHERE id='$id' ");
$row = mysql_fetch_array($curpro);
if (($row["curprocess"]) == 1) {
return '<span class="badge"> - </span>';
}
elseif (($row["curprocess"]) == 2) {
return '<span class="badge badge-important">افزايش</span>';
}
elseif (($row["curprocess"]) == 3) {
return '<span class="badge badge-warning">کاهش</span>';
}
}
اینم کد فراخوانی:

$arz = mysql_query ("select * FROM `currency` order by `ID` ASC");
while ($row = mysql_fetch_array($arz))
{
echo '<tr>';
echo '<td>' . StatusPESC($row["id"]) . '</td>';
echo '<td>' . $row["curtitle"] . '</td>';
echo '<td>' . $row["curratetoday"] . '</td>';
echo '<td>' . $row["curratelast"] . '</td>';
echo '</tr>';
}

nadi_1368
یک شنبه 10 آذر 1392, 15:26 عصر
چرا ای دی میفرستی؟؟

خوب همون بار اول مقدار curprocess برای تابع statusPESC ارسال کنید بعد چک کنید

البته فک میکنم مشکل از کوئری (البته خیلی وقته کوئری ننوشتم)
اینجوری بنویس


" select curprocess FROM `currency` WHERE id=' ".$id." ' "

pasargadteam
سه شنبه 19 آذر 1392, 12:35 عصر
مرسی از کمک همگی و مشکل مرتفع شد.
بسیار سپاسگذارم.
فایل ضمیمه شده را لطفاً دانلود بفرمایید و مشکلش رو بررسی کنید ممنون میشم.
بنده فرم ثبت نامی رو برای سیستم در حال نوشتن در نظر گرفتم که همه چیز اوکیه و کاملاً کار میکنه.
حال میخواهم به صورت ایجکس بررسی کنم و ببینم که شناسه و ایمیل در دیتابیس وجود نداشته باشه و وقتی شناسه رو کاربر میزنه و ایمیل رو همون لحظه بگه وجود داره یا نه.
برای این منظور خیلی سرچ کردم و اسکریپت های مختلفی رو نگاه کردم اما متأسفانه یکی از این ها رو پیاده سازی کردم ولی کار نمیکنه.
ممنون میشم کسی بتونه کمکم کنه.