Positionen tauschen

  • Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

T-sneak

Mitglied
10 Mai 2005
623
4
18
28
Rosenheim
jonato.de
Hi Leute hab ein Problem und zwar in meinem CMS ist es möglich (wie in jedem anderem auch) die positionen von den Seiten zu tauschen alles schön und gut aber jetzt hab ich ein problem und zwar: Offline auf einem lokalem Server mit Xampp funktioniert alles perfekt aber wenn ich es auf meinem Online Server probiere funktioniert das nicht mehr richtig und er wählt irgenteine zufällig Position. Hat da vlt jmd eine Idee woran das liegen könnte?

Ach hier noch die Funktion:

PHP:
function page_pos($id, $way){
	sysCore::mysqlObj()->query("SELECT id FROM ".PREFIX."content WHERE `type` != '1' AND  `kindof` = '".$this->get_kindof($id)."'");
	$this->menge = sysCore::mysqlObj()->num_rows();
	
	sysCore::mysqlObj()->query("SELECT position FROM ".PREFIX."content WHERE `id` = '".$id."'");
	$fetch = sysCore::mysqlObj()->fetch();
	
	$this->pos = $fetch['position'];
	$this->do = true;
	if($way == "up"){
	$this->n_pos = $this->pos - 1;	
		if($this->pos == 1){
		$this->do = false;
		}
	}else{
	$this->n_pos = $this->pos + 1;	
		if($this->pos == $this->menge){
		$this->do = false;
		}
	}
	if($this->do){
	sysCore::mysqlObj()->query("SELECT id FROM ".PREFIX."content WHERE `position` = '".$this->n_pos."' AND `type` != '1' AND `kindof` = '".$this->get_kindof($id)."'");
	$fetch = sysCore::mysqlObj()->fetch();
	$this->change_id = $fetch['id'];
	sysCore::mysqlObj()->edit("UPDATE ".PREFIX."content SET `position` = '".$this->pos."' WHERE `id` = '".$this->change_id."'");
	sysCore::mysqlObj()->edit("UPDATE ".PREFIX."content SET `position` = '".$this->n_pos."' WHERE `id` = '".$id."'");
	}	

	return true;	
	}
LG
 

Asipak4You

Mitglied
19 Juli 2005
577
8
18
Kann man sich das irgendwo mal anschauen? Ich weiß z.B. nicht was du mit "Positionen auswählen/tauschen" meinst!
 

T-sneak

Mitglied
10 Mai 2005
623
4
18
28
Rosenheim
jonato.de
naja anschauen is momenten eher schlecht aber ich versuchs mal genauer zu erklären und zwar:
ich hab angenommen mal

ID SEITE POSITION
1 S1 4
2 S2 3
3 S3 2
4 S4 1

Wenn ich jetzt die funktion aufrufe und als parameter 4 und down mitgebe soll ID 4 gewählt werden und die position auf 2 gesetzt werden. Die id die zu dem zeitpunkt position 2 ist soll dann hochgesetzt werden auf 1 also das es dannach so ausschaut:

ID SEITE POSITION
1 S1 4
2 S2 3
3 S3 1
4 S4 2

Offline funktioniert das auch aber im internet wenn ich down drücke rutscht mir des von der ersten auf die letzte position oder ähnlich..

hoffe das hilft euch..
 
Zuletzt bearbeitet:

Asipak4You

Mitglied
19 Juli 2005
577
8
18
Hi,

soweit ich das beurteilen kann, ist in dem Code kein Logikfehler vorhanden. In der Datenbank müssten ja alle Elemente in der Spalte `position` eine eindeutige Nummer für jeden Wert von
Code:
$this->get_kindof($id)
haben, also wie du schon sagst 1, 2, 3, 4, usw. Hast du mal überprüft, ob es auch keine doppelten Werte gibt, wie etwa 1, 3, 3, 4 oder auch 0, 0, 0, 0. Dies könnte ja die Sortierung beeinflussen!
 

T-sneak

Mitglied
10 Mai 2005
623
4
18
28
Rosenheim
jonato.de
jop hab ich schon überprüft und kindof gibt die kategorie wieder. es werden auch max die 4 positionen vergeben aber er tauscht das nicht richtig.. hmm
 

T-sneak

Mitglied
10 Mai 2005
623
4
18
28
Rosenheim
jonato.de
hab mitlerweile rausgefunden das des nur beim ersten und letzten eintrag passiert also im beispiel an position 4 und 1 und nochwas 4 wird nicht zu 3 sondern 2 und 1 wird nicht 2 sondern 3 und überspringt einfach eins sieht vlt jmd einen fehler?
 

Asipak4You

Mitglied
19 Juli 2005
577
8
18
Was mich ja irritiert ist deine Aussage:

Offline auf einem lokalem Server mit Xampp funktioniert alles perfekt[...]

Naja, bau doch mal ein paar Debugausgaben ein, z.B. könntest du dir vor
Code:
if($this->do){
Code:
echo $this->n_pos;
ausgeben lassen, um dir mal die ermittelten Werte anzuschauen!
 

T-sneak

Mitglied
10 Mai 2005
623
4
18
28
Rosenheim
jonato.de
ja hab ich auch schon gemacht manchmal stimmt die ausgabe und manchmal scheint es mir als würde er das ganze 2 mal ausführen ?.. hab die funktion jetzt nochmal komplett neu geschrieben auch mit anderen variablen und andere abfrage aber ich hab immer noch den selben fehler :(
 
Zuletzt bearbeitet:
Werbung: