A-AA+then

ช่วยด้วยคับคิดไม่ออกคับ.....

1,872
ผมทำ php อยู่อ่ะเกี่ยวกับการขายโทรศัพท์มือถือ ผมจะบันทึกข้อมูลสินค้าอ่ะคับ...ผมใช้ list/menu 2 อันคับ..อันแรกเก็บข้อมูลยี่ห้อโทรศัพท์ อีกอันเก็บข้อมูลรุ่น พอเวลาบันทึกจะให้มันบันทึก ยี่ห้อกับรุ่นอยู่ในคอลัมเดียวกันจะทำไงคับ ตอนนี้มันบันทึกได้แต่มันไม่ได้เก็บชื่อยี่ห้อกับรุ่นอ่ะคับ...มันเก็บเป็น รหัสยี่ห้อกับรุ่นแทน เพราะผมใช้ list/menu ดึงข้อมูลมาจากฐานข้อมูลอ่ะคับ จะทำยังไงให้มันเก็บเป็นชื่อยี่ห้อกับรุ่นแทนการเก็บเป็นรหัสยี่ห้อกับรุ่น อ่ะคับ....ช่วยด้วยคับ

7 ความคิดเห็น

 เก็บเป็นรหัส ดีแล้วครับ เพราะเวลาแก้ชื่อยี่ห้อกับรุ่นจะได้ง่าย ไม่ต้องไปแก้ทุกๆ ที่
ใช้วิธีสร้างตารางเพิ่ม อีกอันโดยเก็บโค้ด กับชื่อยี่ห้อ รุ่น ไว้ให้ลิงค์กันด้วย รหัส แต่อาจจะยุ่งยากตอนเรียกข้อมูลมาแสดงนิดนึง คือต้องใช้ รหัส เป็นตัวเรียกฟิลด์ ยี่ห้อ รุ่นที่เป็นตัวหนังสือ มาแสดง แต่ถ้าหัดปรับโค้ดบ่อยๆ ก็จะชินเองครับ

1

555+++

คิดเหมือนผมเลย

รหัสมักไม่ค่อยถูกแก้ไขครับ รายละเอียดต่างหากที่ถูกแก้ไข ถ้าเมื่อไรรายละเอียดถูกแก้ไข จะทำให้หาสินค้าไม่เจอครับ

ผมเดาว่าปัญหาคงอยู่ที่ เวลาแสดงผลต้อง query 2 ครั้ง เพื่อเลือกเอา รายละเอียดของสินค้ามาแสดงใช่มั้ยครับ เราสามารถแก้ปัญหานี้ได้ง่ายๆ ด้วยการใช้คำสั่ง INNER JOIN เพื่อเรียกดูข้อมูลจาก 2 ตารางครับ

SELECT order.*,product.detail
FROM order
INNER JOIN product
ON product.id=order.productid
WHERE......
2

code แบบนี้อ่ะคับ....
มันจะเก็บ หมายเลขเครื่อง ยี่ห้อสินค้า รุ่นสินค้า ชื่อสินค้า(เอายี่ห้อกับรุ่นมารวมกัน) สี รายละเอียด คุณสมบัติ วันที่ผลิต ราคา สถานะการขาย ปัญหาผมคือว่าผมจะเก็บชื่อสินค้าเป็น 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"));
3

GetSQLValueString( $_POST[col1].' '.$_POST[col2], 'text');

แบบนี้ได้มั้ย เชื่อมกันตรงๆเลย ถ้าจะเก็บ 2 ข้อมูลรวมกันลงบนฟิลด์เดียว

ถ้าเป็นไปได้ อยากให้แก้ไขระบบ เพื่อบเก็บแค่ id นะครับ จะยืดหยุ่นกว่าในอนาคต นอกเสียจากว่าไม่คิดจะพัฒนาต่อ
4

$_POST[imei] มันเป็นชื่อ textfield คับ...แต่ผมไม่มี textfield ที่ให้กรอกชื่อสินค้าอ่ะคับ..คือจะเอาชื่อสินค้ามาจาก Braid กับ Ageproid แต่มันออกมาเป็นรหัสยี่ห้อกับรุ่นอ่ะ...จะให้มันออกมาเป็นชื่อยี่ห้อกับรุ่นคับ...
5

GetSQLValueString( $_POST['$vBraid'].' '.$_POST['$vAgeproid'], 'text'); มันเก็บเป็นรหัสยี่ห้อกับรุ่นอะคับ..ทำไงให้มันเก็บเป็นชื่อยี่ห้อกับรุ่นคับ
6

เห็นบอกว่าใช้ select ก็แค่เปลี่ยน Value ของ select เป็นค่าที่ต้องการเก็บเท่านั้นครับ เราก็จะได้ค่าที่ต้องการแล้ว โดยไม่ต้งแก้ไขอะไรเลย

<select name="Braid"
<option value="ชื่อสินค้า">
ชื่อสินค้า</option>

อีตอนรับค่า Braid ก็จะเป็นชื่อสินค้าแล้วครับ
7
^