مقایسه دو کاراکتر یا رشته در مدیریت منو
من یه برنامه نوشتم برای مدیریت منو ها که اگه نام صفحه با نام منو همخونی داشت منو فعال باشه یعنی رنگش بشه مثلا سفید اما کار نمی کنه یعنی همش نامساوی میگیره حتی وقتی مستقیم مقایسه می کنم
این کدیه که نوشتم تو این کد title نام صفحه است و name هم نام منو
<ul id="top_nav">
<?php
$conn = db_connect();
$result = mysql_query("select * from tab");
$num= mysql_num_rows($result);
for($i=0; $i<>$num ;$i++)
{
$row= mysql_fetch_row($result);
$name =$row[0];
$ad =$row[1];
if($name==$title)
echo "<li class=\"active\"><a href=\"$ad \">$name</a></li>";
else
if($name <> $title)
echo "<li ><a href=\"$ad \">$name</a></li>";
}
?>
</ul>
نقل قول: مقایسه دو کاراکتر یا رشته در مدیریت منو
دوست عزیز یه مقداری کد هات مشکل داشت
به صورت زیر هم بهینه تره هم درست تره
فقط تابع db_connect چیه چنین تابع ای نداریم
مگر اینکه خود شما تعریف کرده باشی
اسکریپت شما به احتمال زیاد نمی تونه به دیتابیس وصل بشه
اگر کدتون کامل تره بگذاریدش
<ul id="top_nav">
<?php
$conn = db_connect();
$result = mysql_query("select * from tab");
while($row=mysql_fetch_row($result)){
$name =$row[0];
$ad =$row[1];
if($name==$title){
echo '<li class="active"><a href="'.$ad.'">'.$name.'</a></li>';
}elseif($name <> $title){
echo '<li><a href="'.$ad.'">'.$name.'</a></li>';
};
};
?>
</ul>
نقل قول: مقایسه دو کاراکتر یا رشته در مدیریت منو
شما کدهاتون رو debug کنید ببینید مشکلش کجاست. یعنی مقدار name$ رو تو هر چرخش چاپ کنید ببینید چرا اینجوریه
غیر از اون title$ کجا تعریف شده؟
نقل قول: مقایسه دو کاراکتر یا رشته در مدیریت منو
به نظر من کد ها مشکلی ندارن.اگه جاییش قرار باشه مشکل داشته باشه باید مقدار متغیر name باشه.چک کن ببین این متغیر(منظورم name) همون مقداری رو داره که باید داشته باشه؟منظورم اینه که row[0] رو درست داری انتخاب میکنی یا نه؟
نقل قول: مقایسه دو کاراکتر یا رشته در مدیریت منو
تابع db_connect یه تابعه که خودم برای اتصال به دیتا بیس تعریف کردم و همه روش ها رو که گفتید رفتم حالا نمی دونم اشکال تو مقایسه است؟! یعنی باید هر دو تا رشته باشن که قابل مقایسه باشن تابعی هست که کاراکتر رو رشته تبدیل کنه؟!
ممنون
نقل قول: مقایسه دو کاراکتر یا رشته در مدیریت منو
شما کجا به $title
مقدار دادی
زمانی که به متغییری مقدار ندی مقدار اون با نال یکی میشه شما ابتدا مقدار $title,$name
رو جدا چاپ کن ببین یکی هستند یا نه اگر کدت فقط همین باشه مطمئن باش که مقدار title برابر null خواهد بود
اگر اشتباه می کنم دوستان بفرمایند