|
|
|
นำค่าที่บันทึกลง DB อ่านออกมาใส่ array ไว้ แล้วใช้ in_array ตรวจสอบ ทำยังไงหรอคะ |
|
|
|
|
|
|
|
จากกระทู้นี้ที่พี่ krungsri แนะนำมานะคะ https://www.thaicreate.com/php/forum/098177.html
นำค่าที่บันทึกลง DB อ่านออกมาใส่ array ไว้ แล้วใช้ in_array ตรวจสอบ มีวิธีการยังไงหรอคะ
คือเราลองทำแบบกำหนดเงื่อนไขธรรมดาแล้วมันไม่ได้อ่ะค่ะ แต่เราใช้วิธีทำแบบ array ไม่เป็นอ่ะค่ะ
คือโค้ดที่เราทำนะคะ ซึ่งส่วนใหญ่พี่ krungsri เขียนโค้ดมาให้ทั้งนั้นค่ะ
Code (PHP)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>XXXXXXXXXXXX</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(document).ready(function(e) {
$('li').click(function(e) {
var Current = $(this); //กำหนด Selector หลักเพื่อเรียนใช้งาน
var ID = Current.attr('id'); // Id ของ li ที่คลิก
var Text = Current.find('a').text(); //ให้หา tag <a></a> จาก Selector หลักแล้วเอา Text มา
if(Text!=""){ //ตรวจสอบว่าได้ Text มาหรือไม่ กรณีที่ li เป็น class="selected" มันจะไม่ได้ Text
$.ajax({ //เริ่มให้ ajax ทำงาน
url:"insert.php", // URL ของไฟล์ที่จะส่งไปประมวลผล
type:'POST', // ประเภทที่จะส่งไป GET หรือ POST
data:{insert:ID}, // ตัวแปร หรือ พารามิเตอร์ที่จะส่งไป {ชื่อตัวแปร:ค่าที่ส่ง} ชื่อตัวแปรจะต้องตรงกันในไฟล์ที่รับค่า
success: function(data){ // Call back เมื่อส่งค่าไปประมวลผลจะได้ค่าท่ส่งกลับมาอยู่ในตัวแปร data คือ 0 หรือ 1
if(data==0){ // กรณีที่เป็น 0 คือ Insert ผ่าน
Current.find('a').remove(); // ให้ลบ tag <a></a> ออกจาก Selector หลักที่ทำงานอยู่
//ก่อนลบ <li id="chd_6"><a href="javascript:;" class="lgv">6</a></li>
Current.addClass('selected').text(Text); // เพิ่ม class="selected" และกำหนด Text ใหม่
// หลังลบและกำหนดใหหม่ <li id="chd_6" class="selected">6</li>
}else{ // กรณีที่เป็น 1 คือ Insert ไม่ผ่าน
alert("ไม่สามารถบันทึกได้!");
}
}
});
}
});
});
</script>
<style type="text/css">
.box-g-lucky {
position: relative;
width: 600px ;
margin: 0 auto;
padding: 15px 13px 13px 15px;
}
.box-g-lucky ul {
position: relative;
z-index:
}
.box-g-lucky ul li, .h-status li span {
display: block;
float: left;
margin: 0 2px 2px 0;
width: 34px;
height: 34px;
text-align: center;
cursor: pointer;
background: #99cc66;
color: #000;
font: 700 15px/34px Arial;
/*text-shadow: 1px 1px 0 rgba(255,255,255,0.9);*/
border-radius: 2px;
/*box-shadow: 0 -25px 20px -15px rgba(0, 0, 0, 0.25) inset, 0 2px 3px rgba(255, 255, 255, 0.75) inset, 1px 0 2px rgba(0,0,0,0.5)*/
}
.box-g-lucky ul li.active,
.box-g-lucky ul li.selected,
.box-g-lucky ul li.lucky,
.box-g-lucky ul li:hover,
.h-status li span.selected,
.h-status li span.active,
.h-status li span.lucky {
/*box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.65) inset, -2px -2px 2px rgba(255, 255, 255, 0.95) inset, 1px 0 2px rgba(0,0,0,0.5)*/
}
.box-g-lucky ul li:hover {
background: #ff3399
}
.box-g-lucky ul li.active, .h-status li span.active {
background: #ffff99;
}
.box-g-lucky ul li.selected, .h-status li span.selected {
background: #7a8e9c;
cursor: not-allowed
}
.box-g-lucky ul li.lucky, .h-status li span.lucky {
background: #ffa800;
cursor: not-allowed
}
.box-g-lucky ul li a, .box-g-lucky ul li a:hover {
color: #000;
text-decoration: none
}
</style>
</head>
<body>
<div id="game-choice" class="box-g-lucky">
<ul id="game-play">
<?php
include "config.php";
$get_id = (isset($_GET['id'])) ? $_GET['id'] : '';
$string = "SELECT * FROM reward1 ORDER BY game_id DESC limit 1";
$query_string = mysql_query($string);
while($result = mysql_fetch_array($query_string))
{
for ($i=1; $i<=$result["number"]; $i++)
{
echo '<li id='.$i.'><a href="javascript:;" class="">'.$i.'</a></li>'; //ตรงนี้คือเราให้ตารางเป็นสีที่ยังไม่มีใครเลือกก่อนนคะ
if($i==$result["r_number"]){ //ตรงนี้เรากำหนดเงื่อนไขคือ ถ้าเลขที่เลือกตรงกับเลขในฟิลด์ r_number คือเลขที่ได้รางวัล
'<li id='.$i.' class="lucky">'.$i.'</li>'; //เมื่อเลือกช่องตารางจะเป็นสีส้มตามคลาส lucky
}else{
'<li id='.$i.' class="selected">'.$i.'</li>'; ถ้าเลขไม่ถูกรางวัลจะเป็นสีฟ้า ตามคลาส selected
}
}
}
?>
</ul>
แต่พอทำออกมาแล้วกลับเป็นตามรูปอ่ะค่ะ พอเลือกแล้วกลับเป็นสีฟ้า ตามคลาส selected ทั้งหมด ซึ่งตัวเลขในดาต้าเบสที่เรากำหนดให้ได้รางวัลคือเลข 45 ซึ่งอยู่ในฟิลด์ r_number ค่ะ จะต้องเป็นสีส้มตามคลาส lucky
ส่วนอันนี้เป็นโค้ด ถ้าใส่ echo เข้าไปตรงให้แสดงตาราง
Code (PHP)
for ($i=1; $i<=$result["number"]; $i++)
{
echo '<li id='.$i.'><a href="javascript:;" class="">'.$i.'</a></li>';
if($i==$result["r_number"]){
echo '<li id='.$i.' class="lucky">'.$i.'</li>';
}else{
echo '<li id='.$i.' class="selected">'.$i.'</li>';
}
ผลออกมากลายเป็นเบิ้ลจำนวนช่องตารางเลยค่ะ อัพโหลดภาพไม่ขึ้นค่ะตรงนี้เลยไม่มีภาพมาด้วย
ส่วนอันนี้คือโค้ดเมื่อกดเลือกเลขแล้ว จะ insert เข้าไปเก็บในฟิลด์ของ select_number นะคะ
Code (PHP)
<?php
include 'config.php';
include 'functions.php';
date_default_timezone_set('Asia/Bangkok');
date("d:m:Y H:i:s");
//FACEBOOK
try
{
//Connect Facebook
require_once 'facebook.php';
$facebook = new Facebook(array('appId' => 'XXXXXXXXXXXXXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXX',
'cookie' => true,));
}
catch(Exception $e)
{
var_dump($e);
}
$user_id = $facebook->getUser();
$user_profile = null;
if ($user_id)
{
try
{
$user_profile = $facebook->api('/me');
}
catch (FacebookApiException $e)
{
error_log($e);
$user_id = null;
}
}
if(!$user_profile)
{
//echo $facebook->getLoginUrl();
header("Location: ".$facebook->getLoginUrl(array('scope'=>'email')));exit;
exit;
}
$users =$facebook->api('/me?fields=id,first_name,last_name,last_name,gender,email,picture.type(large),name');
$fb_uid =$users['id'];
//$gender =chkstr($users['gender']);
//$email =chkstr($users['email']);
//$user_picture =chkstr($users['picture']);
//$user_picture=chkstr($users['picture']['data']['url']);
//$name =chkstr($users['name']);
//END FACEBOOK ////
$id = $_POST['insert'];
$queryCheck = mysql_query("SELECT * FROM reward1");
if(mysql_num_rows($queryCheck)>0)
{
$arr = mysql_fetch_array($queryCheck);
$sql = "INSERT INTO luckygames(select_number,play_time,fb_uid,game_id) VALUES ( '".$id."', '".date("Y-m-d H:i:s")."','".$fb_uid."','".$arr['game_id']."')";
}
// '".date("Y-m-d H:i:s")."',
//กรณีที่ Query ข้อมูลให้เปิดตัวนี้จะ Return แค่ 0 กับ 1 ไปให่ ajax
if(mysql_query($sql)){
echo '0';
}else{
echo '1';
}
//ทดลองว่า Insert ผ่านจะได้ 0 หากเปิดตัวบนให้ปิดตัวนี้
//echo '0';
?>
ตามที่เราเข้าใจคือ ถ้านำค่าตัวเลขที่เก็บไว้ในฟิลด์ของ select_number มาเก็บใน array แล้วใช้ in_array ตรวจสอบ
ถ้าตรงกับเลขที่อยู่ในฟิลด์ r_number ก็จะเป็นสีส้มตามคลาส lucky แต่ถ้าไม่ตรงก็จะเป็นสีฟ้าตามคลาส selected
แต่เราไม่รู้วิธีการที่จะเขียนโค้ดลงไป ไม่รู้วิธีการของการใช้ array อ่ะค่ะ รบกวนพี่ๆช่วยแนะนำหรือยกตัวอย่างโค้ดด้วยนะคะ
ขอโทษที่รบกวนบ่อยแล้วก็เขียนอธิบายซะยืดยาว เราไม่รู้จะทำยังไงดีค่ะ เครียดมากๆ ยังติดอีกหลายอย่างเลย คงไม่ว่ากันนะคะ ขอบคุณมากๆเลยค่ะ
Tag : PHP, HTML/CSS, Ajax, jQuery
|
|
|
|
|
|
Date :
2013-07-28 12:00:39 |
By :
PRT |
View :
1083 |
Reply :
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่มีใครมาตอบเลยหรอคะ T_T
|
|
|
|
|
Date :
2013-07-29 11:05:58 |
By :
PRT |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|