Last time we talked about how to display the product list. Let's talk about the method of displaying product details, which is similar to the method we commonly use to display posts in forums.
************File showing detailed information******************
detail.php
<?php
include " config.inc.php";
//Display product details
//Use global variables to easily get the values of multiple fields.
//With id, name, price, introduction, current price, unit, picture, end time.
function ReadDetail(){
global $WARE_TABLE;
global $id,$name,$price,$description,$cprice,$unit,$image,$endtime;
$ SQL="select id,name,description,price,unit,endtime,reply,curprice,photo from $WARE_TABLE where id='$id'";
$result=mysql_query($SQL) or die(mysql_error() ; , this is very necessary.
$row=mysql_fetch_array($result);
$name=$row[name];
$price=$row[price];
$description=$row[description] ;
$unit=$row[unit];
$cprice=$row[curprice];
$endtime=date("Y-m-j",$row[endtime]);
if($ row[photo]==1) $image=$row[id].".jpg";
else $image="";
}
//Read the latest 10 Buyer information
function ReadBuyer(){
global $BID_TABLE;
global $id,$buyer,$buyprice,$date,$num;
$SQL="select id ,buyer,email,price from $BID_TABLE where parentid='$id' order by id desc";
$result=mysql_query($SQL) or die(mysql_error());
$k=mysql_num_rows($ result);
$num=($k>10)? 10:$k; //Judge whether there are more than 10.
for($i=0;$i<$num;$i++){
$row=mysql_fetch_array($result);
$buyer[]=$row[buyer];
$buyprice[]=$row[price];
$date[]=date("Y-m-j H:i:s",$row[id]);
}
}
//Display 10 buyer information.
function ShowBuyer(){
global $buyer,$buyprice,$date,$num;
for($i=0;$i<$num;$i++){
echo "<tr><td width=25%>".$date[$i]."</td>";
echo "<td width=40%>".$buyer[$i] ."</td>";
echo "<td width=35%>".$buyprice[$i]."</td></tr>";
}
}
ReadDetail();
ReadBuyer();
?>
After completing the above processing, you can use <? echo $name?> Or echo $price;?> and so on to get the information to be displayed, I will not go into details.
That’s it, text or pictures should be displayed depending on whether there are pictures or not.
<? if($image=="") echo "No photo"; else echo "<img src=photo/$image>"; ?>
When displaying product details, users should also be allowed to bid, so at this time, a judgment needs to be made on the new price placed by the user. I was lazy, so I directly used Deamweaver to verify the form, and only included the English words in it. The description was changed to Chinese, but because it is a bit special in judging new bids, a little change was made to the function generated by dw.
<script language="JavaScript">
<!--
function MM_findObj(n, d) { //v3.0
var p,i,x; if( !d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document ; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d .forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i
function MM_validateForm() { //v3.0
var i,p,q,nm,test,num,min,max, errors='',args=MM_validateForm.arguments;
for (i=0; iif (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1 ) { p=val.indexOf('@');
if (p} else if (test!='R') { num = parseFloat(val);
if (val!=''+num) errors+='- '+nm+' must be a numerical value.n ';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test. substring(p+1);
//************Changes*********
var k=(num-min)/max;
//The judgment must be greater than the current price, and it must be an integer multiple of the current price + price increase unit
if (num<min || k != Math.ceil(k) ) errors+='- '+nm+' must be greater than' +min+' and the price increase must be an integer multiple of '+max+'.n';
} } } //************End the changes********
else if ( test.charAt(0) == 'R') errors += '- '+nm+' Fill in the complete form.n'; }
} if (errors) alert('The following errors were found: n'+errors);
document.MM_returnValue = (errors == '');
}
//-->
</script>
The following is simple, but also What's there? Show the items for which bidding has ended. The implementation of this function is the same as the method of displaying unfinished products, so I won’t be verbose.The only difference is that the SetCondition() condition is different and there is no user bidding form when displaying the product details of the end auction.
In addition, I will give you a method to add new products.
<?php
include "config.inc.php";
include "tview.class.php";
function AddRecord(){
global $view ;
//The following variables are obtained from the form on the previous page.
global $name,$price,$unit,$year,$month,$day,$photofile,$intro;
$t=time();
$c=nl2br($ intro);
$et=mktime(24,0,0,$month,$day,$year);
//Check whether a picture has been uploaded.
$ph=( $photofile!="none" and !empty($photofile) )? '1':'0';
//The parameters for calling member function add() are in the sql statement The string in values()
$view->Add("'$t','$name','$c','$price','$unit','$et',' 0','$price','$ph'");
//If there are pictures, copy them to the specified directory.
if($ph=='1')
copy($photofile,"photo/$t.jpg");
}
if( $Submit){
$view= new TViewPage($WARE_TABLE,20);
AddRecord();
header("Location:manager.htm");
}
?>
Okay, Luo Luo Suosuo has written two articles, I wonder if I can add a few hundred points. :)
If you have any questions, I sincerely invite you to discuss them. I have taken out the program. If you see anything inappropriate, don’t be stingy and remember to tell me.
My email: ycshowtop@21cn.com
In addition, if you want a more complete code for this program, please send me an email and I will send it to you.