SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 14.08.2008, 15:33:10
DocT DocT ist offline
Anfänger
 
Registriert seit: Aug 2008
Alter: 48
Beiträge: 2
"update" mit "where" über mehrere felder in einem statement

Hi

Ich habe eine grundlegende Frage zu "update" und "where". Und zwar habe ich aus PHP ein Array erzeugt, welches ich nun in mehrere Zeilen einer Tabelle einfügen möchte. Dabei möchte ich jeweils den Wert eines Array-Keys in der Zeile meiner DB updaten, die dem Array-Key entspricht, und zwar alle keys in einer Abfrage...

Beispiel (so klappt's bisher):
UPDATE tabelle1 SET spaltenwert= 'A' WHERE spaltennummer= '1';
UPDATE tabelle1 SET spaltenwert= 'B' WHERE spaltennummer= '2';
UPDATE tabelle1 SET spaltenwert= 'C' WHERE spaltennummer= '3';

so wie oben beschrieben, ist es kein Problem jeden Datensatz einzeln über ein eigenes statement zu ändern.

Nun möchte ich aber gerne aus Performance-Gründen nur ein einziges Statement ausführen, welches mir alle Felder meiner Tabelle upgradet, jedoch mit unterschiedlichen Werten in den jeweiligen Zeilen.

Das müsste ungefähr so aussehen (kenne korrekte Syntax leider nicht!):
UPDATE tabelle1 SET spaltenwert= 'A,B,C' WHERE spaltennummer= '1,2,3';

oder so:
UPDATE tabelle1 SET where-klausel/spaltenwert= '1->A,2->B,3->C';

Kann mir da jemand weiterhelfen? Ist so eine "Verknüpfung" von mehreren Where-Klauseln auf mehrere Zeilen innerhalb einer Tabelle überhaupt möglich?

Evtl. ist mein Anliegen eine simple Standardfunktion, dann fehlt mir einfach der Denkanstoss oder das entscheidende Stichwort um weiterzukommen und die entsprechende Doku zu finden... Danke schon mal an alle für die Hilfe!

DocT
Mit Zitat antworten
  #2  
Alt 15.08.2008, 15:13:57
Benutzerbild von Donnar
Donnar Donnar ist offline
Anfänger
 
Registriert seit: Jul 2008
Alter: 39
Beiträge: 25
AW: "update" mit "where" über mehrere felder in einem statement

Soweit ich weis, kannst du nicht mehrere UPDATE Befehle miteinander verbinden. Aber eine kleine Funktion in PHP dürfte da helfen. Versuch es mal so (ungetestet):
PHP-Code:
$wert = array("A","B","C");
$nummer = array(1,2,3);

$i=1;
while(
$i<=sizeof($wert)){
  echo 
"UPDATE tabelle1 SET spaltenwert=\"";
  echo 
$wert[$i];
  echo 
"\" WHERE Spaltennummer = ";
  echo 
$nummer[$i];
  echo 
";";
  
$i++;


Geändert von Donnar (15.08.2008 um 15:16:27 Uhr)
Mit Zitat antworten
  #3  
Alt 18.08.2008, 08:27:37
DocT DocT ist offline
Anfänger
 
Registriert seit: Aug 2008
Alter: 48
Beiträge: 2
AW: "update" mit "where" über mehrere felder in einem statement

Hi Donnar

Danke für die rasche Hilfe.
Wenns nicht geht, dann gehts halt nicht! Manchmal ist es auch einfach gut zu wissen, dass man sicht genug den Kopf zerbrochen hat und es eleganter schlichtweg nicht möglich ist.... hehehe :)
Mit Zitat antworten
  #4  
Alt 18.08.2008, 10:25:10
Benutzerbild von Donnar
Donnar Donnar ist offline
Anfänger
 
Registriert seit: Jul 2008
Alter: 39
Beiträge: 25
AW: "update" mit "where" über mehrere felder in einem statement

Hallo nochmal,

ich habe dich bei meiner letzten Antwort leider falsch verstanden. Deshalb versuche ich dir jetzt die korrekte antwort zu geben. Es ist dir IMHO nicht möglich einfach nur eine Spaltennummer anzugeben. Deshalb musst du in mysql den Spaltennamen angeben. Info: update

PHP-Code:
$neuerwert = array("A","B","C"); 
$alterwert = array("a","b","c"); 

$i=1
while(
$i<=sizeof($wert)){ 
  echo 
"UPDATE tabelle1 SET ";
  echo 
$alterwert[$i];
  echo 
"=\""
  echo 
$neuerwert[$i]; 
  echo 
"\"";
  
$i++; 


Geändert von Donnar (18.08.2008 um 10:25:46 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
felder zu einen zusammenfassen schlodd MySQLi/PDO/(MySQL) 8 19.08.2004 19:34:58
mySQL Statement pixelterror PHP für Fortgeschrittene und Experten 1 13.05.2004 15:00:25
Mail versenden wenn alle Felder ausgefüllt... Swordfish PHP für Fortgeschrittene und Experten 11 05.09.2002 11:12:56


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:20:24 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt