PDA

View Full Version : سوال: خطای ستون نا معلوم



farshad_momtaz
پنج شنبه 23 مهر 1388, 04:01 صبح
سلام,
من کد ریز را برای یک باکس برای نشون دادن تعداد nbid و sbid کاربر که توی جدول هست نوشتم

<td width="255" valign="top">
<?
if (isset($_COOKIE['efaun'])) {
include 'logindb.php';
$query = mysql_query("SELECT usertype,nbid,sbid FROM users WHERE username = ".$_COOKIE['efaun']) or die(mysql_error());
$data = mysql_fetch_array($query);
$row = mysql_fetch_array($data);
?>
<table border="0" width="100%">
<tr>
<td colspan="3"><b>Welcome, <? echo $_COOKIE['efaun']; ?></b></td>
</tr>
<tr>
<td colspan="2"><b><a href="usercp.php">
<span style="text-decoration: none"><font color="#000000">My Account</font></span></a></b></td>
<td rowspan="2">&
<?
if ($row ['usertype'] == normal)
echo "normal user";
?>
<p>&nbsp;</td>
</tr>
<tr>
<td colspan="2"><b><a href="logout.php">
<span style="text-decoration: none"><font color="#000000">Log-out</font></span></a></b></td>
</tr>
<tr>
<td><font size="2">Normal bids: <? echo "$row ['nbid']"; ?>|</font></td>
<td colspan="2"><font size="2">Speed bids: <? echo "$row ['sbid']"; ?>|</font></td>
</tr>
</table>
<?
} else{
?>
<center>
<form action='login.php' method='POST'>
<table width="255" height="111">
<tr>
<td align='right'>
<p align="center">Username: <input type='text' size='15' maxlength='25' name='username'>
</td>
</tr>
<tr>
<td align='right'>
<p align="center">Password: <input type='password' size='15' maxlength='25' name='password'>
</td>
</tr>
<tr>
<td align='center'>
<input type="submit" value="Login">
</td>
</tr>
<tr>
<td align='center'>
<a href="register.html">Register</a> - Forgot Your Password?</td>
</table>
</form>
</center>
</td>
ولی بعد از اجرای کد با حطای زیر برخورد می کنم مشکل چیه؟

Unknown column 'admin' in 'where clause'و وقتی که قسمت where را از توی کوئری پاک می کنم بازم ارور می ده!
راستی logindb.php فقط به اس کیو ال وصل می کنه همین
مشکل از کجاست؟

ممنون

hueman
پنج شنبه 23 مهر 1388, 08:44 صبح
username رو تو بخش select انتخاب نکردی دوست من، وقتی ما اس کیو ال username رو انتخاب نکرده چجوری میخای تو بخش where ازش استفاده کنه؟
کوئری درست:


SELECT username,usertype,nbid,sbid FROM users WHERE username = ".$_COOKIE['efaun']

farshad_momtaz
پنج شنبه 23 مهر 1388, 09:00 صبح
دوست عزیز ممنون ولی باز هم با خطای زیر روبرو می شم

Unknown column 'admin' in 'where clause'

sama01
پنج شنبه 23 مهر 1388, 12:25 عصر
دوست عزیز.
شما به یک چیز توجه نکردی.
در چنین مواردی که خطا در query پیدا می‌کنی، حتما یک بار قبل از اجرای query، آن را echo کن.

فرض کن (که عملا هم همین کار را می‌کنید) شما نام admin را به عنوان Username وارد کنید.
query شما این طوری می‌شه:

SELECT username,usertype,nbid,sbid FROM users WHERE username = admin
معنای این کد اینه که فیلدهای username,usertype,nbid,sbid را انتخاب کن به شرطی که مقدار فیلد username برابر باشد با مقدار فیلد admin.
و این غلطه.
query شما باید چنین چیزی بشه:

SELECT username,usertype,nbid,sbid FROM users WHERE username = 'admin'

متوجه شدی فرقش چیه؟
خودت درستش کن.

farshad_momtaz
پنج شنبه 23 مهر 1388, 19:38 عصر
خیلی ممنون حالا فهمیدم مشکل از کجا بود ولی حالا یه مشکل دیگه پیش اومد
بعد از اجرای کد تعداد nbid ها رو به صورت زیر نشون می ده؟!

Normal bids: Array ['nbid']
و کد زیر هم کد صفحه من هست بعد از تغییرات

<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>EfreeAuctions.com - Registeration</title>

</head>

<body bgcolor="#FFFFFF" background="images/background.jpg" style="text-align: center">

<div align="center">
<table cellpadding="0" cellspacing="0" width="1089" height="180" background="images/header.jpg">
<!-- MSTableType="layout" -->
<tr>
<td valign="top" rowspan="2" width="823">&nbsp;</td>
<td valign="top" colspan="2" height="65">&nbsp;</td>
</tr>
<tr>
<td width="255" valign="top">
<?
if (isset($_COOKIE['efaun'])) {
include 'logindb.php';
$username = ($_COOKIE['efaun']);
$query = mysql_query("SELECT username,userstype,nbid,sbid FROM users WHERE username = '$username'")or die(mysql_error());
$data = mysql_fetch_array($query);
?>
<table border="0" width="100%">
<tr>
<td colspan="3"><b>Welcome, <? echo $_COOKIE['efaun']; ?></b></td>
</tr>
<tr>
<td colspan="2"><b><a href="usercp.php">
<span style="text-decoration: none"><font color="#000000">My Account</font></span></a></b></td>
<td rowspan="2">&
<?
if ($data ['userstype'] == normal)
echo "normal user";
?>
<p>&nbsp;</td>
</tr>
<tr>
<td colspan="2"><b><a href="logout.php">
<span style="text-decoration: none"><font color="#000000">Log-out</font></span></a></b></td>
</tr>
<tr>
<td><font size="2">Normal bids: <? echo "$data ['nbid']"; ?>|</font></td>
<td colspan="2"><font size="2">Speed bids: <? echo "$data ['sbid']"; ?>|</font></td>
</tr>
</table>
<?
} else{
?>
<center>
<form action='login.php' method='POST'>
<table width="255" height="111">
<tr>
<td align='right'>
<p align="center">Username: <input type='text' size='15' maxlength='25' name='username'>
</td>
</tr>
<tr>
<td align='right'>
<p align="center">Password: <input type='password' size='15' maxlength='25' name='password'>
</td>
</tr>
<tr>
<td align='center'>
<input type="submit" value="Login">
</td>
</tr>
<tr>
<td align='center'>
<a href="register.html">Register</a> - Forgot Your Password?</td>
</table>
</form>
</center>
</td>
<td height="115" width="11">&nbsp;</td>
</tr>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="1089" height="34">
<!-- MSTableType="layout" -->
<tr>
<td background="images/mmleft.jpg" width="25">
<!-- MSCellType="ContentBody" -->
&nbsp;</td>
<td background="images/mainmenubg.jpg" align="center" width="60">
<!-- MSCellType="ContentBody" -->
<span style="font-weight: 700; text-decoration: none">
<a href="index.php">
<font color="#000000"><span style="text-decoration: none">Home</span></font></a></span></td>
<td background="images/mainmenubg.jpg" align="center" width="177">
<!-- MSCellType="ContentBody" -->
<b><a href="blog/index.php"><span style="text-decoration: none">
<font color="#000000">Blog and Updates</font></span></a></b></td>
<td background="images/mainmenubg.jpg" align="center" width="140">
<!-- MSCellType="ContentBody" -->
<b><a href="bidper.php"><span style="text-decoration: none">
<font color="#000000">Purchase Bids</font></span></a></b></td>
<td background="images/mainmenubg.jpg" align="center" width="153">
<!-- MSCellType="ContentBody" -->
<b><a href="addanitem.php"><span style="text-decoration: none">
<font color="#000000">List Your Items</font></span></a></b></td>
<td background="images/mainmenubg.jpg" align="center" width="165">
<!-- MSCellType="ContentBody" -->
<b><a href="wd.php"><span style="text-decoration: none">
<font color="#000000">Weekly Drawing</font></span></a></b></td>
<td background="images/mainmenubg.jpg" align="center" width="181">
<!-- MSCellType="ContentBody" -->
<b><a href="ita.php"><span style="text-decoration: none">
<font color="#000000">Items Given Away</font></span></a></b></td>
<td background="images/mainmenubg.jpg" align="center" width="51">
<!-- MSCellType="ContentBody" -->
<b><a href="faq.php"><span style="text-decoration: none">
<font color="#000000">FAQ</font></span></a></b></td>
<td background="images/mainmenubg.jpg" align="center" width="111">
<!-- MSCellType="ContentBody" -->
<b><a href="contactus.php"><span style="text-decoration: none">
<font color="#000000">Contact Us</font></span></a></b></td>
<td background="images/mmright.jpg" height="34" width="26">
<!-- MSCellType="ContentBody" -->
<p align="right">&nbsp;</td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="1089" height="307">
<!-- MSTableType="layout" -->
<tr>
<td valign="middle" bgcolor="#FFFFFF" height="19">

</td>
</tr>
<tr>
<td valign="middle" bgcolor="#FFFFFF" height="216">

<?
if (isset($_COOKIE['efaun'])) {
?>
<!-- MAIN BOX -->






<?

} else{
echo "You should log-in first.";
}
}
?>

</tr>
<tr>
<td background="images/footer.jpg" height="72" width="1089">
<p align="center">Copyright © 2009 EFreeAuctions.com. All Rights
Reserved.</td>
</tr>
</table>
</div>


</body>

</html>

sama01
جمعه 24 مهر 1388, 10:24 صبح
برای echo آرایه، از سمی‌کالن استفاده نکن.
مستقیم بنویس:

<? echo $data['nbid']; ?>

امیـرحسین
جمعه 24 مهر 1388, 13:13 عصر
username رو تو بخش select انتخاب نکردی دوست من، وقتی ما اس کیو ال username رو انتخاب نکرده چجوری میخای تو بخش where ازش استفاده کنه؟
با احترام، اصلا اینطور نیست!

s_salavati2002
جمعه 24 مهر 1388, 14:36 عصر
برای echo آرایه، از سمی‌کالن استفاده نکن.
مستقیم بنویس:

<? echo $data['nbid']; ?>
با احترام، دابل کوتیشن :چشمک:

hueman
جمعه 24 مهر 1388, 15:55 عصر
با احترام، اصلا اینطور نیست!
با احترام بسیار حق با شماست دوست من
یه اشتباه نه چندان کوچک بود که امیدوارم باعث گمراهی فرشاد جان نشه، برای استفاده از ستونها در بخش where نیازی نیست که select بشن، بعد از اینکه امیرحسین جان گفتن که اشتباه می کنم یه سری به کدهای این چندساله م زدم و دیدم که چقدر توی سلکت هام اشتباه کردم و بابت این کمک بزرگ ازش ممنونم.

farshad_momtaz
جمعه 24 مهر 1388, 19:37 عصر
ممنون از همگی
ولی چرا باید از " استفاده کرد؟ من همیشه از کوشین استفاده می کردم؟
اصلا این دابل و نورمال کوشین جریانشون چیه؟!!!:لبخند:

s_salavati2002
جمعه 24 مهر 1388, 22:21 عصر
ممنون از همگی
ولی چرا باید از " استفاده کرد؟ من همیشه از کوشین استفاده می کردم؟
اصلا این دابل و نورمال کوشین جریانشون چیه؟!!!:لبخند:
فرق اصلیشون تو اینه که محتویات دابل کوتیشن پارس میشه ولی سینگل همونطوری می مونه
امیرحسین هم منظورش از سمی کالن ، دابل کوتیشن بود(منظور پست قبلیمو اشتباه متوجه شدی)
کلا اگر می خوای دو عبارت رو به هم وصل کنی از دات استفاده کن به جای اینکه تو دابل بنویسی چون سرعتش بیشتره