|
|
|
มือใหม่นะครับ เรียนท่านเซียนทั้งหลาย ช่วยมาดู code แล้วบอกวิธีทำ edit product + edit product save ให้ทีครับ >,< |
|
|
|
|
|
|
|
ตัวนี้คือหน้า product.php
Code (PHP)
<?php
session_start();
include("inc/function.php");
chk_member(); // Call function chk_member()
chk_admin(); // Call function chk_admin()
include("inc/connect.php");
?>
<!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" />
<title>Untitled Document</title>
</head>
<body>
<table width="650" border="1" align="center">
<tr>
<td colspan="6" align="center" bgcolor="#996600">. : <a href="product_add.php">Add Product</a> : .</td>
</tr>
<tr align="center">
<td width="58" bgcolor="#CCCC99">ID</td>
<td width="218" bgcolor="#CCCC99">Name</td>
<td width="116" bgcolor="#CCCC99">Category</td>
<td width="108" bgcolor="#CCCC99">Price</td>
<td width="55" bgcolor="#CCCC99">Edit</td>
<td width="55" bgcolor="#CCCC99">Del</td>
</tr>
<?php
$sql = "SELECT count(*) as total FROM category JOIN product ON category.c_id = product.c_id";
$query = mysql_query( $sql ) or die ( mysql_error().":$sql" );
$row = mysql_fetch_array( $query );
$total = $row['total']; // total record ( record ทั้งหมด )
$per = 5; //$per - 5 record ต่อ 1 หน้า page ( 5 ภาพ ต่อ 1 page )
$pageall = ceil($total/$per); // ceil คือการปัดเศษขึ้น เช่น 0.0001 จะเปน 1 ทันที ( total หารด้วย per เหลือเศษปัดขึ้นทันที )
$page = empty($_GET['page'])?1:$_GET['page']; // หา current page
$start = ($page-1)*$per; // หาจุดเริ่มของ record ( record คูณด้วย $per )
$sql = "SELECT category.c_name, product. * FROM category JOIN product ON category.c_id = product.c_id ORDER BY product.p_id DESC LIMIT $start,$per";
echo $sql;
$query = mysql_query( $sql ) or die ( mysql_error().":$sql" );
$num = mysql_num_rows( $query );
for( $i=1; $i<=$num; $i++)
{
$row = mysql_fetch_array( $query );
?>
<tr>
<td><?php echo $row['p_id']; ?></td> <?php //แสดง product id ?>
<td><?php
$src = "p_image/".$row['p_image'];
if( is_file($src) )
{
$data = getimagesize( $src );
print_r( $data );// บอกลายละเอียดของภาพ ( แสดง Array บนหน้าจอ )
if( $data[0] > 150 ) // ถ้าความกว้างมากกว่า 150
{
$w = 150; // ความกว้าง 150
$h = (150*$data[1])/$data[0]; // ความสูง * 150 หารด้วย data[0]
}else{
$w = $data[0];
$h = $data[1];
} //ถ้าภาพไหนมีความสูงและความกว้างมากกว่า จะกำหนดให้ภาพมีขนาดเท่าเดิม
echo "<img src='$src' width='$w' height='$h' />"; // กำหนดภาพ
}
?> <?php //แสดง image ?>
<br/><?php echo $row['p_name']; ?> <?php //แสดง product name ?>
</td>
<td><?php echo $row['c_name']; ?></td> <?php //แสดง category name ?>
<td><?php echo number_format($row['p_price'],2); ?></td> <?php //แสดง product price ",2" คือ ทศนิยม 2 ตำแหน่ง number_fomat คือการจัดตัวเลขให้อยู๋ในรูปแบบการจัดตัวเลขจำพวก , ?>
<td> </td>
<td> </td>
</tr>
<?php
}
?>
<tr>
<td colspan="6" bgcolor="#996600">
<<
<?php //ทำหน้า page ให้สามารถเปลี่ยนหน้าได้ ** ( loop for เพื่อแสดงหน้า page )
for( $i=1; $i<=$pageall; $i++ )
{
echo "<a href='?page=$i'>$i</a> "; // ?page คือส่งตัวแปรเปนแบบ GET เช่น ?page=1 / ?page=2 / $page=3 เปนต้น
}
?>
>></td>
</tr>
</table>
</body>
</html>
ตัวนี้คือหน้า product_add.php
Code (PHP)
<?php
session_start();
include("inc/function.php");
chk_member(); // Call function chk_member()
chk_admin(); // Call function chk_admin()
include("inc/connect.php");
?>
<!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" />
<title>Untitled Document</title>
</head>
<body>
<form action="product_addsave.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<table width="380" border="1" align="center">
<tr>
<td colspan="2" align="center" bgcolor="#339933">. : Add Product : .</td>
</tr>
<tr>
<td width="73" align="center" bgcolor="#33FF99">Name</td>
<td width="291"><label for="name"></label>
<input type="text" name="name" id="name" /></td>
</tr>
<tr>
<td align="center" bgcolor="#33FF99">Detail</td>
<td><label for="detail"></label>
<textarea name="detail" id="detail" cols="45" rows="5"></textarea></td>
</tr>
<tr>
<td align="center" bgcolor="#33FF99">Category</td>
<td><label for="category"></label>
<?php
$sql_cat = "SELECT * FROM category ORDER BY c_name ASC";
$query_cat = mysql_query( $sql_cat ) or die ( mysql_error().":$sql" );
$num_cat = mysql_num_rows( $query_cat );
?>
<select name="category" id="category">
<?php
for($i=1;$i<=$num_cat;$i++)
{
$row_cat = mysql_fetch_array( $query_cat );
?>
<option value="<?php echo $row_cat['c_id']; ?>"><?php echo $row_cat['c_name']; ?></option>
<?php
}
?>
</select></td>
</tr>
<tr>
<td align="center" bgcolor="#33FF99">Price</td>
<td><label for="price"></label>
<input type="text" name="price" id="price" /></td>
</tr>
<tr>
<td align="center" bgcolor="#33FF99">Image</td>
<td><label for="image"></label>
<input type="file" name="image" id="image" /></td>
</tr>
<tr align="center">
<td colspan="2" bgcolor="#33FF99"><input type="submit" name="submit" id="submit" value="• Submit •" /></td>
</tr>
</table>
</form>
</body>
</html>
ตัวนี้คือหน้า product_addsave.php
Code (PHP)
<?php
session_start();
include("inc/function.php");
chk_member(); // Call function chk_member()
chk_admin(); // Call function chk_admin()
include("inc/connect.php");
?>
<!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" />
<title>Untitled Document</title>
</head>
<body>
<?php
$name = $_POST['name'];
$detail = $_POST['detail'];
$category = $_POST['category'];
$price = $_POST['price'];
$image = $_FILES['image']; // ส่งมาเปน file field ต้องรับค่าด้วย $_FILES
// ตรวจสอบ parameter
// ตรวจสอบ price
// ตรวจสอบ file*
// insert data
// upload file
// update data
if( empty ($name) || empty($price) ) // เช็คค่าว่างของ name price
{
exit("<script>
alert('Please Check Data');
history.back();
</script>");
}
if( !is_numeric($price) ) // ถ้า price ไม่เปนตัวเลข
{
exit("<script>
alert('Please Check Price');
history.back();
</script>");
}
$is_upload = false; // ตัวแปรสำหรับไม่มีการ upload
if( $image['error'] == 0 ) // ตรวจสอบ file*
{
if( $image['type'] != 'image/pjpeg' && $image['type'] != 'image/pjpeg' && $image['type'] != 'image/gif' )
{
exit("<script>
alert('Please Check File Type');
history.back();
</script>");
}
if( $image['size'] > 1024*100 )
{
exit("<script>
alert('Please Upload File not over 100 kb.');
history.back();
</script>");
}
$is_upload = true; // ถ้าผ่านเงื่อนไข 2 ตัวด้านบนได้ ถึงสั่งตัวแปรอัพโหลดเข้ามา
}
include("inc/connect.php");
$sql = "INSERT INTO product VALUE ( NULL, '$name', '$detail', '$price', '', '$category', now(), '' ) "; // now() คือ date ห้ามมีเครื่องหมายคำพูดเด็ดขาด $image ให้เปนค่าว่างไปก่อน
mysql_query( $sql ) or die ( mysql_error().":$sql" );
if( $is_upload ) //ถ้ามีการ upload จะทำการ upload ทันที
{
// upload file
$newname = time();
$data = pathinfo($image['name']); //pathinfo คือ extension (นามสกุล)
$filename = $newname.".".$data['extension']; // คือ ชื่อ ตามด้วย . และนามสกุลไฟล์
$destination = "p_image/".$filename; // $destination = อ้างถึง folder ที่เกบไฟล์นั้น และ ตามด้วยชื่อของไฟล์
move_uploaded_file( $image['tmp_name'],$destination );
// Get Last insert id (การดึง id ล่าสุด )
$p_id = mysql_insert_id();
// Update product image ( update รูปภาพสินค้า )
$sql = "UPDATE product SET p_image = '$filename' WHERE p_id = '$p_id'";
mysql_query( $sql ) or die ( mysql_error().":$sql" );
}
exit("<script>
alert('Complete');
window.location='product.php';
</script>");
?>
</body>
</html>>
อยากให้ท่านเซียน ช่วยบอกทีครับ ว่าจะทำหน้า edit_product กับ edit_productsave ยังไงอ่ะครับ แบบว่าเปลี่ยน รูปโดยใช้ unlink($src = "p_image/" ไรประมาณนี้อ่ะครับ ช่วยตอบทีนะคร้าบ ขอบคุณในความกรุณาครับ
Tag : PHP
|
ประวัติการแก้ไข 2011-05-22 19:19:41 2011-05-22 19:19:59
|
|
|
|
|
Date :
2011-05-22 19:18:34 |
By :
Ondlz |
View :
1017 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คำสั่ง unlink() มันเป็นคำสั่งลบไฟล์นะ
การแก้ไข
ผมไม่ใช่เซียนนะ แต่บอกได้แค่ว่าถ้าจะแก้ไขรูปภาพ ก้แค่ อัพโหลดภาพเข้าไป ก่อนใช้คำสั่ง move_uploaded_file() ให้ดึงชื่อไฟล์เดิมที่เก็บอยู่ในฐานข้อมูลมาใส่ ส่วนถ้าเค้าไม่ได้อัพโหลดรูปใหม่เข้ามาก็ไม่ต้องอัพเดทรูป
โดยการเช็คก่อนว่าเค้าได้อัพโหลดรูปมาหรือเปล่าถ้าอัพโหลดรูปมาก็ดึงชื่อรูปมาจากฐานข้อมูล เพื่อมาใส่ตอนใช้คำสั่ง move_uploaded_file() ให้ใช้ชื่อรูปเดิมอัพโหลดไปที่เดิมแค่นี้มันก็เปลี่ยนแปลงแล้ว แต่ถ้าไม่ใช่ก็ไม่ต้องทำอะไร
|
|
|
|
|
Date :
2011-05-22 22:01:43 |
By :
chineji |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
//ต้องเช็คก่อนว่าอัพโหลดรูปมาหรือยัง
$sql = "UPDATE product SET p_name='".$name."', price='".$price."',p_detail='".$detail."', p_cat='".$category ."'";
if(){//เช็คค่าว่าอัพโหลดรูปมายังถ้าอัพมาแล้วให้ทำ
//แล้วก็ดึงชื่อไฟล์รูปเดิมมาใส่ที่ $filename
//หรือยากใช้คำสั่ง unlink() จริงๆก็ต้องดึงซื่อไฟล์เดิมมาอยู่ดี แล้วก็ใส่ unlink('พาร์ทไฟล์");
//แต่ให้ดีก็ไม่เห็นจำเป็น แค่เอาชื่อไฟล์เดิมไปใช้
// แล้วค่อยใช้คำสั่ง move_uploaded_file("ชื่อไฟล์เดิม");
$tmp_name = $_FILES["image"]["tmp_name"];
move_uploaded_file($tmp_name, "$uploads_dir/$filename");
$sql.=p_image = '$filename'";
}
$sql .=" WHERE p_id = '$p_id'";
mysql_query( $sql ) or die ( mysql_error().":$sql" );
//ก็เป็นอันจบ
|
ประวัติการแก้ไข 2011-05-22 22:56:04
|
|
|
|
Date :
2011-05-22 22:55:03 |
By :
chineji |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ่อครับ เด่วขอลองดูก่อนงับ >,<
|
|
|
|
|
Date :
2011-05-22 23:07:48 |
By :
Ondlz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|