|
|
|
รบกวนพี่ๆครับคือผมต้องการแสดงชื่อสินค้าในช่อง ชื่อสินค้า แต่มันแสดงคื่อรายการเดียว รายการอื่นมันแสดงด้านบนเหมือนในรูปครับ |
|
|
|
|
|
|
|
รบกวนพี่ๆครับคือผมต้องการแสดงชื่อสินค้าในช่อง ชื่อสินค้า แต่มันแสดงคื่อรายการเดียว รายการอื่นมันแสดงด้านบนเหมือนในรูปครับ
ผมต้องแก้ตรงไหนครับ พี่ๆช่วยดูให้ผมที ผมมือใหม่มากครับ คือชื่อสินค้ามาจากตารางชื่อ products ผมใช้การจอยตารางนะครับ(ไม่รู้เกี่ยวรึป่าว 55555)
อันนี้โค้ดคับ
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
include"config.inc.php";
$order_id=$_GET["order_id"];
$con = mysql_connect($host,$username,$password);
if (!$con)
{ die('Could not connect: ' . mysql_error()); }
mysql_select_db($database, $con);
mysql_query("SET NAMES UTF8");
$sql="select*from order_detail where order_id=".$order_id;
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$con2 = mysql_connect($host,$username,$password);
if (!$con2)
{ die('Could not connect: ' . mysql_error()); }
mysql_select_db($database, $con2);
mysql_query("SET NAMES UTF8");
$result2 = mysql_query("SELECT * FROM orders");
?>
<table width="638" border="0" align="center" cellpadding="2" cellspacing="1">
<tr>
<td width="54" align="center" bgcolor="#66FFCC"><strong>ลำดับที่</strong></td>
<td width="43" align="center" bgcolor="#66FFCC">เลขที่ใบสั่งซื้อ</td>
<td width="80" align="center" bgcolor="#66FFCC">รหัสสินค้า</td>
<td width="235" align="center" bgcolor="#66FFCC">ชื่อสินค้า</td>
<td width="200" align="center" bgcolor="#66FFCC"><strong>ระบุจำนวนที่ต้องการคืนสินค้า</strong></td>
</tr>
<?
$con3 = mysql_connect($host,$username,$password);
if (!$con3)
{ die('Could not connect: ' . mysql_error()); }
mysql_select_db($database, $con3);
mysql_query("SET NAMES UTF8");
$sql3="select*from order_detail where order_id=".$order_id;
$result3=mysql_query($sql3);
$no=1;
while($row3=mysql_fetch_array($result3)){
$order_id=$row3[order_id];
$id_pro=$row3[id_pro];
$price_unit=$row3[price_unit];
$quantity=$row3[quantity];
?>
<tr>
<td align="center" bgcolor="#66FFCC"><? echo"$no"; ?></td>
<td bgcolor="#66FFCC"><? echo"$order_id"; ?></td>
<td bgcolor="#66FFCC"><? echo"$id_pro"; ?></td>
<td bgcolor="#66FFCC"><?
$con4 = mysql_connect($host,$username,$password);
if (!$con4)
{ die('Could not connect: ' . mysql_error()); }
mysql_select_db($database, $con4);
mysql_query("SET NAMES UTF8");
$sql4 ="select * FROM products INNER JOIN order_detail ON order_detail.id_pro = products.id_pro";
$result4=mysql_query($sql4);
while($row4=mysql_fetch_array($result4)){
//$row4=mysql_fetch_array($result4);
$order_id=$row4[order_id];
$id_pro=$row4[id_pro];
$price_unit=$row4[price_unit];
$name_pro=$row4[name_pro];
if($row3[id_pro]==$row4[id_pro]){
echo"$name_pro";
}else{
}
?></td>
<? }?>
<td bgcolor="#66FFCC"><input name="quantity" type="text" id="quantity" placeholder="ระบุต้นทุนรวม" value="<? echo"$quantity";?>"/></td>
</tr>
<?
$no++;
}
?>
</table>
<p> </p>
<p> </p>
</body>
</html>
Tag : PHP
|
|
|
|
|
|
Date :
2015-03-08 16:55:00 |
By :
hoyahoya |
View :
961 |
Reply :
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมขอจัดโค้ดให้ถูกต้องก่อนดีกว่า ส่วนการทำงานจะถูกหรือไม่ รอท่านอื่นมาช่วยตอบครับ
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
include"config.inc.php";
$order_id=$_GET["order_id"];
$con = mysql_connect($host,$username,$password);
if(!$con){ die('Could not connect: ' . mysql_error()); }
mysql_select_db($database, $con);
mysql_query("SET NAMES UTF8");
$sql="select * from order_detail where order_id='$order_id' ";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$result2 = mysql_query("SELECT * FROM orders") or die(mysql_error());
?>
<table width="638" border="0" align="center" cellpadding="2" cellspacing="1">
<tr>
<td width="54" align="center" bgcolor="#66FFCC"><strong>ลำดับที่</strong></td>
<td width="43" align="center" bgcolor="#66FFCC">เลขที่ใบสั่งซื้อ</td>
<td width="80" align="center" bgcolor="#66FFCC">รหัสสินค้า</td>
<td width="235" align="center" bgcolor="#66FFCC">ชื่อสินค้า</td>
<td width="200" align="center" bgcolor="#66FFCC"><strong>ระบุจำนวนที่ต้องการคืนสินค้า</strong></td>
</tr>
<?php
$sql3="select * from order_detail where order_id='$order_id' ";
$result3=mysql_query($sql3) or die(mysql_error());
$no=1;
while($row3=mysql_fetch_array($result3)){
$order_id=$row3[order_id];
$id_pro=$row3[id_pro];
$price_unit=$row3[price_unit];
$quantity=$row3[quantity];
?>
<tr>
<td align="center" bgcolor="#66FFCC"><?php echo"$no"; ?></td>
<td bgcolor="#66FFCC"><?php echo"$order_id"; ?></td>
<td bgcolor="#66FFCC"><?php echo"$id_pro"; ?></td>
<td bgcolor="#66FFCC">
<?php
$sql4 ="select * FROM products INNER JOIN order_detail ON order_detail.id_pro = products.id_pro";
$result4=mysql_query($sql4) or die(mysql_error());
while($row4=mysql_fetch_array($result4)){
//$row4=mysql_fetch_array($result4);
$order_id=$row4[order_id];
$id_pro=$row4[id_pro];
$price_unit=$row4[price_unit];
$name_pro=$row4[name_pro];
if($row3[id_pro]==$row4[id_pro]){
echo "$name_pro";
}else{
}
?></td>
<?php
}
?>
<td bgcolor="#66FFCC"><input name="quantity" type="text" id="quantity" placeholder="ระบุต้นทุนรวม" value="<?php echo"$quantity";?>"/></td>
</tr>
<?php
$no++;
}
?>
</table>
<p> </p>
<p> </p>
</body>
</html>
|
|
|
|
|
Date :
2015-03-08 17:20:08 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Td ในบรรทัดที่83ถูกปิดผิดที่ครับ
ควรปิดไว้หลัง<? } ?> ในบรรทัดที่84ครับ
|
ประวัติการแก้ไข 2015-03-08 17:25:58 2015-03-08 17:29:14
|
|
|
|
Date :
2015-03-08 17:25:20 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 2 เขียนโดย : meannerss เมื่อวันที่ 2015-03-08 17:25:20
รายละเอียดของการตอบ ::
ออกแล้วครับ แต่ชื่อมันออกซ้ำกัน 2 รอบครับ ดูรูปนะครับ
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
include"config.inc.php";
$order_id=$_GET["order_id"];
$con = mysql_connect($host,$username,$password);
if (!$con)
{ die('Could not connect: ' . mysql_error()); }
mysql_select_db($database, $con);
mysql_query("SET NAMES UTF8");
$sql="select*from order_detail where order_id=".$order_id;
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$con2 = mysql_connect($host,$username,$password);
if (!$con2)
{ die('Could not connect: ' . mysql_error()); }
mysql_select_db($database, $con2);
mysql_query("SET NAMES UTF8");
$result2 = mysql_query("SELECT * FROM orders");
?>
<table width="638" border="0" align="center" cellpadding="2" cellspacing="1">
<tr>
<td width="54" align="center" bgcolor="#66FFCC"><strong>ลำดับที่</strong></td>
<td width="43" align="center" bgcolor="#66FFCC">เลขที่ใบสั่งซื้อ</td>
<td width="80" align="center" bgcolor="#66FFCC">รหัสสินค้า</td>
<td width="235" align="center" bgcolor="#66FFCC">ชื่อสินค้า</td>
<td width="200" align="center" bgcolor="#66FFCC"><strong>ระบุจำนวนที่ต้องการคืนสินค้า</strong></td>
</tr>
<?
$con3 = mysql_connect($host,$username,$password);
if (!$con3)
{ die('Could not connect: ' . mysql_error()); }
mysql_select_db($database, $con3);
mysql_query("SET NAMES UTF8");
$sql3="select*from order_detail where order_id=".$order_id;
$result3=mysql_query($sql3);
$no=1;
while($row3=mysql_fetch_array($result3)){
$order_id=$row3[order_id];
$id_pro=$row3[id_pro];
$price_unit=$row3[price_unit];
$quantity=$row3[quantity];
?>
<tr>
<td align="center" bgcolor="#66FFCC"><? echo"$no"; ?></td>
<td bgcolor="#66FFCC"><? echo"$order_id"; ?></td>
<td bgcolor="#66FFCC"><? echo"$id_pro"; ?></td>
<td bgcolor="#66FFCC"><?
$con4 = mysql_connect($host,$username,$password);
if (!$con4)
{ die('Could not connect: ' . mysql_error()); }
mysql_select_db($database, $con4);
mysql_query("SET NAMES UTF8");
$sql4 ="select * FROM products INNER JOIN order_detail ON order_detail.id_pro = products.id_pro";
$result4=mysql_query($sql4);
while($row4=mysql_fetch_array($result4)){
//$row4=mysql_fetch_array($result4);
$order_id=$row4[order_id];
$id_pro=$row4[id_pro];
$price_unit=$row4[price_unit];
$name_pro=$row4[name_pro];
if($row3[id_pro]==$row4[id_pro]){
echo"$name_pro";
}else{
}
?>
<? }?>
</td>
<td bgcolor="#66FFCC"><input name="quantity" type="text" id="quantity" placeholder="ระบุต้นทุนรวม" value="<? echo"$quantity";?>"/></td>
</tr>
<?
$no++;
}
?>
</table>
<p> </p>
<p> </p>
</body>
</html>
|
|
|
|
|
Date :
2015-03-08 17:35:46 |
By :
hoyahoya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[/head]
<td bgcolor="#66FFCC"><?
$con4 = mysql_connect($host,$username,$password);
if (!$con4)
{ die('Could not connect: ' . mysql_error()); }
mysql_select_db($database, $con4);
mysql_query("SET NAMES UTF8");
$sql4 ="select * FROM products INNER JOIN order_detail ON order_detail.id_pro = products.id_pro";
$result4=mysql_query($sql4);
while($row4=mysql_fetch_array($result4)){
//$row4=mysql_fetch_array($result4);
$order_id=$row4[order_id];
$id_pro=$row4[id_pro];
$price_unit=$row4[price_unit];
$name_pro=$row4[name_pro];
if($row3[id_pro]==$row4[id_pro]){
echo"$name_pro";
}else{
}
?></td>
<? }?>
1. ปัญหาอยู่ที่ Line1 รองสุดท้ายครับ Td ถูกปิดไปก่อนแล้วเมื่อ if($row3[id_pro]==$row4[id_pro]) เป็น else
2. เมื่อ loop กลับไปยัง while($row4=mysql_fetch_array($result4)) อีกครั้ง มันจึงไม่มี Td สังกัดเลขออกนอกตารางดังภาพครับ
ดังนั้นให้ปรับให้ td มาอยู่หลังปีกกาใน line สุดท้ายครับ
[head]Code (PHP)
if($row3[id_pro]==$row4[id_pro]){
echo"$name_pro";
}else{
}
?>
<? }?> </td>
|
|
|
|
|
Date :
2015-03-08 17:38:19 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เกิดจาก ทั้ง 2 ตารางมีฟิลชื่อ id_pro เหมือนกันครับ เมื่อ $row4[id_pro] คลอดออกมาเลยไม่รู้ว่าสังกัดใคร แก้โดยการตั้งชื่อเล่นให้ตอน select ครับ
Code (PHP)
if (!$con4)
{ die('Could not connect: ' . mysql_error()); }
mysql_select_db($database, $con4);
mysql_query("SET NAMES UTF8");
$sql4 ="select products .* ,order_detail.id_pro as `xxx` FROM products INNER JOIN order_detail ON order_detail.id_pro = products.id_pro";
$result4=mysql_query($sql4);
while($row4=mysql_fetch_array($result4)){
//$row4=mysql_fetch_array($result4);
$order_id=$row4[order_id];
$id_pro=$row4[id_pro];
$price_unit=$row4[price_unit];
$name_pro=$row4[name_pro];
if($row3[id_pro]==$row4[xxx]){
echo"$name_pro";
}else{
}
?>
ปล.โค้ดยังไม่เทส อาจจะ error ได้นะครับ
|
ประวัติการแก้ไข 2015-03-08 17:57:17 2015-03-08 18:06:01 2015-03-08 18:06:25
|
|
|
|
Date :
2015-03-08 17:56:05 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมว่า ทำ query ครั้งเดียวก็พอ
Code (PHP)
$sql3="select * FROM products INNER JOIN order_detail ON order_detail.id_pro = products.id_pro where order_id=".$order_id;
$result3=mysql_query($sql3);
$no=1;
while($row3=mysql_fetch_array($result3)){
$order_id=$row3[order_id];
$id_pro=$row3[id_pro];
$price_unit=$row3[price_unit];
$quantity=$row3[quantity];
$name_pro=$row3[name_pro];
?>
<tr>
<td align="center" bgcolor="#66FFCC"><? echo"$no"; ?></td>
<td bgcolor="#66FFCC"><? echo"$order_id"; ?></td>
<td bgcolor="#66FFCC"><? echo"$id_pro"; ?></td>
<td bgcolor="#66FFCC"><? =$name_pro?></td>
|
|
|
|
|
Date :
2015-03-08 18:03:35 |
By :
ผ่านมา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณพี่ Insufficient memory
ที่แก้จัดตำแหน่งให้นะครับ
และ พี่ meannerss ที่หาจุดผิดและคอยแก้ให้
กับพี่ ผ่านมา นะคครับ ได้แล้วครับ ออกแล้วครับ ทำ query ครั้งเดียวตามความเห็นที่ 10 ครับ
ออกแล้วครับ ขอบพระคุณมากๆครับ ผมคงต้องศึกษา sql พวกนี้ให้เยอะแล้วครับเพราะผมพึ่งหัดทำเหมือนกันขอบคุณจริงๆครับ
|
ประวัติการแก้ไข 2015-03-08 18:14:52
|
|
|
|
Date :
2015-03-08 18:13:38 |
By :
hoyahoya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมก็มั่วไปเรื่อยครับ เดี๋ยวก็มีคนตามด่าอยู่เรื่อย 555+
|
ประวัติการแก้ไข 2015-03-08 18:17:57
|
|
|
|
Date :
2015-03-08 18:16:36 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้ส่วนตัวผมนะครับ
เรื่องออเด้อเนี่ย ไม่ว่าจะเป็น ราคา หรือ สินค้า ผมจะไม่ดึง FK จากตารางสินค้า/ราคาหลักมาเลยครับ ผมจะนำออกมาสร้างใหม่เลย
ดูตามหลักการอาจจะผิด แต่สาเหตุที่ไม่ดึงมาคือ อนาคตสินค้าชิ้นนี้เลิกขาย สินค้าชิ้นนี้ถูกลบ สินค้าชิ้นนี้เปลี่ยนแบรนด์ สินค้าชิ้นนี้ปรับราคาขึ้นลง ซึ่งถ้าเอามาผูกไว้กับตาราง Order เนี่ย มันจะเพี้ยนแน่นอนครับเมื่อกลับมาดู ดังนั้นำไม่ควรผูกครับ ควรนำมาสร้างใหม่ไปเลย เพื่อความยืดหยุดของระบบครับ
อันนี้เป็เคสศึกษาครับ
1. ขายมะพร้าวน้ำหอม ให้นาย ก. ที่ราคาลูกละ 20 บาท
2. ผ่านไป 2 เดือนร้านปรับ ชื่อสินค้าเป็น มะพร้าวน้ำหวาน และ ราคามะพร้าวใหม่ ในระบบขึ้นไปที่ลูกละ 30 บาท
3. หลังจากนั้นไม่กี่วันนาย ก. มาขอใบกำกับเสร็จรับเงิน
4. ผู้ดูแลระบบออกใบเสร็จให้นาย ก. โดยคิวรี่ฐานข้อมูลออกมา
คำถาม...
นาย ก. จะได้สินค้าชื่ออะไร และราคาเท่าไร หากใช้การออกแบบฐานข้อมูลแบบ FK สินค้าและราคา ?
|
ประวัติการแก้ไข 2015-03-08 18:32:12 2015-03-08 18:32:41
|
|
|
|
Date :
2015-03-08 18:24:56 |
By :
meannerss |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|