ฟังชั่น array_unique() ใน Internet explorer 8 ใช้ไม่ได้หรอค่ะ
มันไม่เกี่ยวกันนะครับเพราะ PHP มันจะรันที่ server แล้วส่งผลลัพธ์ มาที่ Browser มันไม่ได้รัน PHP บน IE
จาก warning ที่อ่านมันน่าจะมาจากตัวแปรที่คุณใส่ให้ฟังชันก์ array_unique มันไม่ใช่อาเรย์หรือเปล่าครับ ลองเช็คอีกที
Date :
2011-04-26 09:33:05
By :
naskw
ถ้า Browser เป็น IE7 ไม่มีปัญหาค่ะ ค่าทุกอย่าง ออกมาสมบูรณ์หมด
แต่พอเป็น IE8 ก็เกิด Warning น่ะค่ะ
Date :
2011-04-26 11:08:29
By :
noowhan
แล้วค่าที่ว่านั้นส่งมาจากไหน ส่งยังไง
ลองเอาโค้ดมาดูหน่อยครับ
Date :
2011-04-26 11:11:11
By :
naskw
Code (PHP)
$sql1="SELECT * FROM tb_acaserv
LEFT JOIN tb_user ON tb_acaserv.researcher_id = tb_user.user_id
LEFT JOIN personnel ON tb_user.user_name = personnel.CitizenCard
LEFT JOIN tb_budget ON tb_acaserv.budget_id = tb_budget.budget_no
LEFT JOIN perfix ON personnel.prefix = perfix.prefix_id
LEFT JOIN tb_key ON tb_acaserv.key_id = tb_key.id
LEFT JOIN tb_download ON tb_acaserv.file_ac = tb_download.dl_id";
$result1 = mysql_query($sql1) ;
$num_rows1 = mysql_num_rows($result1) ;
$sql_t="SELECT * FROM tb_type WHERE status = 2";
$result_t = mysql_query($sql_t) ;
$num_rows_t = mysql_num_rows($result_t) ;
for($j=0;$j<$num_rows_t;$j++){
$t_id[$j] = mysql_result($result_t, $j, "type_id");
$t_n[$j] = mysql_result($result_t, $j, "type_name");
$count = 0;
$count_dl = 0;
$b = 0;
for($i=0;$i<$num_rows1;$i++){
$type_id[$i] = mysql_result($result1, $i, "type_id");
if($type_id[$i] == $t_id[$j]){
$re_t[$j][$b] = mysql_result($result1, $i, "acaserv_id");
$b = $b + 1;
}
$dl_count = mysql_result($result1, $i, "dl_count"); // รหัสงานที่ถูกดาวน์โหลด
$count_dl = $count_dl + $dl_count;
$count = $count +1;
if($dl_count != 0){
$down_id[$i] = mysql_result($result1, $i, "acaserv_id");
}
$p_count = mysql_result($result1, $i, "tb_acaserv.publicize_id"); // รหัสงานที่ได้เผยแพร่
if($p_count != ""){
$p_id[$i] = mysql_result($result1, $i, "acaserv_id");
}
$budget_type[$i] = mysql_result($result1, $i, "budget_type");
$budget = mysql_result($result1, $i, "budget"); // งบประมาณ
$count_bg = $count_bg + $budget;
$num_reh[$i] = mysql_result($result1, $i, "tb_acaserv.researcher_id"); // รหัสหัวหน้าโครงการ
} // end for
}// end for
$clean = array_unique($num_reh); //เอาค่าซ้ำออก
$key = array_values($clean); //print_r($key);echo "<br>";
for($k=0;$k<count($key);$k++){ // รหัสหัวหน้าโครงการ
$sum_k = $sum_k."".$key[$k];
if($k==(count($key)-1)){
$sum_k = $sum_k."";
}else{
$sum_k = $sum_k.", ";
}
}
echo $sum_k;
Date :
2011-04-26 11:35:24
By :
noowhan
ให้ลองเช็คดังนี้ก่อนนะครับทำทั้ง IE7 และIE8]
ลองตรวจสอบผลการคิวรี่ของ $sql1 กับ $sql_t ว่าได้ผลลัพธิ์ออกมาหรือเปล่า ทั้ง 7และ8 ว่าได้ผลเหมือนกันปะ
แล้วก็ลองมาตรวจสอบ ตรงนี้
$clean = array_unique($num_reh);
โดยสั่ง print_r($num_reh); ออกมาดูก่อน ทั้ง 7 และ 8
ลองดูก่อน
Date :
2011-04-26 11:42:41
By :
naskw
555+
รู้แล้วค่ะ ว่าทำไมถึง Warning
ลืม copy ฐานข้อมูลมาน่ะค่ะ
พอดีเอาโปรแกรมไปลองเครื่องเพื่อน
ก็อปมาแต่ตัวโปรแกรม ลืมก็อปฐานข้อมูล --"
ขอบคุณมากนะค่ะ ที่เข้ามาช่วยตอบ ^^
มีคำถามอยากจะถามอีกข้อนึงค่ะ
สมมติว่า มี ตารางอยู่ 2 ตาราง A กะ B
ตารางA=บุคลากรทั้งหมดในมหาลัย
CitizenCard | Name | Lname
1111111111111 | aaaa | aaa
2222222222222 | bbbb | bbb
3333333333333 | cccc | ccc
4444444444444 | dddd | ddd
ตารางB=ผู้ใช้ระบบ, 1=นักวิจัย, 2=สมาชิก
user_id | username | pw | user_type
1 | 1111111111111 | abc | 1
2 | 2222222222222 | acb | 1
3 | mojo | bac | 2
4 | davic | cab | 2
5 | coco | cba | 2
อยากทราบว่า ต้องเขียนคำสั่ง select ข้อมูลยังไงค่ะ ถ้าจะให้แสดงเฉพาะบุคลากรที่ไม่ได้เป็นนักวิจัยน่ะค่ะ
ซึ่งก็คือ cccc, dddd
Date :
2011-04-26 12:10:53
By :
noowhan
SELECT * FROM B WHERE user_type != '1'
Date :
2011-04-26 12:46:26
By :
naskw
Load balance : Server 01