مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

morfin

عضویت از 1401/01/26

انتخاب یک آیتم از یک ستون دیتابیس

  • جمعه 26 فروردین 1401
  • 11:46
تشکر میکنم

سلام

من در یک ستون دیتابیس عبارات "word1,word2,wod3,word4" دارم

چطور میتونم فقط "word2" رو در php نمایش بدم؟

ممنون

پاسخ های این پرسش

تعداد پاسخ ها : 9 پاسخ
کاربر سایت

امیرحسین

عضویت از 1395/06/24

  • جمعه 26 فروردین 1401
  • 17:40

سلام دوست عزیز

این کار از طریق کوئری به دیتابیس قابل انجام نیست

در واقع شما ابتدا باید یک کوئری بزنید، آیتم مورد نظر رو بریزید در یک وریبل بعد با استفاده از explode این کار رو انجام بدید، به این شکل:

$mystring = "word1, word2, word3,word4";
$explod = explode (",", $mystring); 
print_r($explod);

همونطور که میبینید خروجی در یک ارایه قابل دسترسی هست و میتونید به این شکل هم دسترسی پیدا کنید:

echo $explod[0];

موفق باشید

کاربر سایت

morfin

عضویت از 1401/01/26

  • جمعه 26 فروردین 1401
  • 18:59

کلیت کار بدین صورت است.که در شکل زیر نشون داده شده

در یک ستون دیتابیس عبارات "word1,word2,wod3,word4" ذخیره است.  حالا میخوام بگم : مثلا در قسمت ب: اگر word2 باشد مابقی را نشون نده و فقط word2 رو نشون بده و مابقی به همین صورت.......

کاربر سایت

امیرحسین

عضویت از 1395/06/24

  • جمعه 26 فروردین 1401
  • 19:50

کدتون رو بفرستید و اینکه واضح تر بگید، خیلی گنگه توضیح، یک ستون توی دیتابیس که شامل 4 واژه هست، حالا اون قسمت ها دقیقا چیه؟ حس میکنم روش انجام پروژتون هر چه هست منطقی نیست، یک جورایی پیچوندین کار رو یا توضیح شما ناقصه 

کاربر سایت

امیرحسین

عضویت از 1395/06/24

  • جمعه 26 فروردین 1401
  • 19:57

یعنی یک مقدار از کاربر میگیرد، حالا اگر کاربر word2 رو دقیقا توی "ب" وارد کرده بود، پس شرط کامله؟ اینجا یک چیزی ناقصه، در واقع شما باید یک رابطه ایجاد کنید بین گزینه "الف تا دال" و word1 تا 4

 

اگه درست فهمیده باشم، شما میتونید بعد از کوئری زدن و استفاده از explod بیاید مقدار رو از کاربر بگیرید، بعد شرط بذارید که مثلا 

$explod[1] == $itemB

در اینجا itemB گزینه "ب" هست و مقدار مقایسه شده هم آیتم اول در آرایه که میشه word2 هست

 

اگر ترتیب word ها متفاوته در دیتابیس مثلا دومین واژه همیشه word2 نیست مثلا ترتیب اینطوره word4,word1,word3,word2 اگر به این شکله که باید در دیتابیس یک کلید برای ارتباط گزینه ها قرار بدید

کاربر سایت

morfin

عضویت از 1401/01/26

  • یکشنبه 28 فروردین 1401
  • 17:11

سلام و عرض ادب

ممنون از راهنمایی وکمکتون 

توضیح کلی میدم: کاربر با وارد کردن کد ملی یک سری اطلاعات رو میگیره و در فرم نشون داده میشه.

یک قسمت از فرم جدول هست که شامل یک سری آیتم هست. -> msn,msk,speech,vi,hi (جسمی، گفتاری، بینایی و شنوایی) (در دیتابیس عنوان ستون رو malooliat گذاشتم) که همین موارد مذکور رو در دیتابیس داریم.

 -> مثلا مراجعی از لحاظ گفتار، بینایی مشکل داره و ما اطلاعاتی که براش ثبت کردیم از دیتابیس میگیریم. 

حالا مشکل من اینجاست که تمام موارد در یک ستون ثبت میشه و نمی تونم اون دو مشکلی (گفتار، بینایی) که براش ثبت کردم رو در جدولی که طراحی کردیم جداگانه نشون بدم، شکل روبرو: 

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

کاربر سایت

امیرحسین

عضویت از 1395/06/24

  • دوشنبه 29 فروردین 1401
  • 20:16

سلام و ادب

چنین چیزی منظورتونه؟

<!DOCTYPE html>
<html>
<body>
<style>
table {
  font-family: arial, sans-serif;
  border-collapse: collapse;
  width: 100%;
}

td, th {
  border: 1px solid #dddddd;
  text-align: left;
  padding: 8px;
}

tr:nth-child(even) {
  background-color: #dddddd;
}
</style>
<?php
$query = "yes,yes,no,yes"; //get data from database
$explode = explode(",",$query);
?> 
<table>
  <tr>
    <th>گفتاری</th>
    <th>شنیداری</th>
    <th>بینایی</th>
    <th>جسمی</th>
  </tr>
  <tr>
    <td>
   	<?php
    	if($explode[0] == "yes") {
        	echo "*";
        } else {
        	echo "--";
        }
    ?>
    </td>
    <td>
    <?php
    	if($explode[1] == "yes") {
        	echo "*";
        } else {
        	echo "--";
        }
    ?>
    </td>
    <td>
    <?php
    	if($explode[2] == "yes") {
        	echo "*";
        } else {
        	echo "--";
        }
    ?>
    </td>
    <td>
    <?php
    	if($explode[3] == "yes") {
        	echo "دارای مشکل در جسم";
        } else {
        	echo "--";
        }
    ?>
    </td>
  </tr>
</table>
</body>
</html>
کاربر سایت

morfin

عضویت از 1401/01/26

  • دوشنبه 29 فروردین 1401
  • 22:30

دقیقا :)

ممنون تست میکنم 

کاربر سایت

morfin

عضویت از 1401/01/26

  • سه شنبه 30 فروردین 1401
  • 23:23

سلام مجدد

تست کردم کد رو اوکی بود همه چیز

فقط یه مورد:

من ورودی ها رو با چک باکس در دیتابیس ذخیره میکنم.

اگر ما یک گزینه رو انتخاب نکینم و کوئری ما یکی کم باشه

$query ="yes,yes,no";

در جدولی که گفتیم اطلاعات جابجا نشون داده میشه

مثلا گفتاری رو انتخاب نکردیم و شنوایی رو انتخاب کردیم که به عنوان اولین آیتم در ستون هستش و $explode[0] ما که گفتاری هست به اشتباه شنوایی رو نشون میده

راهکاری در این مورد هست؟ یا میشه در زمان ثبت اطلاعات، چک باکس هایی که انتخاب نکردیم پیشفرض 0 ذخیره بشه؟

کاربر سایت

امیرحسین

عضویت از 1395/06/24

  • سه شنبه 30 فروردین 1401
  • 23:51

موقع ثبت اطلاعات توی دیتابیس یک دستور شرط قرار بدید، مثلا اگر value1 مقدار داشت که هیچ اگر نداشت یک مقدار مثلا none بهش اضافه کنه:

$value1 = $_POST['myNamecheckbox'];
if (isset($value1)) {
	$sql = "INSERT INTO myTable (myitem)
 VALUES ($value1)";
} else {
	$sql = "INSERT INTO myTable  (myitem)
 VALUES ('none')";
}

 

راه دیگه هم اینه با استفاده از jquery و ajax رکوئست رو ارسال کنید و در سمت کاربر موقع ارسال مقدار یک مقدار پیشفرض بگذارید و بفرستید سمت سرور.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)