您的位置:首页 > 数据库

sql(半原创 参考很多的东西)

2015-12-15 16:46 567 查看
一、从mysql中选取某个字段不重复的所有值

select *, count(distinct name) from table group by name

二、删除指定的字段重复值,key1是第一个字段,key2是第二个(先加标识符,然后删除-)

//去除指定的字段的重复值
private function deleteRepeat($arr,$key1,$key2){
$length=count($arr);
for ($i = 0; $i < $length; $i++) {
$cat_fid=$arr[$i][$key1];
$cat_id=$arr[$i][$key2];
for($j=$i+1;$j<count($arr);$j++){
//if ($j != $i) {
if ($cat_fid == $arr[$j][$key1]) {
if ($cat_id == $arr[$j][$key2]) {
$arr[$j]['flag']=1;
}
}else{
continue;
}
//}
}
}
foreach($arr as $key=>$val){
if(isset($val['flag'])){
$arr[$key]="";
}
}
$newarr=array_filter($arr);
return $newarr;
}

三、保持尺寸不变,改变图片质量来改变大小的方法:

/**

* desription 压缩图片

* @param sting $imgsrc 图片路径

* @param string $imgdst 压缩后保存路径

*/

//压缩图片

private static function image_size_compress($imgsrc,$imgdst,$percent){

list($width,$height,$type)=getimagesize($imgsrc);

$new_width = $width;

$new_height =$height;

switch($type){

case 1:

$giftype=Image::check_gifcartoon($imgsrc);

if($giftype){

$image_wp=imagecreatetruecolor($new_width, $new_height);

$image = imagecreatefromgif($imgsrc);

imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

imagejpeg($image_wp, $imgdst,$percent);

imagedestroy($image_wp);

}

break;

case 2:

$image_wp=imagecreatetruecolor($new_width, $new_height);

$image = imagecreatefromjpeg($imgsrc);

imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

imagejpeg($image_wp, $imgdst,$percent);

print_r($imgdst."</br>");

print_r($percent);

imagedestroy($image_wp);

break;

case 3:

$image_wp=imagecreatetruecolor($new_width, $new_height);

$image = imagecreatefrompng($imgsrc);

imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

imagejpeg($image_wp, $imgdst,$percent);

imagedestroy($image_wp);

break;

default:

break;

}

}

/**

* desription 判断是否gif动画

* @param sting $image_file图片路径

* @return boolean t 是 f 否

*/

private static function check_gifcartoon($image_file){

$fp = fopen($image_file,'rb');

$image_head = fread($fp,1024);

fclose($fp);

return preg_match("/".chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0'."/",$image_head)?false:true;

}

//递归改变图片品质,将大小控制在500kb以下

private static function changeSize($old,$new,$percent,$step){

Image::image_size_compress($old, $new, $percent);

$size = filesize($new);

if($size>500000){

unlink($new);

$percent-=$step;

Image::changeSize($old,$new,$percent,$step);

}else{

return;

}

}

//判断修改画质的初始百分比以及单步变化大小

public static function changeImage($old,$new)

{

$size = filesize($old);

//判断缩放初始比例

if ($size > 500000) {

$position = floor($size / 500000);

switch ($position) {

case 10:

$percent = 25;

$step = 3;

break;

case 9:

$percent = 30;

$step = 3;

break;

case 8:

$percent = 35;

$step = 3;

break;

case 7:

$percent = 40;

$step = 4;

break;

case 6:

$percent = 45;

$step = 5;

break;

case 5:

$percent = 50;

$step = 4;

break;

case 4:

$percent = 60;

$step = 4;

break;

case 3:

$percent = 70;

$step = 3;

break;

case 2:

$percent = 80;

$step = 2;

break;

case 1:

$percent = 90;

$step = 1;

break;

default:

$percent = 95;

$step = 1;

break;

}

//每次都先删除中转文件

if(is_file($new)){

unlink($new);

}

Image::changeSize($old, $new, $percent, $step);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: