usergallery sortieren

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von acid2k, 07.05.2007.

  1. #1 acid2k, 07.05.2007
    Zuletzt bearbeitet: 07.05.2007
    acid2k

    acid2k Doppel-As

    Dabei seit:
    06.02.2004
    Beiträge:
    124
    Zustimmungen:
    0
    hi,

    ich hab eine usergallery programmiert wo mann mehrere bilder hochladen kann.
    die position eines bildes kann mann durch einen button nach llinks oder nach rechts verschieben können.

    ich hab jetzt das problem das wenn man öffters und schnell auf ein button klickt das dann mehrere bilder die selbe positions nummer in der daten bank erhalten.

    woran kann das liegen und wie kann man das problem lösen.

    zb. bild 1 hat position 1 in der daten bank
    und bild 2 hat postion 2 wenn ich auf bild 2 nach links verschieben klicke muss
    bild 2 postition 1 haben und bild 1 position 2 das sind 2 update befehle
    die programmiersprache ist php
    danke im vorraus
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Always-Godlike, 07.05.2007
    Always-Godlike

    Always-Godlike Das Freak

    Dabei seit:
    31.12.2006
    Beiträge:
    939
    Zustimmungen:
    0
    Ort:
    Saarland
    versuch mal ne wait-time einzubauen und guck ob das problem dann immernoch besteht.

    Ich denke nämlich dass beim schnellen Draufklicken schon der nächste Befehl übertragen wird, bevor überhaupt der MySQL -Server fertig ist.

    Warum lädst du die Seite überhaupt jedesmal neu? Du könntest doch zuerst alle Bilder an die richtige Position schieben lassen und dann das endgültige Ergebnis speichern lassen. Das sollte doch kein Problem darstellen und ist bestimmt angenehmer, als wenn sich die Seite dauernd neu lädt.

    BTW: Geile Idee! Muss ich auch mal basteln^^
     
  4. acid2k

    acid2k Doppel-As

    Dabei seit:
    06.02.2004
    Beiträge:
    124
    Zustimmungen:
    0
    ja dass problem ist es gibt kein speicher button es sollte nach dem klicken übernommen werden. was meinst du genau mit wait time

    ich hab um die abfrage ein while gesetzt und danach ein sleep(1)
    trozdem hat es nich gefunzt
     
  5. #4 Always-Godlike, 08.05.2007
    Always-Godlike

    Always-Godlike Das Freak

    Dabei seit:
    31.12.2006
    Beiträge:
    939
    Zustimmungen:
    0
    Ort:
    Saarland
    wie genau passiert denn das speichern bei dir? (auszug aus dem script, wenn möglich) mit dem sleep-befehl wollte ich vorerst mal bezwecken, dass eine bestimmte zeit einfach gewartet wird, bis die mysql auf jeden fall fertig ist.
     
  6. acid2k

    acid2k Doppel-As

    Dabei seit:
    06.02.2004
    Beiträge:
    124
    Zustimmungen:
    0
    ja das sleep befehle hat irgend wie nicht gefunzt naja

    also ich habe zwei buttons einemal nach links und einmal nach rechts wenn dieser gedrückt wird wird ein script aufgerufen der die position des bildes ermittelt also select anweisung und dann je nach dem die neue position errechnet pos + 1 oder pos -1 und liest dann die information aus welches bild aktuell die position besitzt um dann die positionen beider bilder zu vertauschen.

    while(!$yAuth->myQuery("UPDATE usergallery SET position='".$newPos."' WHERE galleryid ='".$_GET["galid"]."'\n")) sleep(1);

    while(!$yAuth->myQuery("UPDATE usergallery SET position='".$oldPos."' WHERE galleryid ='".$rows['galleryid']."'")) sleep(1);

    speichert es mit update in die datenbank und wird dann mit header(location) wieder auf die gallery geleitet
     
  7. #6 acid2k, 20.06.2007
    Zuletzt bearbeitet: 21.06.2007
    acid2k

    acid2k Doppel-As

    Dabei seit:
    06.02.2004
    Beiträge:
    124
    Zustimmungen:
    0
    hat keiner ne antwort auf mein problem ?? :(

    bin für jede hilfe dankbar :)
     
  8. dizzgo

    dizzgo Lernbereite Riesenratte

    Dabei seit:
    04.08.2005
    Beiträge:
    573
    Zustimmungen:
    0
    Ort:
    /ch/sg///
    Wie wärs wenn du nur in festgelegten intervallen und 'onunload' prüfen würdest?
    Gruss
    d22
     
  9. #8 $ch()k(), 21.06.2007
    $ch()k()

    $ch()k() Linux neophyte

    Dabei seit:
    07.12.2005
    Beiträge:
    109
    Zustimmungen:
    0
    Ort:
    Schwarzwald / Rothaus(bier)
    Hi, ich würde per JavaScript ein weiteres klick auf den Button verhinder mit onclick, und da dann die Seite neugeladen wird ist das ja alles wieder beim anfangspunkt und du kannst nochmal klicken.

    gruß $ch()k()
     
  10. acid2k

    acid2k Doppel-As

    Dabei seit:
    06.02.2004
    Beiträge:
    124
    Zustimmungen:
    0
    hi $ch()k() hört sich gut an aber hab das nicht ganz verstanden wie man das realisieren soll
    hast ein kleines beispiel für micht ?

    danke
     
  11. #10 $ch()k(), 21.06.2007
    $ch()k()

    $ch()k() Linux neophyte

    Dabei seit:
    07.12.2005
    Beiträge:
    109
    Zustimmungen:
    0
    Ort:
    Schwarzwald / Rothaus(bier)
    HI, ohhje ich kann doch garnicht so gut JavaScript ^^

    aber ich habs mal probiert und musst halt schauen ob dadurch das erreicht wird was du willst.

    als Bsp. hab ich zwei Dateien gemacht die jeweils im Head-Tag ein kleinen Script haben.

    index.php
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    	<HEAD >
        		<title> TEST </title>
        		<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" >
        		<script language="JavaScript" type="text/javascript">
    		<!--
    			var clicked = false;
    
    			function checkLink()
    			{
    				if( clicked == false)
    				{
    					clicked = true;
    					return true
    				}
    				else
    				{
    					window.alert('Nicht zweimal klicken ;-)');
    					return false
    				}				
    			}
     		//-->
    		</script>    		
      	</HEAD >
      	<BODY>
    		<p>
    			<h1>TEST</h1>
    			<br><br>
    
    			<h2><a href="index2.php" onmousedown="return checkLink();" >KlickMich</a></h2>
    		</p>	
    			
    
    	</BODY>
    </html>
    
    

    index2.php
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    	<HEAD >
        		<title> TEST </title>
        		<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" >
        		<script language="JavaScript" type="text/javascript">
    		<!--
    			var clicked = false;
    
    			function checkLink()
    			{
    				if( clicked == false)
    				{
    					clicked = true;
    					return true
    				}
    				else
    				{
    					window.alert('Nicht zweimal klicken ;-)');
    					return false
    				}				
    			}
     		//-->
    		</script>    		
      	</HEAD >
      	<BODY>
    		<p>
    			<h1>TEST2</h1>
    			<br><br>
    			<h2><a href="index.php" onmousedown="return checkLink();">zurück</a></h2>			
    		</p>
    	</BODY>
    </html>
    
    
    
    so hoffe es hilft dir weiter,

    gruß $ch()k()
     
  12. #11 acid2k, 21.06.2007
    Zuletzt bearbeitet: 21.06.2007
    acid2k

    acid2k Doppel-As

    Dabei seit:
    06.02.2004
    Beiträge:
    124
    Zustimmungen:
    0
    danke aber hat irgendwie nix gebracht die positionen in der datenbank verhacken sich trozdem

    ich weis nicht woran das liegt.
    sobald ich zwei positionen miteinander tausen lasse verhackt es sich
     
  13. #12 $ch()k(), 21.06.2007
    $ch()k()

    $ch()k() Linux neophyte

    Dabei seit:
    07.12.2005
    Beiträge:
    109
    Zustimmungen:
    0
    Ort:
    Schwarzwald / Rothaus(bier)
    schade dachte es hilft,
    aber deine Galerie funktioniert wenn man direkt einmal klickt richtig?
    vielleicht ist es auch ein Bug bei dir im Script...
     
  14. #13 acid2k, 21.06.2007
    Zuletzt bearbeitet: 21.06.2007
    acid2k

    acid2k Doppel-As

    Dabei seit:
    06.02.2004
    Beiträge:
    124
    Zustimmungen:
    0
    also nochmal zum verständnis

    Code:
    <a href=galsort.php?act=back&galid=1 onmousedown="return checkLink();">back</a>
    
    <a href=galsort.php?act=forw&galid=1 onmousedown="return checkLink();">forward</a>
    
    das sind schon mal die links

    und dann kommt der part wo die positionen ausgetauscht werden

    Code:
    if($_GET["act"] == "back") {
    
    	if($oldPos > 1) {
    
    		$newPos = $oldPos - 1;
    
    		$sql = "SELECT galleryid FROM usergallery WHERE position = ".$newPos;
    
    		$res = $yAuth->myQuery($sql);
    
    		$rows = $yAuth->myFetchAssoc($res);
    
    		
    
    		if($newPos == 1) {
    
    			$sql = "SELECT photo FROM usergallery WHERE userid = ".$userid." AND position = ".$oldPos;
    
    			$avatarResult = $yAuth->myQuery($sql);
    
    			$avatarPicInfo = $yAuth->myFetchAssoc($avatarResult);
    
    			while(!$yAuth->myQuery("UPDATE user SET avatar='".$avatarPicInfo["photo"]."' WHERE userid = ".$userid)) sleep(1);
    
    		}
    
    		while(!$yAuth->myQuery("UPDATE usergallery SET position='".$newPos."' WHERE galleryid ='".$_GET["galid"]."'\n")) sleep(1);
    
    		while(!$yAuth->myQuery("UPDATE usergallery SET position='".$oldPos."' WHERE galleryid ='".$rows['galleryid']."'")) sleep(1);
    
    	}
    
    }
    
    else if($_GET["act"] == "forw") {
    
    	if($oldPos < $count) {
    
    		$newPos = $oldPos + 1;
    
    		$sql = "SELECT galleryid FROM usergallery WHERE position = ".$newPos;
    
    		$res = $yAuth->myQuery($sql);
    
    		$rows = $yAuth->myFetchAssoc($res);
    
    		
    
    		if($newPos == 2) {
    
    			$sql = "SELECT photo FROM usergallery WHERE userid = ".$userid." AND position = ".$newPos;
    
    			$avatarResult = $yAuth->myQuery($sql);
    
    			$avatarPicInfo = $yAuth->myFetchAssoc($avatarResult);
    
    			while(!$yAuth->myQuery("UPDATE user SET avatar='".$avatarPicInfo["photo"]."' WHERE userid = ".$userid)) sleep(1);
    
    		}
    
    		while(!$yAuth->myQuery("UPDATE usergallery SET position='".$newPos."' WHERE galleryid ='".$_GET["galid"]."'")) sleep(1);
    
    		while(!$yAuth->myQuery("UPDATE usergallery SET position='".$oldPos."' WHERE galleryid ='".$rows['galleryid']."'")) sleep(1);
    
    	}	
    
    }
    
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    kann schon sein hab aber keinen fehler gefunden :S

    alles was ich mache sind ja nur zwei update befehler
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 $ch()k(), 22.06.2007
    $ch()k()

    $ch()k() Linux neophyte

    Dabei seit:
    07.12.2005
    Beiträge:
    109
    Zustimmungen:
    0
    Ort:
    Schwarzwald / Rothaus(bier)
    hmmm, mir fällt sonst leider nichts ein was dir helfen könnte.

    sorry
     
  17. acid2k

    acid2k Doppel-As

    Dabei seit:
    06.02.2004
    Beiträge:
    124
    Zustimmungen:
    0
    schade trozdem danke :(
     
Thema:

usergallery sortieren

Die Seite wird geladen...

usergallery sortieren - Ähnliche Themen

  1. Ausgabe gruppieren und sortieren

    Ausgabe gruppieren und sortieren: Hallo zusammen, ich benötige mal Hilfe bei einer nicht ganz alltäglichen Aufgabe: Ich habe eine Ausgabe die so aussieht:...
  2. Linux Mint & Evolution => Mails nach Datum sortieren

    Linux Mint & Evolution => Mails nach Datum sortieren: Hallo Leutz, ertmal hallo, bin hier neu :D. Bin mit nicht ganz sicher, ob das Theme hier rein passt, wab aber nichts besseres gefunden....
  3. temporäre Datei sortieren

    temporäre Datei sortieren: Hallo, ich habe eine Datei die in der vierten Spalte aufsteigend zu sortieren ist: M110 # (177,2,0) # 1.00 # 11.01.2012 14:48 #...
  4. latex cite: sortieren der Referenzen

    latex cite: sortieren der Referenzen: Hallo, wenn ich bei LaTeX im bibliographystyle{plain} mittels \cite{key1,key2,key3} mehrere Quellen angebe, erscheinen die Ziffern im Text in...
  5. Bilder Sortieren

    Bilder Sortieren: Hallo... Ich befasse mich seit einiger Zeit mit Centos und so weit hab ich das schon im Griff - was ich jetzt beginnen möchte - sind...