نمایش نتایج 1 تا 6 از 6

نام تاپیک: خواندن چند خطی از یک فیلد دیتابیس

  1. #1

    خواندن چند خطی از یک فیلد دیتابیس

    سلام

    من در یک فیلد کلمات کلیدی رو بصورت زیر هم ذخیره میکنم.
    یعنی کاربر در سایت کلمات کلیدی رو در یک باکس تایپ میکنه و اینتر میزنه و در آخر کار دکمه ذخیره رو فشار میده و کل این کلمات در یک فیلد بنام keywords ذخیره میشه که اونجا هم بصورت زیر هم هستش.

    حالا موقع خواندن این کلمات از دیتابیس باید به چه صورتی عمل بشه؟ من الان از کد زیر استفاده میکنم که همه ی کلمات رو بصورت یک رشته برمیگردونه ، در صورتیکه میخوام هر کلمه کلیدی بصورت جداگانه بصورت یک رشته برگردونده بشه.

    <?
    $query="select dynamic_tbl.id, dynamic_tbl.keywords from dynamic_tbl where dynamic_tbl.id='$itemid'";
    $result=mysql_db_query($dbname,$query,$RSconn) or die($query."<br><br>".mysql_error());
    while($RS=mysql_fetch_array($result)){
    $id=$RS["id"];
    $kw=$RS["keywords"];
    echo "<a href=$proot/keys/$id>$kw</a>";
    }
    ?>

    من تازه php رو شروع کردم.
    لطفا راهنماییم کنید......

  2. #2
    کاربر دائمی آواتار Reza1607
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    يه جايي تو مشهد
    پست
    969

    نقل قول: خواندن چند خطی از یک فیلد دیتابیس

    شما بايد موقعي كه مي خواي كلمات كليدي رو ذخيره كني اين كلمات رو با يك فاصله ( يا هر كاركتر جداكننده ديگه اي مثل $ ) جداكنيد و بعد موقع نمايش از دستور زير استفاده كنيد

    $keys=explode(' ',$row['keywords']);
    foreach($keys=>$key)
    echo '<a href="#">'.$key.'</a>&nbsp;&nbsp;';

    اگه به جاي فاصله از هر كاراكتر ديگه اي استفاده كردي بايد همون رو به عنوان پارامتر اول به تابع explode بدي

  3. #3

    نقل قول: خواندن چند خطی از یک فیلد دیتابیس

    کد زیر رو ببینید:

    <?php
    $query = "SELECT `id`, `keywords` FROM `dynamic_tbl` WHERE (`id`='{$itemid}')";
    $result = mysql_db_query($dbname,$query,$RSconn) or die('<p>'.$query.'</p>'.mysql_error());
    while($RS = mysql_fetch_array($result)) {
    $id = $RS['id'];
    $kw = nl2br($RS['keywords']);
    $keywords = explode('<br />', $kw);
    foreach($keywords as $kw) {
    echo "<p><a href={$proot}/keys/{$id}>{$kw}</a></p>";
    }
    }
    ?>

    فرق این کد با کد شما:
    1- از تگ php?> بجای ?> برای شروع کدهای PHP استفاده شده که در همه سرورها جواب میده ولی تگ خلاصه ?> ممکنه همه جا جواب نده.
    2- کلمات کلیدی بعد از خونده شدن از دیتابیس، به تابع nl2br ارسال شدن تا بجای کارکتر New Line توی اونها تگ </ br> رو قرار بده.
    3- بعد از این کار، متن موجود در متغیر kw$ برحسب رشته </ br> که در مرحله قبل توی اون گذاشتیم، شکسته شده و بصورت یک آرایه در میاد.
    4- هرکدوم از خونه های آرایه مربوطه، با کمک ساختار foreach پیمایش شده و بصورت لینک توی صفحه درج میشن.
    اگه جایی از کد رو مشکل داشتین، بفرمایید تا توضیح بدم. موفق باشید.

  4. #4

    نقل قول: خواندن چند خطی از یک فیلد دیتابیس

    سلام جناب MMSHFE

    ممنون از توضیحاتتون
    من از راهنمایی شما استفاده کردم و جواب داد فقط یه مشکل کوچیک هست.

    ببینید برای تابع explode اگه آرگومان اول رو فقط 2تا کوتیشن چسبیده بهم باشه کد کار نمیکنه. اگه بین کوتیشنها فاصله بذارم همه ی کلمات رو بر اساس فاصله ها میشکونه. یعنی مثلا اگه عبارت "انجمن برنامه نویسی" رو در نظر بگیریم هر کدام از این کلمات تبدیل به یه لینک مجزا میشه مثل >> انجمن برنامه نویسی

    من خودم اومدم بجای فاصله ، عبارت </ br> رو در داخل تابع explode قرار دادم که کلمات رو بصورت لیستی در آورد ولی همش با هم 1 لینک سرتاسری شد. اگه بشه هر خطش یه لینک مجزا بشه کار من راه میفته !

    مثلا اگه 3 تا کلمه ی زیر رو بعنوان کلمات کلیدی فرض کنیم ، با تغییری که خودم تو کد دادم هر 3 تا کلمه بصورت زیر درمیاد :
    علایق
    برنامه نویسی
    پروژه


    در صورتیکه من میخوام بصورت زیر باشه :
    علایق
    برنامه نویسی
    پروژه

  5. #5

    نقل قول: خواندن چند خطی از یک فیلد دیتابیس

    شما گفتین کلمات کلیدی توی سطرهای مختلف هست. حالا اگه توی یک سطر هستن و با فاصله جدا شدن، روش کار کمی فرق میکنه. دقیقاً مشخص کنید چه نتیجه ای رو لازم دارین تا بهتر بشه توضیح بدیم. ضمناً درصورت امکان کدی که نوشتین رو بگذارین تا تغییرات لازم رو روی اون اعمال کنیم تا خروجی موردنظر شما رو تولید کنه. اگه یک تصویر هم از اطلاعات نمونه ای که توی دیتابیس گذاشتین (همون محیط phpmyadmin) بگذارین، خیلی بهتر میشه. موفق باشید.

  6. #6

    نقل قول: خواندن چند خطی از یک فیلد دیتابیس

    سلام

    بجای </ br> کاراکتر < رو در داخل تابع explode قرار دادم و مشکل حل شد.

    با تشکر فراوان از راهنمایی شما

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •