|
|
|
การรวม Table ใน sql ถ้าจะให้รวมข้อมูลกันเพียงแค่คอลัมเดีวแต่ข้อมูลอื่นยังอยู่ครบทำยังไงครับ |
|
|
|
|
|
|
|
ขอข้อมูลเพิ่มเติมครับ งงกับคำถามนืดหนึง
|
|
|
|
|
Date :
2011-10-06 16:41:03 |
By :
ALTELMA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือว่าใน table ของผมมีข้อมูลซ้ำอยู่นะครับ แต่ว่าซ้ำเพียงแค่แถวเดียว แต่อันอื่นไม่ซ้ำ ผมอยากรวมแถวที่ซ้ำกันนะครับ แต่ข้อมูลอื่นให้ขึ้นตามปกติ
|
|
|
|
|
Date :
2011-10-06 17:05:40 |
By :
kknutt |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
select * from usebus group by ชื่อฟิลด์ที่ต้องการรวม
ลองใช้คำสั่ง Group by ชื่อฟิลด์
ดูครับว่าใช่แบบต้องการไม๊นะครับ
เช่น
select * from usebus group by driv
คือถ้า drive ซ้ำมันจะออกมาแค่อันเดียว
|
|
|
|
|
Date :
2011-10-06 17:19:35 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
<title>Untitled Document</title>
</head>
<body>
<?php // content="text/plain; charset=utf-8"
require('fpdf.php');
define('FPDF_FONTPATH','font/');
class PDF extends FPDF
{
//Load data
function LoadData($file)
{
//Read file lines
$lines=file($file);
$data=array();
foreach($lines as $line)
$data[]=explode(';',chop($line));
return $data;
}
//Simple table
function BasicTable($header,$data)
{
//Header
$w=array(30,30,30,25,30,35);
//Header
for($i=0;$i<count($header);$i++)
$this->Cell($w[$i],7,$header[$i],1,0,'C');
$this->Ln();
//Data
foreach ($data as $eachResult)
{
$this->Cell(30,6,$eachResult["idbus2"],1,0,'C');
$this->Cell(30,6,$eachResult["origin2"],1,0,'C');
$this->Cell(30,6,$eachResult["destination2"],1,0,'C');
$this->Cell(25,6,$eachResult["dep_date2"],1,0,'C');
$this->Cell(30,6 ,$eachResult["back_date2"],1,0,'C');
$this->Ln();
}
}
}
$pdf=new PDF();
//Column titles
$header=array('หมายเลขทะเบียนรถ','ต้นทาง','ปลายทาง','เวลาส่งรถออก','เวลาส่งรถกลับ');
//Data loading
//*** Load MySQL Data ***//
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("data");
mysql_query("SET NAMES TIS620");// set อักขระให้เป็น Utf8 เพิ่มตรงนี้เลยครับ รับรองได้ชัวครับ
$strSQL = "SELECT * FROM usebus Group By idbus2;
$objQuery = mysql_query($strSQL);
$resultData = array();
for ($i=0;$i<mysql_num_rows($objQuery);$i++) {
$result = mysql_fetch_array($objQuery);
array_push($resultData,$result);
}
//************************//
$pdf->AddFont('angsa','','angsa.php');
$pdf->AddFont('angsa','B','angsa.php');
$pdf->AddFont('angsa','I','angsa.php');
$pdf->AddFont('angsa','BI','angsa.php');
$pdf->SetFont('angsa','',12);
//*** Table 1 ***//
$pdf->AddPage();
//$pdf->Image('images/logo.png');
$pdf->Ln(35);
$pdf->BasicTable($header,$resultData);
$pdf->Output("MyPDF/MyPDF.pdf","F");
?>
<ul>
<li>
<p><strong>แสดงการใช้งานของรถ</strong></p>
</li>
<li>
<p><strong>แสดงรายการทำงานของพนักงานขับรถ</strong></p>
</li>
</ul>
<blockquote>
<p> <strong>PDF Created Click <a href="MyPDF/MyPDF.pdf">here</a> to Download </strong><strong></strong> </p>
</blockquote>
<p> </p>
</body>
</html>
โค้ดผมเป็นแบนี้อะครับ ผมจะให้ออกรายงานเป็นแบบ pdf ครับ
|
|
|
|
|
Date :
2011-10-06 22:08:16 |
By :
kknutt |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
select *
group by ยากครับ เลือกเอาแค่ บางฟิลด์แล้วฟิลด์ไหนมันซ้ำก็ group by มันซะ
|
|
|
|
|
Date :
2011-10-06 22:34:25 |
By :
ikikkok |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GROUP BY ทำแบบที่คุณต้องการไม่ได้หรอกมั้ง
มันเป็นความสัมพันธ์แบบ 1:N
คงต้องสร้างเทเบิลใหม่ ที่เอาไว้เก็บเฉพาะ idbus2 กำหนดให้มันเป็นไพรมารีย์ซะ แค่นี้ก็ไม่ซ้ำแล้ว
และก็คิดว่า คงต้องสร้างเทเบิลสำหรับคนขับเพิ่มอีกเทเบิลด้วย เพื่อใช้เก็บรายละเอียดของคนขับ และก็ดึงเอา driver_id มาใช้แทนชื่อคนขับ
ส่วนในตารางนี้ ยังไงก็คงต้องเก็บแบบนี้
|
|
|
|
|
Date :
2011-10-07 04:44:39 |
By :
nimporn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|