ต้องการ SELECT ข้อมูลทั้งหมดเป็น ตำแหน่งที่ $i ของข้อมูล ต้องเขียนยังไงค่ะ
คือเป็นภาษา mysql นะค่ะ เช่นข้อมูลเป็นแบบนี้นะค่ะ
t_id มี 1,2,3,4,5
t_name มี a,b,c,d,e
คือต้องการเลือก เรคคอร์ทที่ 2 คือ ค่า th_id=2 และ t_name=b ค่ะ ต้องทำอย่างไร
เช่น
Code (PHP)
$sql=mysql_query("SELECT t_id,t_name FROM tablexxx WHERE ");
// ต้องทำการ where อะไรค่ะ หมายถึง ต้องการ ใน เรคคอร์ท ที่สอง ค่ะ แต่อย่า ใช้ t_id='2' นะค่ะ เพราะว่า ข้อมูลอาจไม่ได้เรียง แบบ 1,2,3,4,5 แต่อาจเป็น 1,2,4,5,6,7,9,15,32 คะ
หรือต้องการ select ข้อมูลให้เป็นแบบนี้ก็ได้นะค่ะเช่น
ตารางใหม่ 1,2,3,4,5 ตรงนี้อยากให้เรียงชุดใหม่นะค่ะ คือสร้างขึ้นมาใหม่เลย เรียงจาก 1 ถึง เร็คคอร์ทสุดท้ายคะ
t_id 1,2,4,6,7 ตรงนี้มันจะเป็น auto นะค่ะ แต่บางทีเลขมันโดดข้ามไปบ้าง ตรงนี้เหมือนเดิม
t_name a,b,c,d,e ตรงนี้เหมือนเดิม
ตัวอย่าง code นะค่ะ
Code (PHP)
$sql=mysql_query("SELECT () AS Newtable,t_id,t_name FROM tablexxx WHERE Newtable='2'");
// เห็นตรง ก่อน AS Newtable ไหมค่ะ ต้องใส่ ฟังก์ชั่นอะไรไหม ให้ เป็นเรียงลำดับเลย อ่ะ 1 - record สุดท้ายเลยคะ
รบกวนหนอ่ยนะค่ะTag : PHP, MySQL
ประวัติการแก้ไข 2012-01-27 16:07:32 2012-01-27 16:20:40
Date :
2012-01-27 16:05:31
By :
เจ้าปัญหา
View :
1262
Reply :
11
Code (PHP)
$sql=mysql_query("SELECT t_id,t_name FROM tablexxx WHERE t_id=$i ");
ลองดูครับ แค่เปลี่ยนเป็น where t_id=$i
Date :
2012-01-27 16:17:09
By :
13eachz
ตรง $i นะค่ะ มันเรียงมาจาก loop for คือ เพิ่มค่าได้ทีละ 1 แต่ถ้าข้อมูล ของ t_id มันเป็น 1,3,4,8,12 ละคะ คำว่า t_id=$i ก็ใช้งานไม่ได้สิจ่ะ เพราะว่า ค่า มันไม่ตรง
Date :
2012-01-27 16:22:45
By :
เจ้าปัญหา
ยังไมไ่ด้เลยค่ะ ใช้ limit 1,1 หมายความว่าไงคะ 1 ตัวแรกคืออะไร แล้ว 1 ตัวที่สองคืออะไร
เช่นข้อมูล เรามี 5 เรคคอร์ท ต้องการเลือก ข้อมูล ที่เรคคอร์ทที่ 4 ต้อง limit แบบไหนคะ
ประวัติการแก้ไข 2012-01-27 16:35:14
Date :
2012-01-27 16:25:40
By :
เจ้าปัญหา
เพิ่มเติมให้ค่ะ
limit a,b
a คือเลขตำแหน่งที่นับจากตำแหน่งแรก
b คือจำนวน record ที่ต้องการ
เช่น limit 2,5 >> ผลลัพท์จะได้ record ที่ 3 , 4 , 5 , 6 , 7
(นับจาก record แรกไป 2 ตำแหน่ง (แล้วเลือกตัวถัดไป) ก็คือเลือก record ที่ 3 // และนับไป 5 record ค่ะ
Date :
2012-01-27 16:33:38
By :
kukkuk
โอเคนะค่ะ ขอบคุณทุกคนมากๆเลยค่ะ ทำได้แล้ว
การใช้ limit คือ lmit เร็คคอร์ทที่ต้องการ , กี่เรคคอร์ท ผลที่สรุปได้คือ
limit 0,1 คือ เรคคอร์ทแรก 1เรคคอร์ท
limit 1,1 คือ เรคคอร์ทที่สอง 1 เรคอร์ท ขอบคุณมากนะค่ะ คราวนี้ ก็นำ $i ไปใส่ได้แล้ว
เช่น limit $i,1 ก็วนลูป ไปตามๆกัน อิอิ ขอบคุณทุกคนจริงๆนะคะ
Date :
2012-01-27 16:47:39
By :
เจ้าปัญหา
ยินดีค่ะ ^^
Date :
2012-01-27 16:53:20
By :
kukkuk
ถ้าเราต้องการเลือกจากฐานข้อมูลมาแสดงแบบในรูปทำไงครับ
ผมมาจากกระทู้นี้อะครับ https://www.thaicreate.com/php/forum/072725.html
สงสัยพี่เขาไม่เข้าใจ T T
ตอนนี้ผมเขียนได้แค่นี้อยู่เลย
แต่มันแสดงผลแปลกๆคือ
สมมุติอยากให้มันแสดง row 1 ก็ แสดง row1: column F1-F4
แต่มันกลับแสดงเป็น F1 ของ row1 , F2 ของ row2, F3 ของ row3, F4 ของ row4 งี้อะครับ
Code (PHP)
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<?
require("config.php");
$conn = mysql_connect( $dbhost , $dbuser, $dbpass );
if ( ! $conn )
die ( "ไม่สามารถติดต่อกับ MySQL ได้" );
mysql_query("SET NAMES UTF8");
mysql_select_db ( $dbname, $conn )
or die ( "ไม่สามารถเลือกฐานข้อมูลได้" );
$sqltopic = "SELECT * FROM ckforms_1";
$sqlforms = "SELECT * FROM ckforms_1";
$sqlfields = "SELECT * FROM ckfields";
$retopic = mysql_query ( $sqltopic, $conn );
$reforms = mysql_query ( $sqlforms, $conn );
$refields = mysql_query ( $sqlfields, $conn );
//$aColumns = array( 'id', 'F1', 'F2', 'F3', 'F4','F5' ,'F6', 'F7', 'F8', 'F9','F10' ,'F11', 'F12', 'F13', 'F14','F15','F16', 'F17', 'F18', 'F19');
// $sIndexColumn = "id";
$count=mysql_num_rows($reforms);
?>
<table border="1">
ชื่อเอกสาร
<?
while ( $rf = mysql_fetch_array ($retopic) )
{
echo "<tr><td><a herf=''>$rf[F2]</a></td></tr>";
}
?>
</table>
<hr>
<table border="1">
<?
while ( $rfd = mysql_fetch_array ( $refields) )
{
echo "<tr>
<td>$rfd[label]</td>
</tr>";
}
?>
</table>
<br>
<table border="1">
<?
$a=1;
while($a <= $count)
{
$rec = mysql_fetch_array($reforms);
$code=$rec["F$a"];
echo "<tr><td>$code</td>
</tr>";
$a++;
}
?>
</table>
<?
mysql_close ( $conn );
?>
Date :
2012-01-27 21:31:19
By :
นักเรียนคนเดิม
Load balance : Server 03