Wed 5 Jul 2006 11:55:24
Fri 7 Jul 2006 16:03:09
อันนีไม่เกี่ยวข้องกันค่ะ อย่างเช่น ในlistbox อันแรกเป็นของสาขาวิชาชีพ listboxอันที่2 เป็นของวุฒิการศึกษา listbox อันที่ 3 เป็นของจังหวัด และ listbox อันอื่นอีกหลายอันค่ะ และมีคีย์เวิร์ดให้พิมพ์ด้วยค่ะ เลือกอันไหนอันหนึ่งก็ได้ใน listbox แล้วก็ทำการค้นหา
ส่วนการรับค่านำไป query นั้นก็ให้ทำการตรวจสอบว่ามีค่าอันใดของ listbox ที่ไม่เป็น default บ้างก็เอา condition นั้นไป query ครับ
Sat 8 Jul 2006 16:33:59
ขอตัวอย่าง การค้นหาสักนิดนึงนะค่ะ เป็นแนวทางค่ะ งงจริงๆ
<select name="list2"></select>
<select name="list3"></select>
<select name="list4"></select>
<select name="list5"></select>
<select name="list6"></select>
<select name="list7"></select>
<select name="list8"></select>
<input type="text" value="Submit">
<?
//เริ่มที่การ query เลยนะครับ
$res = mysql_query("SELECT ... WHERE 1=1".((isset($_POST["list1"]) && $_POST["list1"] != "")?" AND filed1 LIKE '%".$_POST["list1"]."%':"").((isset($_POST["list2"]) && $_POST["list2"] != "")?" AND filed2 LIKE '%".$_POST["list2"]."%':"").((isset($_POST["list3"]) && $_POST["list3"] != "")?" AND filed3 LIKE '%".$_POST["list3"]."%':"").((isset($_POST["list4"]) && $_POST["list4"] != "")?" AND filed4 LIKE '%".$_POST["list4"]."%':"").((isset($_POST["list5"]) && $_POST["list5"] != "")?" AND filed5 LIKE '%".$_POST["list5"]."%':"").((isset($_POST["list6"]) && $_POST["list6"] != "")?" AND filed6 LIKE '%".$_POST["list6"]."%':"").((isset($_POST["list7"]) && $_POST["list7"] != "")?" AND filed7 LIKE '%".$_POST["list7"]."%':"").((isset($_POST["list8"]) && $_POST["list8"] != "")?" AND filed8 LIKE '%".$_POST["list8"]."%':""), $link);
ประมาณนี้ครับ
?>
Tue 11 Jul 2006 17:50:51
ข้อมูลที่นำมาแสดงจากการค้นหาแล้วเราต้องการ link เข้าไปอีก เช่น แสดงชื่อออกมาแล้วจากการค้นหาและต้องการ ให้มี link เข้าไปดูรายละเอียดประวัติของคนนั้นจากชื่อที่แสดงต้อง ทำยังไงค่ะ คือทำแล้วนะค่ะมันฟ้องแบบนี้เห็นแต่หน้าออกแบบ แต่ข้อมูลไม่มาค่ะ ไฟล์นี้คือแสดงข้อมูลที่ค้นหาเจอแล้วค่ะ
include("connect_log.php");
$tb="employee_new";
mysql_connect( $host,$user,$password) or die ("ติดต่อกับฐานข้อมูล Mysql ไม่ได้ ");
mysql_select_db($db) or die("เลือกฐานข้อมูลไม่ได้");
echo "<table><tr>";
$sql = "select * From $tb";
$Per_Page =5; /* ตั้งค่า แสดงผลต่อหน้า $Per_Page */
if(!$Page)
$Page=1;
$Prev_Page = $Page-1;
$Next_Page = $Page+1;
$result = mysql_query($sql);
$Page_start = ($Per_Page*$Page)-$Per_Page;
$Num_Rows = mysql_num_rows($result);
if($Num_Rows<=$Per_Page)
$Num_Pages =1;
else if(($Num_Rows % $Per_Page)==0)
$Num_Pages =($Num_Rows/$Per_Page) ;
else
$Num_Pages =($Num_Rows/$Per_Page) +1;
$Num_Pages = (int)$Num_Pages;
if(($Page>$Num_Pages) || ($Page<0))
print "<center><b>จำนวน $Page มากกว่า $Num_Pages เกิดการผิดพลาด<b></center>";
$sql = "select * From $tb order by signup desc LIMIT $Page_start , $Per_Page";
//ส่วนแสดงผล
$result = mysql_query($sql);
While($row= mysql_fetch_array($result))
{
$id_employee[] = $row['id_employee'];
$signup[] = $row["signup"];
$emp_position[] = $row["emp_position"];
$emp_age[] = $row["emp_age"];
$emp_sex[] = $row["emp_sex"];
$emp_salary[] = $row["emp_salary"];
$emp_city[] = $row["emp_city"];
$emp_education_level1[] = $row["emp_education_level1"];
$emp_education_level2[] = $row["emp_education_level2"];
$emp_institute1[] = $row["emp_institute1"];
$emp_institute2[] = $row["emp_institute2"];
$emp_branch1[] = $row["emp_branch1"];
$emp_branch2[] = $row["emp_branch2"];
}
echo"<table><tr>";
for($i=0;$i<count($id_employee);$i++) { //signup
// กรณี้มีตัวเดียว
echo "<td>";
?>
<div align="left" class="tbhot_text_9">
<table width="749" border="0" cellpadding="1" cellspacing="1" bgcolor="#F0F0F0">
<tr>
<td width="114"><div align="center"><a href="show_hotjob1.php?id_employee=$id_employee<? echo $id_employee;?>" ><img src="menu/menu-3.gif" alt="" width="70" height="30" border="0" align="absbottom" class="link"></a></div></td>
<td colspan="3" valign="top" class="tbhot_text_2">ต้องการสมัครตำแหน่ง :: <strong class="tbhot_text_3"><strong class="tbhot_text_3"><strong class="tbhot_text_3"><strong class="tbhot_text_3"><strong class="tbhot_text_2"><? echo $emp_position[$i];?></strong></strong></strong></strong></strong></td>
</tr>
<tr>
<td class="tbhot_text_4"><div align="center" class="tbhot_text_8">วันที่ <span class="tbhot_text_2"><strong class="tbhot_text_3"><strong class="tbhot_text_3"><strong class="tbhot_text_3"><strong class="tbhot_text_3"><strong class="tbhot_text_10"><? echo $signup[$i];?></strong></strong></strong></strong></strong></span></div></td>
<td width="208" class="tbhot_text_8"> อายุ:: <span class="tbhot_text_2"><strong class="tbhot_text_3"><strong class="tbhot_text_3"><strong class="tbhot_text_3"><strong class="tbhot_text_3"><strong class="tbhot_text_1"><? echo $emp_age[$i];?></strong></strong></strong></strong></strong></span> ปี เพศ :: <span class="tbhot_text_2"><strong class="tbhot_text_3"><strong class="tbhot_text_3"><strong class="tbhot_text_3"><strong class="tbhot_text_3"><strong class="tbhot_text_1"><? echo $emp_sex[$i];?></strong></strong></strong></strong></strong></span> </td>
<td width="233" class="tbhot_text_8">เงินเดือน :: <span class="tbhot_text_2"><strong class="tbhot_text_3"><strong class="tbhot_text_3"><strong class="tbhot_text_3"><strong class="tbhot_text_3"><strong class="tbhot_text_13"><? echo $emp_salary[$i];?></strong></strong></strong></strong></strong></span> </td>
<td width="176" class="tbhot_text_8">จังหวัด:: <span class="tbhot_text_2"><? echo $emp_city[$i];?></span></td>
</tr>
<tr>
<td> </td>
<td class="tbhot_text_11">- <? echo $emp_education_level1[$i];?></td>
<td class="tbhot_text_5">- <? echo $emp_institute1[$i];?></td>
<td class="tbhot_text_10">- <? echo $emp_branch1[$i];?></td>
</tr>
<tr>
<td> </td>
<td class="tbhot_text_11">- <? echo $emp_education_level2[$i];?></td>
<td class="tbhot_text_5">- <? echo $emp_institute2[$i];?></td>
<td class="tbhot_text_10">- <? echo $emp_branch2[$i];?></td>
</tr>
</table>
<?
echo"</td></tr>";
}
echo"</tr></table>";
mysql_close();
?>
<br>
<span class="tbhot_text_1">พบทั้งหมด<b>
<?= $Num_Rows;?>
</b> รายการ รวมทั้งหมด : <b>
<?=$Num_Pages;?>
</b> หน้า :
<?/* สร้างปุ่มย้อนกลับ */
if($Prev_Page)
echo " <a href='$PHP_SELF?Page=$Prev_Page'><< ย้อนกลับ </a>";
for($i=1; $i<$Num_Pages; $i++){
if($i != $Page)
echo "[<a href='$PHP_SELF?Page=$i'>$i</a>]";
else
echo "<b> $i </b>";
}
/*สร้างปุ่มเดินหน้า */
if($Page!=$Num_Pages)
echo "<a href ='$PHP_SELF?Page=$Next_Page'> หน้าถัดไป>> </a>";
?>
ไฟล์แสดงผลจาการ link มันไม่ขึ้นข้อมูลนะค่ะ ไม่ขึ้น id ที่กำหนดเรียกนะค่ะมันเลยไม่ขึ้นข้อมูลเราต้องแทรกตัว
While($row= mysql_fetch_array($result))
{
$id_employee[] = $row['id_employee'];
$signup[] = $row["signup"];
$emp_position[] = $row["emp_position"];
$emp_age[] = $row["emp_age"];
$emp_sex[] = $row["emp_sex"];
$emp_salary[] = $row["emp_salary"];
$emp_city[] = $row["emp_city"];
$emp_education_level1[] = $row["emp_education_level1"];
$emp_education_level2[] = $row["emp_education_level2"];
$emp_institute1[] = $row["emp_institute1"];
$emp_institute2[] = $row["emp_institute2"];
$emp_branch1[] = $row["emp_branch1"];
$emp_branch2[] = $row["emp_branch2"];
}
ไว้ในหน้าแสดงผลแบบนี้รึเปล่าค่ะ เพราะทำแล้วมันแสดง id = idArray
ในส่วนแสดงผลจากลิงค์ผมไม่เห็นมีการสร้าง conenction และการ query ให้เห็นเลยครับ ไม่ทราบว่าโค๊ดมาหมดหรือยังครับ
Wed 12 Jul 2006 11:49:10
มันไม่แสดงผลใด ๆ เลยค่ะมันขึ้น http://localhost/jocundity/show_hotjob1.php?id_employee=$id_employeeArray
มันบอกค่า id เป็นอย่างนี้ ตัวส่วนที่แสดงผล query แบบนี้ค่ะ
$sql = "select * from employee where id_employee = '$id_employee'";
$db_query = mysql_db_query ($dbname, $sql);
ตัว link ที่จะเข้าไปดูรายละเอียด link อย่างนี้ค่ะ
<a href="show_hotjob1.php?id_employee=$id_employee<? echo $id_employee;?>" ><img src="menu/menu-3.gif" alt="" width="70" height="30" border="0" align="absbottom" class="link"></a>
ประมาณนี้ครับ
Thu 13 Jul 2006 14:23:02
มันออกแต่ id ค่ะ ข้อมูลไม่แสดง แต่มันอ้าง id ถูกตัวแล้วค่ะ http://localhost/jocundity/show_hotjob1.php?id_employee=17
$db_query = mysql_db_query ($dbname, $sql);
ควรเปลี่ยนการเขียนใหม่ครับ
$sql = "select * from employee where id_employee = '".$_GET["id_employee"]."'";
mysql_select_db($dbname);
$db_query = mysql_query($sql);
ควรอ้างผ่านตัวแปร built-in global variables ครับ เพื่อเพิ่มความปลอดภัยให้กับระบบของคุณเอง และจะไม่มีปัญหาเมื่อไปวางบน hosting เนื่องจากผู้ให้บริการส่วนใหญ่จะหันมาใช้ register_globals = off เกือบหมดแล้วครับ
การใช้งาน mysql_db_query() นั้นถ้ามีการใช้งานบ่อยๆให้ทำการเลือก db แล้วใช้ mysql_query() จะทำให้ระบบทำงานได้เร็วขึ้นครับ เนื่องจากการใช้งาน mysql_db_query() นั้นจะทำงาน mysql_select_db() ซ้ำๆ ตลอดเวลาที่ใช้งานครับ
Fri 14 Jul 2006 14:31:04
ขอขึ้นเรื่องใหม่ในหัวข้อนี้เลยละกันค่ะ ขอบคุณสำหรับคำตอบที่ผ่านมา ขอถามใหม่อีกค่ะ
ต้องการนับจำนวน field ในตาราง โดยเลือกมาแค่ฟิลด์เดียวคือ ฟิลด์จังหวัด แต่มีข้อมูลซ้ำกันจำนวนมาก ต้องการให้แสดงข้อมูลออกมา แล้วบอกจำนวนเลย โดยไม่ต้องให้แสดงออกมาทั้งหมดเรคคอร์ดที่มี ต้องใช้คำสั่ง sql ยังไงค่ะ
SELECT DISTINCT field_name FROM table_name
ถ้าต้องการนับ record ที่ทำการเลือกมานั้นก็ใช้ฟังก์ชั่น COUNT() เช่น
SELECT COUNT(field_name) AS num FROM table_name
ประมาณนี้ครับ
Mon 17 Jul 2006 10:41:56
สวัสดีค่ะ คุณ Administrator ก่อนอื่นก็ขอบคุณสำหรับคำตอบที่ตอบให้ล่าสุดค่ะ มีปัญหาถามอีกแล้วค่ะ ไม่อยากตั้ง topic ใหม่ ถามในนี้เลยละกัน ทำไมการที่เราแยกไฟล์ทำคนละส่วน แล้วเรียกใช้ตัวไฟล์ connect database ที่ทำไว้แล้ว มาใช้ทุกครั้งในไฟล์นั้น ๆ ของแต่ละไฟล์ พอไปรวมกับตัวไฟล์หลักอีกครั้งมันถึงไม่แสดงผลค่ะมันมีปัญหาฟ้องว่า
Fatal error: Cannot redeclare conn2db() (previously declared in C:\WM\www\jocundity\connect_log.php:16) in
conn2db() เป็นฟังก์ชันในไฟล์ connect database ค่ะ เป็นเพราะอะไรค่ะ
เพื่อตัดปัญหาการ include หรือ require ซ้ำ แนะนำให้ใช้ include_once() หรือ require_once() แทนครับ
Mon 17 Jul 2006 16:06:15
เมื่อเราดึงข้อมูลที่ไม่ซ้ำแล้วออกมา แต่หลังแถวนั้นต้องการบอกจำนวนด้วยว่ามีเท่าใด
ถ้าต้องการนับ record ที่ทำการเลือกมานั้นก็ใช้ฟังก์ชั่น COUNT() เช่น
SELECT COUNT(field_name) AS num FROM table_name
จะนับยังไงค่ะ เมื่อตัวที่รันออกมาจากการ list มันไม่ซ้ำกันออกมาแล้วแต่จำนวนต้องไปดัก code ด้วยการ if ก่อนหรือเปล่าค่ะ จะต้องดักเอาไว้ที่ไหนถึงจะสามารถบอกได้ว่าตัวนี้เท่ากับเท่านี้ เพราะทำดูแล้วมันออกมาครบตามจำนวนที่มีทั้งหมด ที่มีใน table มันไม่ได้บอกเป็นตัว ๆ
SELECT browser, COUNT(logid) AS num FROM logs GROUP BY browser
จะได้
| IE | 1053 |
| Firefox | 530 |
ประมาณนี้ครับ การ GROUP BY นั้นตามมาตรฐานแล้ว field ใดที่เป็นการเรียกแสดงผลโดยตรง (ไม่ได้อยู่ใน Aggegate Function) ในที่นี้คือ browser จะต้องใส่ไว้ต่อท้าย GROUP BY ทั้งหมด เพื่อการคำนวณได้อย่างถูกต้อง
หรือเช่น ต้องการดูว่าพนักงานเข้างานเวลาเท่าไหร่มีกี่คน จะได้
SELECT firstname, lastname, COUNT(logtime) AS num FROM access_logs GROUP BY firstname, lastname
ประมาณนี้ครับ
Tue 18 Jul 2006 11:04:00
การที่เราทำไฟล์แยกไว้คนละส่วน ไม่ว่าจะเป็นไฟล์ส่วนดึงข้อมูลออกมาแสดงผล หรืออื่นๆ คนละ folder จะมีปัญหาไหมค่ะในการนำมารวมกันเป็นหน้าหลักแล้วแสดงผลตรงหน้าหลักนั้น ๆ
Tue 18 Jul 2006 14:21:40
กรณีการอ้างอิงไฟล์แบบนี้ searchresume.php?city = 1&city_name = กรุงเทพมหานคร
searchresume.php?major_id = 01&major_name = กฎหมาย
searchresume.php?sec = 3&sec_name = ภาคตะวันออก
ไม่ทราบต้องไปทำไฟล์ในลักษณะใดค่ะถึงได้อ้างชื่อไฟล์เพียงชื่อเดียวแต่สามารเรียก field ย่อย ๆ มาแสดงได้ คือดูตรงที่เราขณะจะกด link ไปจะรู้ว่าอ้างไป ฟิลล์พวกนี้ต้องใส่ไว้ในส่วนใดของไฟล์ค่ะถึงจะรู้ได้แบบนี้
วิธีที่เห็นคนทำกันเยอะที่สุดคือ การ include
เช่นถ้าส่ง parameter ชื่อ page มาด้วยก็เลือกไฟล์จากตัวนั้นๆเช่น
searchresume.php?page=profile&userid=1234
ข้างในก็
<?
switch($_GET["page"]){
case "profile" : include("profile.php");
case ......
}
ประมาณนี้ครับ ในไฟล์ profile คุณก็ทำการจัด format การแสดงผลตามต้องการครับ
** อย่าส่ง parameter ชื่อที่เป็นชื่อไฟล์โดยตรงแล้วใช้ include($_GET["page"]) นะครับอันตรายสูง เอาไว้จะเขียนเป็นบทความรายละเอียดเรื่องนี้อีกทีครับ
?>
Thu 20 Jul 2006 10:59:02
การปิดตัว listbox เอาไว้ไม่ให้แสดงถ้าหากตัวที่เป็น listbox อันแรกไม่ใช่ตัวที่กำหนดไว้ อย่างเช่น listbox อันแรกถ้าไม่เลือกกรุงเทพ listbox ตัวต่อไปก็จะไม่แสดงผล listbox พื้นที่เขตในกรุงเทพ ต้องใช้ใส่ code javascript ยังไงค่ะ
<scritp language="javascript" type="text/javascript">
function check4disable(obj){
var theForm = obj.form;
if(obj.value != "1"){
theForm.district.disabled = true;
}else{
theForm.district.disabled = false;
}
}
function check4clear(obj){
var theForm = obj.form;
if(obj.value != "1"){
theForm.district.options.length = 0;
}
}
</script>
<form>
<select name="province" onchange="check4disable(this)">
<option value="1">กรุงเทพมหานคร</option>
<option value="2">กระบี่</option>
<option value="3">ขอนแก่น</option>
</select>
<select name="district"></select>
</form>
ถ้าต้องการให้ clear ก็เปลี่ยนไปใช้ฟังก์ชั่น chek4clear() แทนครับ แต่ว่าหลังจาก clear แล้วจะไม่สามารถกลับมามี list ได้อีกวิธี clear นี้จะต้องมีส่วนที่สร้าง option ใน javascript ด้วยครับ
Sat 22 Jul 2006 11:36:32
ต้องการ browse รูปภาพที่หน้าเพจ จำนวน 2 อัน และ fix ขนาดไว้ตัวแรกไม่เกิน 30 kb ตัวที่ 2 ไม่เกิน 50 kb ต้อง code ไงค่ะเพื่อทำการกำหนดขนาด เพราะที่ทำไว้ มันไม่ fixขนาดให้
$_FILES["file"]["size"] โดย file คือชื่อของ input ชนิด file ครับ เช่น
if($_FILES["file"]["size"] > 30000) //ตรวจสอบว่าไฟล์ใหญ่เกิน 30000 bytes หรือไม่
ถ้าต้องการให้เป็น 30k แท้ๆนั้นก็อาจจะใช้ 30*1024 แทนได้ครับ รวมถึง 50k ด้วยครับ
Sat 29 Jul 2006 09:25:46
คือทำระบบแบบล็อกอินเข้ามาต้องจำค่าด้วยตัวนี้ค่ะ เมื่อล็อกอินเข้าไปก็จะมีรายละเอียดหลักให้จัดการ ได้แก่ แก้ไขข้อมูล เปลี่ยนรหัสผ่าน ลืมรหัสผ่าน ลบข้อมูลประวัติ และอื่น ๆ มันจะอยู่ในระบบจนกว่าจะ logout ออก มีปัญหาอยู่ว่าถ้าต้องการลบข้อมูลประวัติค่ะ ลบไม่ออกค่ะ ต้องทำยังไงค่ะ

















