PHP/mySQL - Reihenfolge für Navigation in Datenbank ändern

ich habe es jetzt so, aber jetzt macht er nichtsmehr :(

Code:
		mysql_db_query("$mysqlname", 	"UPDATE `seiten` SET `SortID` = `$sortid`+1 WHERE `SortID` BETWEEN `$sortid`+1 AND = `$sortid` `id` != '$abid'");
		mysql_db_query("$mysqlname", 	"UPDATE `seiten` SET `SortID` = '$sortid' WHERE `id` = '$abid'");
 
Hi,

die Syntax des ersten SQL-Statements ist ja auch falsch. Schreibe die Abfrage erst mal in eine Variable und lass Dir das ausgeben. Dann siehst Du, wo die Fehler liegen.

LG
 
Prinzipiell müsste es wie folgt aufgebaut sein:
PHP:
$posNeu = 123;
$posAlt = mysql_fetch_assoc(mysql_query('SELECT `SortID` FROM `seiten` WHERE `id` = '.$id));
if ($posNeu < $posAlt) {
	mysql_query('UPDATE `seiten` SET `SortID` = `SortID`+1 WHERE `SortID` BETWEEN '.$posNeu.' AND '.$posAlt.' `id` != '.$id);
} else {
	mysql_query('UPDATE `seiten` SET `SortID` = `SortID`-1 WHERE `SortID` BETWEEN '.$posAlt.' AND '.$posNeu.' `id` != '.$id);
}
mysql_query('UPDATE `seiten` SET `SortID` = '.$posNeu.' WHERE `ID` = '.$id);
 
Hi,

kleine Korrektur (AND vergessen):

PHP:
$posNeu = 123;
$posAlt = mysql_fetch_assoc(mysql_query('SELECT `SortID` FROM `seiten` WHERE `id` = '.$id));
if ($posNeu < $posAlt) {
    mysql_query('UPDATE `seiten` SET `SortID` = `SortID`+1 WHERE `SortID` BETWEEN '.$posNeu.' AND '.$posAlt.' AND `id` != '.$id);
} else {
    mysql_query('UPDATE `seiten` SET `SortID` = `SortID`-1 WHERE `SortID` BETWEEN '.$posAlt.' AND '.$posNeu.' AND `id` != '.$id);
}
mysql_query('UPDATE `seiten` SET `SortID` = '.$posNeu.' WHERE `ID` = '.$id);

LG
 
cool, danke... leider steckt der wurm drin...

Code:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\admin\seite_anzeigen.php on line 114
 
Vielleicht ein bischen Kompliziert und eigenwillig :)
Aber es klapt.

PHP:
if(isset($_GET['pos'])){
  $sqlmax = "SELECT * FROM `content`
             WHERE `allocate` = '".mysql_real_escape_string($url)."'
			 ORDER BY `pos` DESC
			 LIMIT 1
			";
  $result = mysql_query($sqlmax);
  $max = mysql_fetch_array($result);
  $max = $max['pos'];
  
  if($_GET['action'] == 'up'){
	if($_GET['pos'] > 1){
	  $new = $_GET['pos']-1;
	}
  }
  
  if($_GET['action'] == 'down'){
	if($_GET['pos'] < $max){
	  $new = $_GET['pos']+1;
	}
  }
  
  if($new){
    $sql001 = "UPDATE `content`
               SET `pos` = '".mysql_real_escape_string('0')."'
               WHERE `pos` = '".mysql_real_escape_string($new)."'
               AND `allocate` = '".mysql_real_escape_string($url)."'
               LIMIT 1
			  ";
    $result001 = mysql_query($sql001);
    $sql002 = "UPDATE `content`
               SET `pos` = '".mysql_real_escape_string($new)."'
               WHERE `pos` = '".mysql_real_escape_string($_GET['pos'])."'
               AND `allocate` = '".mysql_real_escape_string($url)."'
               LIMIT 1
			  ";
    $result002 = mysql_query($sql002);
    $sql003 = "UPDATE `content`
               SET `pos` = '".mysql_real_escape_string($_GET['pos'])."'
               WHERE `pos` = '".mysql_real_escape_string('0')."'
               AND `allocate` = '".mysql_real_escape_string($url)."'
               LIMIT 1
			  ";
    $result003 = mysql_query($sql003);
  }
  header('Location: '.$_SERVER['PHP_SELF'].'?id='.$_GET['id'].$sub);
}
 

Anhänge

  • up_down.jpg
    up_down.jpg
    36,1 KB · Aufrufe: 170
Zuletzt bearbeitet:
Hi,

cool, danke... leider steckt der wurm drin...

Code:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\admin\seite_anzeigen.php on line 114

Dann ist die vorangehende Abfrage fehlgeschlagen. Wo passiert das denn? Lass Dir die Abfrage mal samt mysql_error() ausgeben.

LG
 
Wenn ich fragen darf, wie sieht dein Formular aus?

Gruß Tobi

Wie das Formular aussieht?
Ich habe eine Visuelle darstellung angehängt als Bild.

Das ganze wird nicht via $_POST sondern mit $_GET übergeben.

PHP:
echo '<a href="'.$_SERVER['PHP_SELF'].'?action=up&pos='.$row['pos'].'">';
  echo '<img src="images/ico_pos_up.jpg">';
echo '</a>';
echo '<a href="'.$_SERVER['PHP_SELF'].'?action=down&pos='.$row['pos'].'">';
  echo '<img src="images/ico_pos_down.jpg">';
echo '</a>';
 

Neue Beiträge

Zurück