|
|
|
สอบถามเรื่องการ select ข้อมูลแบบ array หน่อยครับ พอดีไม่รู้จะเริ่มยังไง (มีcodeที่เขียนไว้ให้ดูครับ) |
|
|
|
|
|
|
|
Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","root");
$objDB = mysql_select_db("mydb");
$strMemberID = "1";
$i=0;
$strSQL1 = "SELECT resultknn FROM members WHERE 1 AND memberID = '".$strMemberID."' ";
$objQuery1 = mysql_query($strSQL1);
$obResult1 = mysql_fetch_array($objQuery1);
//echo $obResult1[0];
if ($obResult1[0] == "Food and Drink"){
$i = 1;
}
else if ($obResult1[0] == "Bag"){
$i = 2;
}
else if ($obResult1[0] == "Clothes"){
$i = 3;
}
else if ($obResult1[0] == "Travel"){
$i = 4;
}
else if ($obResult1[0] == "Others"){
$i = 5;
}
$strSQL = "SELECT proID,proName,address,imgpath, DATE_FORMAT(startpro, '%d %b') startpro,DATE_FORMAT(endpro, '%d %b %Y') endpro FROM promotions WHERE 1 AND endpro>DATE(NOW()) AND typeID = $i ";
$objQuery = mysql_query($strSQL);
$intNumField = mysql_num_fields($objQuery);
$resultArray = array();
while($obResult = mysql_fetch_array($objQuery))
{
$arrCol = array();
for($i=0;$i<$intNumField;$i++)
{
$arrCol[mysql_field_name($objQuery,$i)] = $obResult[$i];
}
array_push($resultArray,$arrCol);
}
mysql_close($objConnect);
echo json_encode($resultArray);
?>
ตอนนี้ code เป็นประมาณนี้ครับ คือให้ไปดูว่า member คนนี้มี resultknn = อะไรอะครับ แต่ตอนนี้ค่าใน database เป็นค่าธรรมดา จะไม่มี การเก็บแบบ array เช่น Bag,Clothes
และค่า $i จะมี 1-5 โดยที่จะเป็น typeID ของตารางประเภทอะครับ
แล้วทีนี้ ที่ผมติดคือ ถ้า resultknn ของคนที่ select ออกมาเป็น ( Bag,Clothes หรือ Others,Clothes,Travel ) ประมาณนี้
ตอนเรา select promotion ก็จะต้องเพิ่ม AND typeID = $i ข้างหลังที่มีมากกว่า 1
คือจะทำยังไงให้ php รู้ว่า resultknn นี้ ต้อง select ที่มี type 1, 2หรือ 3 ประเภท อะครับ
ขอบคุณล่วงหน้าครับ
Tag : PHP
|
ประวัติการแก้ไข 2016-04-08 03:04:43
|
|
|
|
|
Date :
2016-04-08 03:03:47 |
By :
nomzod |
View :
799 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เพิ่มตาราง type_group ให้เก็บ ตารางชื่อกลุ่ม ไว้ map ค่าเข้าหากัน
จะให้ดี ใช้ตัวเลข เก็บ type จะทำงานได้ง่ายสดวกขึ้น
|
|
|
|
|
Date :
2016-04-08 05:37:18 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
งงครับ ตอนนี้มี
1. ตารางโปรโมชั่น(join กับ typeID ว่าคือปนะเภทอะไร)
2. ตารางประเภท (เก็บเป็น typeId กับ typeName)
3. ตารางผู้ใช้ อะครับ (เอาค่าในresultknn มาเพื่อดูว่าจะแสดงอะไรให้ผู้ใช้ โดนเก็บเป็น string)
|
|
|
|
|
Date :
2016-04-08 07:26:13 |
By :
nomzod |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แต่ที่สงสัยหลักๆคือ จะรู้ได้ไงว่า คนนี้ผลลัพธ์ จะแสดงแค่ 1 อย่าง คนนี้ 2อย่สง อีกคน3อย่าง เพื่อจะกำหนดฟอร์มในการ select อะครับ
|
|
|
|
|
Date :
2016-04-08 07:28:42 |
By :
nomzod |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
resultknn นี่เก็บข้อมูลเป็น set ใช่ไหมครับ
เก็บในรูปแบบ string สามารถมีหลาย element คั่นด้วย , (comma)
ถ้าใช้ลองประยุกต์ใช้ตามโค๊ดข้างล่างดูครับ
Code (SQL)
select typeid , typename, member_id
from member, grouptype
where concat(',',resultknn,',') like concat('%,',typename,',%')
|
|
|
|
|
Date :
2016-04-08 10:47:33 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|