|
|
|
ช่วยผมด้วยครับโค้ด form ของDrem เรื่องการอัพโหลดรูปภาพและต้องการเก็บชื่อไฟล์รูป |
|
|
|
|
|
|
|
ตอนนี้ฐานข้อมูลของผมแบบเป็นนี้ หลังจากกดsubmit
จะเห็นได้ชัดว่ามันแยกกัน ข้อมูลที่กรอก กับ file field คือมันแบ่งเป็น 2 insert
ผมอยากจะให้ข้อมูลที่กรอก กับ file field มาอยู่รวมกันในการกดsubmitแค่ครั้งเดียว
อันนี้โค้ดนะครับ
Code (PHP)
<?php require_once('Connections/pee.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$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;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO news (headnews, detail, type, `date`) VALUES (%s, %s, %s, %s)",
GetSQLValueString($_POST['headnews'], "text"),
GetSQLValueString($_POST['detail'], "text"),
GetSQLValueString($_POST['type'], "text"),
GetSQLValueString($_POST['date'], "date"));
mysql_select_db($database_pee, $pee);
mysql_db_query("news","SET NAMES UTF8");
$Result1 = mysql_query($insertSQL, $pee) or die(mysql_error());
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="JavaScript" src="date-picker.js"></script>
<title>Untitled Document</title>
</head>
<body>
<?
if($MM_insert == "form1") { //เช็คค่า hidden ที่่ส่งมา ถ้าเท่ากับ Add ให้โปรแกรมทำงาน
$date = date("U"); //สร้างเลข 10 หลักมาจากเวลา เพื่อเอาไปใช้เป็นชื่อของรูป ป้องกันชื่อรูปซ้ำ
if($file != "") {
$type = getimagesize($file); //หาประเภทของรูปภาพ
if($type[2] == 1) { //เมื่อรูปภาพเป็นชนิด gif
$image = $date."_img.gif";
} else if($type[2] == 2) { //เมื่อรูปภาพเป็นชนิด jpg
$image = $date."_img.jpg";
}
copy($file, "images/$image"); //ก๊อปปี้รูปภาพไปยังโพลเดอร์ images
chmod("images/$image", 0664); //ทำการ changmode
}
$host="localhost";
$db_username="root";
$db_password="123456";
$dbname="news"; //ชื่อฐานข้อมูล
$connect = mysql_connect($host,$db_username,$db_password);
if(!$connect){
echo "ไม่สามารถติดต่อฐานข้อมูลได้"; exit();
}
$sql = "insert into news (id, headnews, detail, type, image, `date`) values ('','','','', '$image','') "; //เพิ่มข้อมูลลงดาต้าเบส โดนเอาชื่อของรูปไปเก็บไว้
$dbquery = mysql_db_query($dbname, $sql);
}
?>
<p>Admin ยินดีต้อนรับ</p>
<p>New information</p>
<form action="<?php echo $editFormAction; ?>" method="POST" enctype="multipart/form-data" name="form1" id="form1">
<table width="361" height="157" border="0">
<tr>
<td width="90">หัวเรื่อง</td>
<td width="261"><label for="headnews"></label>
<input type="text" name="headnews" id="headnews" /></td>
</tr>
<tr>
<td>รายละเอียด</td>
<td><label for="detail"></label>
<textarea name="detail" id="detail" cols="45" rows="5"></textarea></td>
</tr>
<tr>
<td>ประเภท</td>
<td><label for="type"></label>
<select name="type" id="type">
<option value="บันเทิง">บันเทิง</option>
<option value="การเมือง">การเมือง</option>
<option value="ไอที">ไอที</option>
<option value="กีฬา">กีฬา</option>
</select></td>
</tr>
<tr>
<td>รูป</td>
<td><label for="file"></label>
<label for="file"></label>
<input type="file" name="file" id="file" /><label for="date"></label></td>
</tr>
<tr>
<td>เวลา</td>
<td><label for="date"></label>
<input name="date" type="text" id="date" size="20" onkeypress="if (event.keyCode < 45 || event.keyCode > 57) { alert('พิมพ์เฉพาะตัวเลข และ - เท่านั้น '); event.returnValue = false;}" />
<a href="javascript:show_calendar('form1.date');" onmouseover="window.status='ปฏิทิน';return true;" onmouseout="window.status='';return true;"><img src="show-calendar.gif" alt="" width="24" height="22" border="0" align="top" /></a></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="button3" id="button3" value="Submit" />
<input type="reset" name="button3" id="button4" value="Reset" /></td>
</tr>
</table>
<p> </p>
<input type="hidden" name="MM_insert" value="form1" />
</form>
<p> </p>
<p> </p>
</body>
</html>
ขอบคุณทุกท่านครับ
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2013-08-31 13:34:54 |
By :
coolgay01 |
View :
957 |
Reply :
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอน INSERT มัน INSERT กันคนละที มันก็ไม่ได้อยู่ด้วยกันอะสิครับ
|
|
|
|
|
Date :
2013-08-31 13:42:39 |
By :
yamcrocodile |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลองแล้วครับทำให้มันอยู่ INSERT เดี่ยวกันมันบอกว่า ธาฐข้อมูล be null ผมจะแก้ให้ผมได้ไหมครับ ทำให้มันรัน INSERT เดียวกัน
|
|
|
|
|
Date :
2013-08-31 13:49:36 |
By :
coolgay01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เขียนเอง หรือ ไปเอาของคนอื่นมาแก้ใขครับ
|
|
|
|
|
Date :
2013-08-31 14:01:06 |
By :
yamcrocodile |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เขียนเองครับยกเว้น Codeนี้
Code (PHP)
<?
if($MM_insert == "form1") { //เช็คค่า hidden ที่่ส่งมา ถ้าเท่ากับ Add ให้โปรแกรมทำงาน
$date = date("U"); //สร้างเลข 10 หลักมาจากเวลา เพื่อเอาไปใช้เป็นชื่อของรูป ป้องกันชื่อรูปซ้ำ
if($file != "") {
$type = getimagesize($file); //หาประเภทของรูปภาพ
if($type[2] == 1) { //เมื่อรูปภาพเป็นชนิด gif
$image = $date."_img.gif";
} else if($type[2] == 2) { //เมื่อรูปภาพเป็นชนิด jpg
$image = $date."_img.jpg";
}
copy($file, "images/$image"); //ก๊อปปี้รูปภาพไปยังโพลเดอร์ images
chmod("images/$image", 0664); //ทำการ changmode
}
$host="localhost";
$db_username="root";
$db_password="123456";
$dbname="news"; //ชื่อฐานข้อมูล
$connect = mysql_connect($host,$db_username,$db_password);
if(!$connect){
echo "ไม่สามารถติดต่อฐานข้อมูลได้"; exit();
}
$sql = "insert into news (id, headnews, detail, type, image, `date`) values ('','','','', '$image','') "; //เพิ่มข้อมูลลงดาต้าเบส โดนเอาชื่อของรูปไปเก็บไว้
$dbquery = mysql_db_query($dbname, $sql);
}
?>
|
|
|
|
|
Date :
2013-08-31 14:04:12 |
By :
coolgay01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<?php require_once('Connections/pee.php'); ?>
คือไฟร์อะไรครับ
|
|
|
|
|
Date :
2013-08-31 14:08:03 |
By :
yamcrocodile |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Connections/pee.php คือการตั่งค่าให้อ่านSQLของผมครับ
อันนี้ครับ
Code (PHP)
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_pee = "localhost";
$database_pee = "news";
$username_pee = "root";
$password_pee = "123456";
$pee = mysql_pconnect($hostname_pee, $username_pee, $password_pee) or trigger_error(mysql_error(),E_USER_ERROR);
?>
|
|
|
|
|
Date :
2013-08-31 14:12:36 |
By :
coolgay01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดัดแปลง ดูเอา ผมเขียนให้ไกล้เคียงคุณมากที่สุด ครับผมยังไม่ได้ลอง รันเขียนสดเลย
Code (PHP)
<?php
mysql_connect('localhost','root','123456') or die (mysql_error());
mysql_select_db("ชื่อ Database") or die (mysql_error());
mysql_query("SET NAMES UTF8");
if($_GET['action'] == '1')
{
$headnews = $_POST['headnews'];
$detail = $_POST['detail'];
$type = $_POST['type'];
$date = $_POST['date'];
$name = $_FILES['file']['name'];
$file = $_FILES['file']['tmp_name'];
copy($file,"images/$name");//ส่วนตรงนี้ เพิ่มโค๊ต ที่จะแปลงชื่อ หรืออะไรก็ตาม แต่ ครับ
$sql = mysql_query("INSERT INTO news VALUES ('','$headnews','$detail','$type','$image','$date')");
if($sql)
{
echo "<script>alert('เพิ่มข้อมูล เสร็จ')</script>";
}else{
echo "<script>alert('ไม่สามารถเพิ่มข้อมูลได้')</script>";
}
exit()
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script language="JavaScript" src="date-picker.js" type="text/javascript">
</script>
<title>Untitled Document</title>
</head>
<body>
<p>Admin ยินดีต้อนรับ</p>
<p>New information</p>
<form action="?action=1" method="post" enctype="multipart/form-data" id="form1">
<table width="361" height="157" border="0">
<tr>
<td width="90">หัวเรื่อง</td>
<td width="261"><input type="text" name="headnews" id="headnews" /></td>
</tr>
<tr>
<td>รายละเอียด</td>
<td>
<textarea name="detail" id="detail" cols="45" rows="5">
</textarea></td>
</tr>
<tr>
<td>ประเภท</td>
<td><select name="type" id="type">
<option value="บันเทิง">
บันเทิง
</option>
<option value="การเมือง">
การเมือง
</option>
<option value="ไอที">
ไอที
</option>
<option value="กีฬา">
กีฬา
</option>
</select></td>
</tr>
<tr>
<td>รูป</td>
<td><input type="file" name="file" id="file" /></td>
</tr>
<tr>
<td>เวลา</td>
<td><input name="date" type="text" id="date" size="20" onkeypress="if (event.keyCode < 45 || event.keyCode > 57) { alert('พิมพ์เฉพาะตัวเลข และ - เท่านั้น '); event.returnValue = false;}" /> <a href="javascript:show_calendar('form1.date');" onmouseover="window.status='ปฏิทิน';return true;" onmouseout="window.status='';return true;"><img src="show-calendar.gif" alt="" width="24" height="22" border="0" align="top" /></a></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="button3" id="button3" value="Submit" /> <input type="reset" name="button3" id="button4" value="Reset" /></td>
</tr>
</table>
<p> </p><input type="hidden" name="MM_insert" value="form1" />
</form>
<p> </p>
<p> </p>
</body>
</html>
ติดต่อ Line ID: yamq
|
ประวัติการแก้ไข 2013-08-31 14:25:35 2013-08-31 14:27:14
|
|
|
|
Date :
2013-08-31 14:24:44 |
By :
yamcrocodile |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|