PDA

View Full Version : حرفه ای: مشکل در اجرای شرط



vivaams
پنج شنبه 29 تیر 1391, 16:36 عصر
سلام به همه
یه وب پیچی رو طراحی کردم که داخلش دو تا شرط داره
شرح شرطها به این صورته که
دوتا فیلد رو از کاربر میگیره و با دوتا فیلد مربوطه در بانک مقایسه میکنه
گفتم اگه وجود داشت فلان کار رو بکن و اگه نداشت برو به یه صفحه دیگه
ولی وقتی شرط در صورت عدم وجود رو میذارم فقط همین کار میکنه
میخواستم ببینم مشکلش چیه ؟

narsisss
پنج شنبه 29 تیر 1391, 16:50 عصر
کدتو بذار اگه میتونی

us1234
پنج شنبه 29 تیر 1391, 19:39 عصر
احتمالا شرط را اشتباه نوشتی . یه کار انجام بده این شرط را به 2 تا شرط تبدیل کن . اول یکی را چک کن اگه درست بود بعد دومی را چک کن. یعنی میگی آیا فیلد اول موجوده ؟ اگه بود میگی آیا فیلد دوم هم موجوده ؟ اگه درست بود کارتا انجام میدی اگه نه که تو else شرط اول کار دوم که خودت گفتی را انجام میدی

vivaams
جمعه 30 تیر 1391, 23:37 عصر
از لحاظ اینکه اشتباه کرده باشم بعید میدونم ولی کد رو میذارم ببینید
این اولین بار نیست تو این 4سال که php بازی در می اره هر دفعه حلش کردم ولی این بار دیگه ...



<?php
$shnumber=@$_POST['shnumber'];
$melicode=@$_POST['melicode'];
include "class.php";
$query="select * from table1";
$result=mysql_query($query);
$num=mysql_num_rows($result);
for($i=0;$i<$num;$i++){
$row=mysql_fetch_row($result);//4-5
if($shnumber && $melicode){
if($shnumber != $row[4] && $melicode != $row[5]){
?>
<form name="fpost" id="fpost" action="n1.php" method="post">
<input type="hidden" name="shsh" value="<?php echo $shnumber; ?>" />
<input type="hidden" name="melimeli" value="<?php echo $melicode; ?>" />
</form>
<?php
echo "<script type=\"text/javascript\">fpost.submit();</script>";
}
if($shnumber == $row[4] && $melicode == $row[5]){
?>
<p align="center">
<table align="center" dir="rtl" border="3" id="table">
<tr align="center" bordercolor="#FF0000">
<td>
نام
</td>
<td>
نام خانوادگی
</td>
<td>
نام پدر
</td>
<td>
شماره شناسنامه
</td>
<td>
کد ملی
</td>
<td>
رشته تحصیلی
</td>
<td>
مقطع
</td>
<td>
دانشگاه
</td>
<td>
شغل
</td>
<td>
شماره محل کار
</td>
<td>
آدرس محل کار
</td>
<td>
شماره تماس
</td>
<td>
استان
</td>
<td>
شهر
</td>
<td>
آدرس
</td>
</tr>
<tr style="cursor:pointer;" onclick="myclick(<?php print($row[0]); ?>);" id="<?php print($row[0]); ?>"><td id="td<?php print($row[0]); ?>">
<?php
echo $row[1];echo '</td>';?><td id="td1<?php print($row[0]); ?>">
<?php
echo $row[2];echo '</td>';?><td id="td2<?php print($row[0]); ?>"><?php
echo $row[3];echo '</td>';?><td id="td3<?php print($row[0]); ?>"><?php
echo $row[4];echo '</td>';?><td id="td4<?php print($row[0]); ?>"><?php
echo $row[5];echo '</td>';?><td id="td5<?php print($row[0]); ?>"><?php
echo $row[6];echo '</td>';?><td id="td6<?php print($row[0]); ?>"><?php
echo $row[7];echo '</td>';?><td id="td7<?php print($row[0]); ?>"><?php
echo $row[8];echo '</td>';?><td id="td8<?php print($row[0]); ?>"><?php
echo $row[9];echo '</td>';?><td id="td9<?php print($row[0]); ?>"><?php
echo $row[10];echo '</td>';?><td id="td10<?php print($row[0]); ?>"><?php
echo $row[11];echo '</td>';?><td id="td11<?php print($row[0]); ?>"><?php
echo $row[12];echo '</td>';?><td id="td12<?php print($row[0]); ?>"><?php
echo $row[13];echo '</td>';?><td id="td13<?php print($row[0]); ?>"><?php
echo $row[14];echo '</td>';?><td id="td14<?php print($row[0]); ?>"><?php
echo $row[15];echo '</td></tr>';
//break;
//endwhile;
}
?>
</table>
</p><?php
}
}

mysql_close($db);
?>

به هر صورتی که فکرشم بکنید نوشتم ولی ...

WOLF_MEHRDAD
جمعه 30 تیر 1391, 23:47 عصر
درود بر شما

به نظر من که این کد مشکل داره از نظر ساختار
شما میتونی با دستورات sql خیلی از این خط ها رو کم کنی

موفق باشید

WOLF_MEHRDAD
جمعه 30 تیر 1391, 23:57 عصر
شاید این تکه کد کمکتون کنه :




<?php

$shnumber = isset($_POST['shnumber']) ? $_POST['shnumber'] : 0;
$melicode = isset($_POST['melicode']) ? $_POST['melicode'] : 0;

if($shnumber != 0 or $shnumber != 0)
{
$query = "SELECT * FROM table1 WHERE shnumber= ". $shnumber ." AND melicode = ". $melicode ." ;";
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
if($num_rows != 0)
{
$row = mysql_fetch_array($result);

$f_name = $row['f_name'];
$l_name = $row['l_name'];

echo $f_name . " " . $l_name;
}
else
{
echo "Not Found";
}
}
?>

us1234
شنبه 31 تیر 1391, 11:02 صبح
آره . چرا where نگذاشتی ! نیاز به شرط این جور چیز ها هم نیست.

imanitc
شنبه 31 تیر 1391, 11:38 صبح
بهتره $row هات بجاي استفاده از ايندکس عددي از نام فيلد استفاده کني مثلا بجاي

$row[4]
از
$row[shnumber] استفاده کن استفاده عددي بعنوان ايندکس در خواندن از ديتا بيس بعدا مشکلاتي بوجود مياره
بعد ميتوني شرطت که با php گذاشتي با يک where ساده sql حل کني مثلا بنويسي
SELECT * FROM table1 WHERE shnumber = $shnumber AND melicode = $melicode
در ضمن ميتوني بجاي for زا حلقه while استفاده کني
بصورت
while($row=mysql_fetch_row($result))