12. februar 2009 - 11:12Der er
10 kommentarer og 1 løsning
Ændre rækkefølge på sortering
Jeg har følgende script fra ASP, som jeg gerne vil have konverteret til PHP, men jeg kan ikke lige finde løsningen, jeg skal koble op til en MYSQL database
Dim Apples2
Set Apples2 = Server.CreateObject("ADODB.Connection")
ConnStr = "DRIVER={Microsoft Access Driver (*.mdb)}; " ConnStr = ConnStr & "DBQ=" & dburl Apples2.Open(ConnStr) dir = Request.QueryString("dir") if dir <> "" then oldId = Request.QueryString("SubMenuID") tempID = 0
SQL = "SELECT TOP 1 sort_order FROM teams WHERE " & afd1 & " AND sort_order" if dir = "op" then SQL = SQL & " < " & oldID & " AND inaction = true ORDER BY sort_order DESC" 'newID = Int(oldId) - 1 else SQL = SQL & " > " & oldID & " AND inaction = true ORDER BY sort_order" 'newID = Int(oldId) + 1 end if 'Response.Write SQL set rs = Apples2.Execute(SQL) newID = rs("sort_order")
SQL = "UPDATE teams SET sort_order = " & tempID & " WHERE sort_order = " & oldID & " AND " & afd1 & " AND inaction = true" Apples2.Execute(SQL) SQL = "UPDATE teams SET sort_order = " & oldID & " WHERE sort_order = " & newID & " AND " & afd1 & " AND inaction = true" Apples2.Execute(SQL) SQL = "UPDATE teams SET sort_order = " & newID & " WHERE sort_order = " & tempID & " AND " & afd1 & " AND inaction = true" Apples2.Execute(SQL) end if
$SQL = "SELECT sort_order FROM teams WHERE $afd1 AND sort_order"; if($dir == "op"){ $SQL .= " < $oldID AND inaction=true ORDER BY sort_order DESC"; //newID = Int(oldId) - 1 }else{ $SQL .= " > $oldID AND inaction=true ORDER BY sort_order"; //newID = Int(oldId) + 1 } //Response.Write SQL $res = mysql_query($SQL) or die(mysql_error()); $newID_arr = mysql_fetch_assoc($res); $newID = $newID_arr['sort_order'];
$SQL = "UPDATE teams SET sort_order='$tempID' WHERE sort_order='$oldID' AND $afd1 AND inaction=true"; mysql_query($SQL) or die(mysql_error()); $SQL = "UPDATE teams SET sort_order='$oldID' WHERE sort_order='$newID' AND $afd1 AND inaction=true"; mysql_query($SQL) or die(mysql_error()); $SQL = "UPDATE teams SET sort_order='$newID' WHERE sort_order='$tempID' AND $afd1 AND inaction=true" mysql_query($SQL) or die(mysql_error()); }
?>
der er sikkert en smutter eller 2, men se om det spiller...
$SQL = "SELECT article_cat_sort FROM ungdom_referat_cats WHERE article_cat_sort"; if($dir == "op"){ $SQL .= " < '$oldID' ORDER BY article_cat_sort DESC"; //newID = Int(oldId) - 1 }else{ $SQL .= " > '$oldID' ORDER BY article_cat_sort"; //newID = Int(oldId) + 1 } //Response.Write SQL $res = mysql_query($SQL) or die(mysql_error()); $newID_arr = mysql_fetch_assoc($res); $newID = $newID_arr['article_cat_sort'];
$SQL = "UPDATE ungdom_referat_cats SET article_cat_sort='$tempID' WHERE article_cat_sort='$oldID'"; mysql_query($SQL) or die(mysql_error()); $SQL = "UPDATE ungdom_referat_cats SET article_cat_sort='$oldID' WHERE article_cat_sort='$newID'"; mysql_query($SQL) or die(mysql_error()); $SQL = "UPDATE ungdom_referat_cats SET article_cat_sort='$newID' WHERE article_cat_sort='$tempID'"; mysql_query($SQL) or die(mysql_error()); }
Den kører fint uden fejl men den gør ikke det den skal
Den får via SubMenuID sorteringsnummeret på den aktuelle post hvis Dir = op skal den ændres til til SubMenuID-1 og den ovenover skal ændres til SubMenuID
Det svarer til at du flytter en post op men ikke i virkeligheden, hvis du forstår
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.