我对PHP很陌生,所以请友善:)。我一直在为客户开发一个系统,以便将产品添加到页面中,删除和编辑这些产品。现在我正在进行定位,所以我创建了一个mysql条目"position"。
我的表格有一个自动递增的id、标题、描述和职位。
我已经设法将定位设置为最新上传,例如,如果我有3个条目,最新上传的位置将为4。这是上传脚本:
//UPLOAD SCRIPT
if (isset($_POST['upload'])) {
$dirupload = "../images/";
$dirupload = $dirupload . basename( $_FILES['image-upload']['name']);
$titleupload = $_POST['title-upload'];
$descriptionupload = $_POST['desc-upload'];
$imageupload = ($_FILES['image-upload']['name']);
$uploadedfileupload = $_FILES['image-upload']['tmp_name'];
$uploadedfiletypeupload = $_FILES['image-upload']['type'];
$query="SELECT * FROM promotions ORDER BY position";
$result=mysql_query($query);
$num=mysql_num_rows($result);
$add=$num+1;
if (!($uploadedfiletypeupload =="image/pjpeg" OR $uploadedfiletypeupload =="image/jpeg" OR $uploadedfiletypeupload =="image/jpg")){
echo "L'image doit être en .jpg ou .jpeg";
}else if (move_uploaded_file($_FILES['image-upload']['tmp_name'], $dirupload)){
$sql="INSERT INTO promotions (title, description, position) VALUES ('$titleupload','$descriptionupload','$add')";
if (!mysql_query($sql,$con)){
die('Error: ' . mysql_error());
}
$newnameupload = "../images/" . mysql_insert_id() . ".jpg";
rename ("../images/$imageupload","$newnameupload");
$orig_imageupload = imagecreatefromjpeg("../image/$newnameupload");
$sm_imageupload = imagecreatetruecolor(96,96);
imagecopyresampled($sm_imageupload,$orig_imageupload,0,0,0,0,96,96,imagesx($orig_imageupload),imagesy($orig_imageupload));
imagejpeg($sm_imageupload, $newnameupload, 100);
}else{
echo "Problem";
}
}
现在我的问题是用"向上"answers"向下"条目来改变位置,我设法在当前位置上添加或减去1,问题是我需要做与下一个或上一个相反的操作,这里是"向上"脚本:
if (isset ($_POST['up'])){
$id=$_POST['id'];
$position=$_POST['position'];
$newPos=$position-1;
mysql_query("UPDATE promotions SET position='$newPos' WHERE id='$id'");
}
因此,我需要找到前一行并添加1,例如:如果我有第二个条目要放在第一个,单击"向上"按钮,它会向上移动(这很有效),但我需要找到旧的第一个位置并向下移动一次(这就是问题所在)。
希望我已经足够清楚了,并提前感谢你的帮助!
认为这应该在更新到当前产品之前进行
mysql_query("UPDATE promotions SET position='$position' WHERE position='$newPos'");