ช่วยด้วยคับคิดไม่ออกคับ.....
ผมทำ php อยู่อ่ะเกี่ยวกับการขายโทรศัพท์มือถือ ผมจะบันทึกข้อมูลสินค้าอ่ะคับ...ผมใช้ list/menu 2 อันคับ..อันแรกเก็บข้อมูลยี่ห้อโทรศัพท์ อีกอันเก็บข้อมูลรุ่น พอเวลาบันทึกจะให้มันบันทึก ยี่ห้อกับรุ่นอยู่ในคอลัมเดียวกันจะทำไงคับ ตอนนี้มันบันทึกได้แต่มันไม่ได้เก็บชื่อยี่ห้อกับรุ่นอ่ะคับ...มันเก็บเป็น รหัสยี่ห้อกับรุ่นแทน เพราะผมใช้ list/menu ดึงข้อมูลมาจากฐานข้อมูลอ่ะคับ จะทำยังไงให้มันเก็บเป็นชื่อยี่ห้อกับรุ่นแทนการเก็บเป็นรหัสยี่ห้อกับรุ่น อ่ะคับ....ช่วยด้วยคับ
เก็บเป็นรหัส ดีแล้วครับ เพราะเวลาแก้ชื่อยี่ห้อกับรุ่นจะได้ง่าย ไม่ต้องไปแก้ทุกๆ ที่
ใช้วิธีสร้างตารางเพิ่ม อีกอันโดยเก็บโค้ด กับชื่อยี่ห้อ รุ่น ไว้ให้ลิงค์กันด้วย รหัส แต่อาจจะยุ่งยากตอนเรียกข้อมูลมาแสดงนิดนึง คือต้องใช้ รหัส เป็นตัวเรียกฟิลด์ ยี่ห้อ รุ่นที่เป็นตัวหนังสือ มาแสดง แต่ถ้าหัดปรับโค้ดบ่อยๆ ก็จะชินเองครับ
คิดเหมือนผมเลย
รหัสมักไม่ค่อยถูกแก้ไขครับ รายละเอียดต่างหากที่ถูกแก้ไข ถ้าเมื่อไรรายละเอียดถูกแก้ไข จะทำให้หาสินค้าไม่เจอครับ
ผมเดาว่าปัญหาคงอยู่ที่ เวลาแสดงผลต้อง query 2 ครั้ง เพื่อเลือกเอา รายละเอียดของสินค้ามาแสดงใช่มั้ยครับ เราสามารถแก้ปัญหานี้ได้ง่ายๆ ด้วยการใช้คำสั่ง INNER JOIN เพื่อเรียกดูข้อมูลจาก 2 ตารางครับ
SELECT order.*,product.detail
FROM order
INNER JOIN product
ON product.id=order.productid
WHERE......
มันจะเก็บ หมายเลขเครื่อง ยี่ห้อสินค้า รุ่นสินค้า ชื่อสินค้า(เอายี่ห้อกับรุ่นมารวมกัน) สี รายละเอียด คุณสมบัติ วันที่ผลิต ราคา สถานะการขาย ปัญหาผมคือว่าผมจะเก็บชื่อสินค้าเป็น Nokia n70 ก็คือเอาชื่อกับรุ่นมารวมกันเป็นชื่อสินค้าแต่ผมเก็บเป็นรหัสยี่ห้อกับรหัสรุ่นด้วยคับ ผมจะเอารหัสยี่ห้อกับรุ่นมาเก็บเป็นชื่อสินค้าอ่ะคับแต่ให้มันเก็บชื่อยี่ห้อกับรุ่นนะคับไม่ได้เก็บเป็นรหัสยี่ห้อกับรุ่น
มันจะแก้หรือเพื่ออ่ะไรตรงไหนคับ
ตารางที่ใช้ product(รายละเีอียดการเก็บบอกแล้ว), ageproduct(เก็บรหัสรุ่น, ชื่อรุ่น), brand(เก็บรหัสยี่ห้อ, ชื่อยี่ห้อ)
$sql = "SELECT Braid,Ageproid FROM product WHERE Braid = '$Braid' and Ageproid = '$Ageproid' ";
$result = mysql_query($sql);
$vBraid = mysql_result($result, 0,'Braid');
$vAgeproid = mysql_result($result, 0,'Ageproid');
$vBA = $vBraid.$vAgeproid;
$insertSQL = sprintf("INSERT INTO product (imei, Producename, color, Producedetail, Produceproperty, Producedate, Producemonth, Produceyear, Produceprice, Braid, Ageproid, posi) VALUES (%s, $vBA, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['imei'], "text"),
GetSQLValueString($_POST['color'], "text"),
GetSQLValueString($_POST['Producedetail'], "text"),
GetSQLValueString($_POST['Produceproperty'], "text"),
GetSQLValueString($_POST['Producedate'], "int"),
GetSQLValueString($_POST['Producemonth'], "text"),
GetSQLValueString($_POST['Produceyear'], "int"),
GetSQLValueString($_POST['Produceprice'], "int"),
GetSQLValueString($_POST['Braid'], "int"),
GetSQLValueString($_POST['Ageproid'], "int"),
GetSQLValueString($_POST['position'], "text"));
แบบนี้ได้มั้ย เชื่อมกันตรงๆเลย ถ้าจะเก็บ 2 ข้อมูลรวมกันลงบนฟิลด์เดียว
ถ้าเป็นไปได้ อยากให้แก้ไขระบบ เพื่อบเก็บแค่ id นะครับ จะยืดหยุ่นกว่าในอนาคต นอกเสียจากว่าไม่คิดจะพัฒนาต่อ
<select name="Braid"
<option value="ชื่อสินค้า">ชื่อสินค้า</option>
อีตอนรับค่า Braid ก็จะเป็นชื่อสินค้าแล้วครับ