php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.07.2006, 17:16  
Neuer Benutzer
 
Registriert seit: 04.06.2006
Beiträge: 5
Zahl
Standard Spalte mit Array angleichen

Hallo,

weiß nicht so genau wie ich das ausdrücken soll. Ich habe in PHP ein
Array mit IDs. Jetzt möchte ich in einer Tabelle bei allen Datensätzen
deren Primärschlüssel in diesem Array vorkommt eine Spalte auf 1
setzen, und alle anderen auf 0.
Nur stellt sich mir die Frage wie ich das am schlausten anstelle.
Meine zwei Ansätze wären, zunächst
UPDATE tabelle1 SET spalte = 0

und dann entweder das Array in einer Schleife durchgehn und
UPDATE tabelle1 SET spalte = 1 WHERE id = array[i]
für jedes Element
oder
UPDATE tabelle1 SET spalte = 1 WHERE id = 1 OR id = 2 OR id =5 ...
wobei das WHERE Statement eben vorher in PHP gebastelt wird.

Was ist die bessere Lösung? Die erste wären eben sehr viele
Abfragen, die zweite ist unter Umständen elendich lang... Oder ne
Mischung aus beidem, immer 10 ids mit einem mal verORt?
Oder gibts vielleicht sogar eine viel einfachere Möglichkeit?

Danke für eure Antworten
Zahl ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 16.07.2006, 17:30  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Anderer Vorschlag:
UPDATE tabelel1 SET spalte=0 WHERE id IN(1, 4, 5, 6, 7)

Du musst dein Array also quasi nur zu der Liste die in IN() benötigt wird umbasteln...
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 16.07.2006, 17:34  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

UPDATE tabelle SET spalte = IF(id IN (1,2,3,4),1,0)

Setzt alle Spalten auf 1, deren ID in der IN-Liste vorkommt. Alle anderen auf 0.
Zergling-new ist offline   Mit Zitat antworten
Alt 16.07.2006, 18:08  
Neuer Benutzer
 
Registriert seit: 04.06.2006
Beiträge: 5
Zahl
Standard

Das ging ja fix, dankeschön!
Zahl ist offline   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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Soapfault: Undefined Property Argi PHP-Fortgeschrittene 0 28.07.2008 11:17
Array nach bestimmter Spalte sortieren GELight PHP Tipps 2006 4 19.08.2006 23:42
Übersicht aus mehrdimensionalem Array erzeugen Crypi PHP-Fortgeschrittene 0 30.01.2006 13:44
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
Spalte aus DB in einem Array speichern ? PHP Tipps 2006 3 06.01.2006 08:21
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array wie auslesen? PHP Tipps 2005 7 07.03.2005 11:43
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
array länge angleichen, php array angleichen, \set spalte\ in array schreiben, eine spalte einem array, array größe angleichen php, spalte in einem array ausdrücken, spalte in array

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:44 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.