php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.05.2006, 09:59  
Neuer Benutzer
 
Registriert seit: 11.05.2006
Beiträge: 9
webstylist
Standard Zellenwerte ändern

Hallo miteinander

Ich hab ein kleines Query-Problem

Die Tabelle


Mein Problem
Ich habe eine Tabelle mit IDs. Nun möchte ich, dass der Query folgendes ausführt:

Allo box_nr mit dem Wert 1 sollen den Wert 2 erhalten, alle box_nr mit dem Wert 2 sollen den Wert 3 erhalten und alle box_nr mit dem Wert 3 sollen den Wert 1 erhalten.

Wie sieht der Query aus?
Muss ich zuerst alle werde in temporäre Werte umschreiben oder gibt es da noch eine andere Möglichkeit?

Grüsse
Martin
webstylist ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.05.2006, 10:29  
Gast
 
Beiträge: n/a
Standard

UPDATE ... box_nr=(box_nr%3)+1

box_nr=1 -> (1%3)+1 = 1+1=2
box_nr=2 -> (2%3)+1 = 2+1=3
box_nr=3 -> (3%3)+1 = 0+1=1

http://de.wikipedia.org/wiki/Modulo_%28Rest%29
  Mit Zitat antworten
Alt 11.05.2006, 10:31  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Willkommen im Forum

UPDATE tabelle SET box_nr = (box_nr % 3) + 1 WHERE box_nr <= 3

Edit: Mist da war einer schneller
Zergling-new ist offline   Mit Zitat antworten
Alt 11.05.2006, 10:54  
Neuer Benutzer
 
Registriert seit: 11.05.2006
Beiträge: 9
webstylist
Standard

Vielen Dank für Eure Antworten.

Das Problem ist nur, dass die Boxen bis zum Wert 6 gehen und es kann auch sein, dass nur einige werde vertauscht werden.

z.B:
Box1 wird Box5
Box5 wird Box2
Box2 wird Box1

oder

Box1 wird Box4
Box4 wird Box1

usw...

Werd mal guut überlegen, ob sich dies auch mit Modulo lösen lässt.

Ich danke euch.
webstylist ist offline   Mit Zitat antworten
Alt 11.05.2006, 11:07  
Gast
 
Beiträge: n/a
Standard

gibt es da irgendeine Regelmäßigkeit oder wird einfach gewürfelt?
  Mit Zitat antworten
Alt 11.05.2006, 12:09  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Benutz notfalls IF()
Zergling-new ist offline   Mit Zitat antworten
Alt 11.05.2006, 12:14  
Neuer Benutzer
 
Registriert seit: 11.05.2006
Beiträge: 9
webstylist
Standard

Nein, es gibt leider keine Regelmässigkeiten.

Ok, dann werd ich mich mit IF ausseinandersetzen.

Danke nochmals.
webstylist ist offline   Mit Zitat antworten
Alt 11.05.2006, 12:18  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Was hast du denn eigentlich vor?

Edit: Letztlich kannst du auch Platzhalter verwenden.

UPDATE tabelle SET box_nr = 99999 WHERE box_nr = 3
UPDATE tabelle SET box_nr = 88888 WHERE box_nr = 2
..

UPDATE tabelle SET box_nr = 2 WHERE box_nr = 99999
UPDATE tabelle SET box_nr = 3 WHERE box_nr = 88888
..

würde zB die Werte tauschen und du musst dir nicht ganz so viel Mühe mit verschachtelten IF()s machen.
Nachteil:
- Musst halt sichergehen, dass die Substitutionen auf keinen Fall als Wert bereits in box_nr vorkommen.
- Mehr Queries als eigentlich nötig, bei vielen Zeilen könnte das ein Problem werden
Zergling-new ist offline   Mit Zitat antworten
Alt 11.05.2006, 12:28  
Neuer Benutzer
 
Registriert seit: 11.05.2006
Beiträge: 9
webstylist
Standard

Was ich vor habe:
Die mod_id (ID eines Moduls meiner Seite) wird der Box Nr X und dem Link Nr Y zugeordnet.
Insgesammt existieren 6 Boxen (Hauptkategorien) die der Benutzer bestimmen kann.
Nun soll der Benutzer auch die Reihenfolge ändern können.
Somit kann die Box mal ID1 sein, aber auch mal ID6.

Da es nur 6 Boxen sind werd ich wohl keine Probleme mit Substitutionen (cooles wort) haben.
Nur die Queries machen mir ein wenig Sorgen.

Naja, eigentlich nicht so schlimm. Ist na nicht bei jedem ROS sondern nur, wenn der Benutzer die Boxen konfiguriert.

Ich werds mit Platzhaltern machen.

Danke
webstylist ist offline   Mit Zitat antworten
Alt 11.05.2006, 12:34  
Gast
 
Beiträge: n/a
Standard

Naja, wenn es nur um jeweils sechs Werte geht, dann lies sie doch komplett in Dein Skript/Programm ein, änder sie da und schreibe sie komplett wieder in die DB
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zellenwerte vertauschen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:07 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.