|
|
|
อยากทราบว่าผมเขียนเงือนไขแล้วในการ insert ข้อมูลแล้วแต่พอเวลามีข้อมูลซ้ำให้เปลี่ยนเป็น update แทนแต่ไม่เปนไปตามเงือนไขครับ |
|
|
|
|
|
|
|
อยากทราบว่าผมเขียนเงือนไขแล้วในการ insert ข้อมูลแล้วแต่พอเวลามีข้อมูลซ้ำให้เปลี่ยนเป็น update แทนแต่ไม่เปนไปตามเงือนไขครับ
คือมันพอมีข้อมูลซ้ำมันอัพเดทแต่ไม่ยอมinsert ข้อมูลใหม่เข้าไปอ่ะครับ รบกวนพี่ๆช่วยดูแลแนะนำทีครับให้ทีครับ ปวดหัวแล้วทำมา 2 วันแล้ว
Code (PHP)
<?php require_once('Connections/nongchumsaengwittaya.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
mysql_select_db($database_nongchumsaengwittaya, $nongchumsaengwittaya);
$query_chk_data = "SELECT * FROM tbstudent where Student_Id='$data1'";
$chk_data = mysql_query($query_chk_data, $nongchumsaengwittaya) or die(mysql_error());
$row_chk_data = mysql_fetch_assoc($chk_data);
$totalRows_chk_data = mysql_num_rows($chk_data);
if ( $_FILES['file']['error'] ) {
die("upload error ");
}
//======Connect DB======================//
$m_host = "localhost";
$m_user = "root";
$m_pass = "1234";
$m_name = "nongchumsaengwittaya";
mysql_connect($m_host,$m_user,$m_pass);
mysql_select_db($m_name);
mysql_query("SET NAMES UTF8");
//======End Connect DB======================//
//======Get data from Excel======================//
$dom = DOMDocument::load( $_FILES['file']['tmp_name'] );
$rows = $dom->getElementsByTagName( 'Row' );
$row = 1;
foreach ($rows as $temp) {
$col = 1;
if($row==1) {
$row++; continue;
}
$cells = $temp->getElementsByTagName('Cell');
foreach( $cells as $cell ) {
if($col==1) $data1 = $cell->nodeValue;
if($col==2) $data2 = $cell->nodeValue;
if($col==3) $data3 = $cell->nodeValue;
if($col==4) $data4 = $cell->nodeValue;
$col++;
}
//======End Get data from Excel======================//
//==================Insert To DB ====================================//
if($row_chk_data){
$sql = " INSERT INTO tbstudent (";
$sql .= " Student_Id, ";
$sql .= " Student_Name, ";
$sql .= " Student_Surname, ";
$sql .= " Student_Room ";
$sql .= " ) VALUES ( ";
$sql .= " '$data1', ";
$sql .= " '$data2', ";
$sql .= " '$data3', ";
$sql .= " '$data4' ";
$sql .= " ) ";
mysql_query($sql) or die(mysql_error());
}else{
$sql = " update tbstudent set Student_Id='$data1',Student_Name='$data2',Student_Surname='$data3',Student_Room='$data4' where Student_Id='$data1'";
mysql_query($sql) or die(mysql_error());
//==================End Insert To DB ====================================//
$row++;
}
mysql_close();
?>
<meta http-equiv="refresh" content="0;URL=import_save.php" />
<? }?>
<?php
mysql_free_result($chk_data);
?>
Tag : PHP
|
|
|
|
|
|
Date :
2013-05-23 09:13:22 |
By :
windermanes |
View :
881 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำได้ 2 วิธีครับ
1. เขียน Code ให้ตรวจสอบว่ามีข้อมูลหรือไม่ ถ้ามีให้ Update ถ้าไม่มี ให้ Insert
Code (PHP)
<?
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
$strSQL = "SELECT * FROM customer WHERE CustomerID = '".$_POST["txtCustomerID"]."' ";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
if($objResult)
{
// Update
}
else
{
// Insert
}
mysql_close($objConnect);
?>
2. ลองดูตัวนี้ครับ
MySQL INSERT DUPLICATE KEY UPDATE
|
|
|
|
|
Date :
2013-05-23 09:25:37 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
วิธีที่หนึ่งผมลองแล้วมันไม่ได้ครับไงขอลองวิธีที่ 2 ก่อนนะครับ ขอบคุณมากครับพี่ถ้ามีไรเดียวลองมาถามพี่ใหม่ดูนะครับ ขอบคุณครับ
|
|
|
|
|
Date :
2013-05-23 09:33:23 |
By :
windermanes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จัดไป
|
|
|
|
|
Date :
2013-05-23 09:34:33 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|