Mai
oare cat de inteligent trebuie sa fii?
Filed Under (fara categorie) by dexter on 22-05-2008
Dar sa vedem codul facut de el:
function getWinner($AUCID){
$ret = array();
$user = array();
$amount = array();
$selB = mysql_query(”SELECT AMOUNT,UID,ID FROM bids WHERE AUCID = ‘$AUCID’ ORDER BY AMOUNT ASC”);
while($resB = mysql_fetch_array($selB)){
array_push($amount,$resB[AMOUNT]);
array_push($user,$resB[ID]);
}
$j = 1;
$k = 2;
$remains = array();
$winner = array();
for($i = 0 ; $i < count($amount) ; $i++){
$first = $amount[$i];
$second = $amount[$j];
$third = $amount[$k];
if($first == $second){
array_shift($amount);
array_shift($user);
if($third == $second){
array_shift($amount);
array_shift($user);
}
}else{
array_push($remains,$amount[$i]);
array_push($winner,$user[$i]);
}
$j = $j+1;
$k = $k+1;
}
$minUnique = $remains[0];
$win = $winner[0];
if($minUnique && $win){
array_push($ret , $minUnique);
array_push($ret , $win);
}else{
$selMin = mysql_query(”SELECT MIN(AMOUNT) AS MINAMOUNT,ID FROM bids WHERE AUCID = ‘$AUCID’ GROUP BY AMOUNT,DATE”);
echo mysql_error();
$resMin = mysql_fetch_array($selMin);
array_push($ret , $resMin[MINAMOUNT]);
array_push($ret , $resMin[ID]);
}
return $ret;
}
function getStatus($bidID){
$ret = “UNIQUE BUT NOT LOWEST”;
$sel = mysql_query(”SELECT AUCID FROM bids WHERE ID = ‘$bidID’”);
$res = mysql_fetch_array($sel);
$AUCID = $res[AUCID];
$arr = getWinner($AUCID);
$bidid = $arr[1];
//echo $bidid. ” = ” . $bidID.”<br />”;
if($bidid == $bidID){
$ret = “WINNING BID”;
}else{
$selMin = mysql_query(”SELECT ID,AMOUNT FROM bids WHERE AUCID = ‘$AUCID’ ORDER BY AMOUNT ASC”);
$resMin = mysql_fetch_array($selMin);
$bidid1 = $resMin[ID];
if($bidid1 == $bidID){
$ret = “LOWEST BUT DUPLICATE”;
}
}
return $ret;
}
Dar care este varianta mea?
function getWinner($AUCID){
$ret = array();
$user = array();
$amount = array();
$selB = mysql_query(”SELECT AMOUNT,UID,ID,COUNT(ID) AS a FROM bids WHERE AUCID = ‘$AUCID’ GROUP BY AMOUNT HAVING COUNT(ID)=1 ORDER BY AMOUNT ASC LIMIT 0,1″);
while($resB = mysql_fetch_array($selB)){
return $resB;
}
}
function getStatus($bidID){
$ret = “DUPLICATE”;
$sel = mysql_query(”SELECT AUCID,AMOUNT FROM bids WHERE ID = ‘$bidID’”);
$res = mysql_fetch_array($sel);
$AUCID = $res[AUCID];
$arr = getWinner($AUCID);
$bidid = $arr[2];
//echo $bidid. ” = ” . $bidID.”<br />”;
if($bidid == $bidID){
$ret = “WINNING BID”;
}else{
if($arr[0] > $res[1])
{
$ret = “DUPLICATE”;
}
else
{
$query = “SELECT ID FROM bids WHERE AMOUNT=’”.$res[1].”‘ AND AUCID=’”.$res[0].”‘ AND ID!=’”.$bidID.”‘”;
$temp = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($temp)== 0)
{
$ret= ‘UNIQUE BUT NOT LOWEST’;
}
else
{
//$ret = mysql_num_rows($temp);
}
}
}
//echo $ret;
return $ret;
}
Ce trebuie sa faci? Invata SQL. NU fa scripturi care nu le gandesti ci invata cea mai simpla si eficienta solutie!
