|
|
|
ติดปัญหาการ select ตาราง ให้ฟิลด์นึงจากตารางนึงไปอยู่ร่วมกับอีกตารางนึงค่ะ |
|
|
|
|
|
|
|
คือเรา select ตารางเพื่อให้ game_id จากตาราง reward1 ไปอยู่ร่วมกับตาราง luckygames ค่ะ
เราทำเพื่อเวลา insert ตัวเลขเข้าไปใน select_number จะได้รู้ว่ามาจาก game_id ไหนค่ะ
แต่ปัญหาคือเลข 51,62 มาจาก game_id 44 แต่ 1,2,3 มาจาก game_id 47 แต่กลับขึ้นว่ามาจาก game_id 44
จะแก้ปัญหายังไงคะ ไม่รู้ว่าเพราะไม่ได้ส่งค่าตัวแปรมาจาก ajax รึป่าว แต่เราไม่ค่อยรู้เรื่อง ajax เลยค่ะ ไม่รู้ว่าจะส่งตัวแปรมายังไง
รบกวนช่วยดูด้วยนะคะ
นี่คือโค้ดค่ะ
Code (PHP)
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Lucky Games เกมส์สอยดาว</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("ไม่สามารถบันทึกได้!");
}
}
});
}
});
});
<body>
<div id="game-choice" class="box-g-lucky">
<ul id="game-play">
<?php
include "config.php";
$get_id = (isset($_GET['id'])) ? $_GET['id'] : '';
$checkdate=@date("Y-m-d");
$string = "Select * From reward1 where game_id='$game_id' and end_date>='$checkdate' order by game_id desc limit 1 ";
$query_string = mysql_query($string);
$query_string = mysql_query($string) or die(mysql_error());
$result = mysql_fetch_array($query_string);
//$game_id = (isset($_GET['game_id'])) ? $_GET['game_id'] : '';
$strSql="SELECT select_number FROM luckygames";
$selected_nums = array();
$query = mysql_query($strSql);
while($result1 = mysql_fetch_array($query))
$selected_nums[$result1[0]] = $result1[0];
//var_dump($selected_nums);
{
for ($i=1; $i<=$result["number"]; $i++){
if(array_key_exists($i, $selected_nums)){
echo '<li id='.$i.' class="selected">'.$i.'</li>';
}else{
echo '<li id='.$i.'><a href="javascript:;" class="">'.$i.'</a></li>';
}
}
}
?>
</ul>
ส่วนอันนี้คือโค้ดตอน insert ค่ะ
Code (PHP)
$id = $_POST['insert'];
//$game_id = $_POST['game_id'];
$queryCheck = mysql_query("SELECT * FROM reward1");
{
$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';
?>
Tag : PHP, Ajax, jQuery
|
ประวัติการแก้ไข 2013-08-05 21:52:20
|
|
|
|
|
Date :
2013-08-05 21:50:13 |
By :
PRT |
View :
837 |
Reply :
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พอส่งค่า game_id ไป พอกดเลือกตัวเลขแล้วไม่ insert เข้าฐานข้อมูลค่ะ แต่ส่งค่า 0 ไปได้นะคะ ขึ้น error ที่ไฟล์ insert แบบนี้ค่ะ
Notice: Undefined index: insert in /var/www/html/ratitest/insert.php on line 53 Notice: Undefined index: game_id in /var/www/html/ratitest/insert.php on line 54 0
ไม่รู้ว่าใส่ค่าอะไรผิดรึป่าว รบกวนช่วยดูให้ด้วยนะคะ
Code (PHP)
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Lucky Games เกมส์สอยดาว</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,game_id:Game_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("ไม่สามารถบันทึกได้!");
}
}
});
}
});
});
</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'] : '';
$checkdate=@date("Y-m-d");
//$checkdate=@date("Y-m-d");
//echo $checkdate;
//die();
$string = "Select * From reward1 where game_id='$game_id' and (r_status='1') order by game_id desc limit 1 ";
$query_string = mysql_query($string);
$result = mysql_fetch_array($query_string);
//$game_id = (isset($_GET['game_id'])) ? $_GET['game_id'] : '';
$strSql="SELECT select_number FROM luckygames where game_id = ".$game_id." ";
$selected_nums = array();
$query = mysql_query($strSql);
while($result1 = mysql_fetch_array($query))
$selected_nums[$result1[0]] = $result1[0];
//var_dump($selected_nums);
{
for ($i=1; $i<=$result["number"]; $i++){
if(array_key_exists($i, $selected_nums)){
echo '<li id='.$i.' class="selected">'.$i.'</li>';
}else{
echo '<li id='.$i.'><a href="javascript:;" class="">'.$i.'</a></li>';
}
}
}
?>
</ul>
insert.php
Code (PHP)
$id = $_POST['insert'];
$game_id = $_POST['game_id'];
$queryCheck = mysql_query("SELECT * FROM reward1");
$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."','".$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';
ถ้าจะขอแอดเมล์พี่ krungsri เพื่อไปสอบถามเรื่องการเขียนโค้ดตัวนี้จะได้มั้ยคะ
|
ประวัติการแก้ไข 2013-08-06 08:54:58
|
|
|
|
Date :
2013-08-06 08:54:15 |
By :
PRT |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
game_id:Game_ID ผมสมมุติขึ้นมานะครับคุณต้องไปเขียน Code เพื่อส่งตัวแปรไปนะคับ
|
|
|
|
|
Date :
2013-08-06 08:58:09 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ่อ ค่ะๆ ถ้าจะขอแอดเมล์พี่ krungsri เพื่อไปสอบถามเรื่องการเขียนโค้ดตัวนี้จะได้มั้ยคะ
|
|
|
|
|
Date :
2013-08-06 09:03:31 |
By :
PRT |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใน body ของ html ก็แทรก
Code (PHP)
<input type="hidden" id="GameID" value="<?=$game_id?>">
ในส่วนของ java sscript ก็เพิ่ม
Code (JavaScript)
<script>
$(document).ready(function(e) {
$('li').click(function(e) {
var Current = $(this); //กำหนด Selector หลักเพื่อเรียนใช้งาน
var ID = Current.attr('id'); // Id ของ li ที่คลิก
var Game_ID = $('#GameID').val(); // -------------- เพิ่มตัวนี้ ตรง data ก็ใช้ data:{insert:ID,game_id:Game_ID}
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,game_id:Game_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>
|
|
|
|
|
Date :
2013-08-06 09:19:54 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากๆเลยค่ะ ขอโทษที่รบกวนเวลาพี่นะคะ :)
|
|
|
|
|
Date :
2013-08-06 09:22:25 |
By :
PRT |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่เป็นไรคับ
|
|
|
|
|
Date :
2013-08-06 09:23:55 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
insert ได้แล้วค่ะ แต่ติดปัญหาเดิม คือเลขที่ insert เข้าไป ไม่เป็นไปตาม game_id อ่ะค่ะ
ไม่รู้จะแก้ยังไงแล้วค่ะ T_T น่าจะมีปัญหาที่ไฟล์ insert
Code (PHP)
$id = $_POST['id'];
$game_id = $_POST['game_id'];
$query = mysql_query("SELECT * FROM reward1 "); // คิวรี่เพื่อดึง game_id จาก reward1 ให้เข้าไปอยู่ในตาราง luckygames ด้วย
$arr = mysql_fetch_array($query);
while($arr = mysql_fetch_array($query))
{
//var_dump($arr);
$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';
?>
|
|
|
|
|
Date :
2013-08-06 11:07:21 |
By :
PRT |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|