PDA

View Full Version : سوال: قبول نكردن ايندكس



numberone1
پنج شنبه 21 بهمن 1389, 02:27 صبح
من اين كوئري رو اجرا ميكنم


$num_rows = mysql_num_rows($result);
if(($r= count($num_rows))>0){
while($rows = mysql_fetch_row($result)){
echo $rows[3] . "<br/>";
الان اين كوئري درست كار ميكنه ولي وقتي خط آخرشو به اين تغيير بدم


echo $rows['title'] . "<br/>";
اين ارور و ميده نميدونم چرا؟؟؟

Notice: Undefined index: title in در صورتي كه فيلد تيتر توي ديتابيس به همين نام وجود داره
اگر شماره ايندكس بدم درست كار ميكنه ولي اگر اسمشو بدم ديگه كار نميكنه؟!!!

$ M 3 H R D A D $
پنج شنبه 21 بهمن 1389, 02:37 صبح
mysql_fetch_row — Get a result row as an enumerated array



<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);

echo $row[0]; // 42
echo $row[1]; // the email value
?>







mysql_num_rows — Get number of rows in result




$r= count($num_rows)



عدد بر میگردونه نه آرایه
برای استفاده از $rows['title']



while($rows = mysql_fetch_array($result))

MMSHFE
پنج شنبه 21 بهمن 1389, 08:04 صبح
با سلام، دقت كنيد كه mysql_fetch_row بصورت انديس عددي (0 و 1 و 2 و... ستونها رو بر ميگردونه) و mysql_fetch_assoc بصورت انجمني (با انديس رشته اي كه انديس هر ستون، نام ستون خواهد بود). حالا اگه نياز به هر دو حالت داشتين (انديس عددي و رشته اي با هم) از mysql_fetch_array استفاده كنيد. البته بهتره اين كار رو اگه واقعاً بهش نياز نداريد، استفاده نكنيد چون حافظه زيادي مصرف ميكنه (چون دو نسخه از هر عنصر وجود خواهد داشت كه يكي انديس عددي و ديگري انديس رشته اي داره). خروجي اين توابع رو ميتونيد با print_r يا var_dump نمايش بديد تا متوجه بشين كه چطور كار ميكنن. ضمناً وقتي num_row$ رو ازطريق mysql_num_rows محاسبه كردين، خودش تعداد سطرها رو بدست آورده و ديگه نيازي به استفاده از count نيست.


if(mysql_num_rows($result)>0)
{
while($row=mysql_fetch_assoc($result))
{
echo($row['title'].'<BR/>');
}
}
موفق و مؤيد باشيد.

numberone1
پنج شنبه 21 بهمن 1389, 16:00 عصر
با سلام، دقت كنيد كه mysql_fetch_row بصورت انديس عددي (0 و 1 و 2 و... ستونها رو بر ميگردونه) و mysql_fetch_assoc بصورت انجمني (با انديس رشته اي كه انديس هر ستون، نام ستون خواهد بود). حالا اگه نياز به هر دو حالت داشتين (انديس عددي و رشته اي با هم) از mysql_fetch_array استفاده كنيد. البته بهتره اين كار رو اگه واقعاً بهش نياز نداريد، استفاده نكنيد چون حافظه زيادي مصرف ميكنه (چون دو نسخه از هر عنصر وجود خواهد داشت كه يكي انديس عددي و ديگري انديس رشته اي داره). خروجي اين توابع رو ميتونيد با print_r يا var_dump نمايش بديد تا متوجه بشين كه چطور كار ميكنن. ضمناً وقتي num_row$ رو ازطريق mysql_num_rows محاسبه كردين، خودش تعداد سطرها رو بدست آورده و ديگه نيازي به استفاده از count نيست.


if(mysql_num_rows($result)>0)
{
while($row=mysql_fetch_assoc($result))
{
echo($row['title'].'<BR/>');
}
}
موفق و مؤيد باشيد.
خيلي خوب توضيح داديد
درست متوجه شدم مرسي