Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Da eintragen, wo nichts drinnen steht Antworten
Da eintragen, wo nichts drinnen steht

Vash
Pixelschubser


Beiträge: 17


Hi,

Also, ich wollte das durch eine bestimmte Aktion etwas in einer der Spalten eingetragen wird, aber nur dort, wo noch nichts drinnen ist, weil ich nichts überschreiben will.

Ich habe es anfangs so versucht:

update tabelle set spalte = 'neuer wert' where spalte is null;

so kann das doch net funktionieren, oder?

ich habe die spalten:

name: Test
id: 1
spalt1: blablabla
spalt2: blablabla
spalt3:
.
.
.
.
spalt50: blablabla

so nun will ich ja, das er nur in die Spalte einträgt wo nix drinnen ist, also kann ich ja net schreiben UPDATE test SET spalt1 = balbalbalb where spalte is null;

weil das sich ja dann nur auf die Spalte spalt1 bezieht, obwohl in diesem Falle es in spalt3: eingetragen werden soll. Aber danke. Oder ist das gar net möglich?

Ich hoffe ihr versteht meine Fragen oder / und koennt sie beantworten

Danke

Vash

  Profil   E-Mail   Editieren   Zitieren

Ehemaliges Mitglied (#644)
Forenheld


Beiträge: 835


ja ich verstehe was du meinst. was hälst du von:

for (blabla) {
$var = $line[$i];

if ($var == "") {
$update
}


}

  Profil   Editieren   Zitieren

Vash
Pixelschubser


Beiträge: 17


mhh ich verstehe nicht was du damit erreichen willst, kannst du es etwas detialiertet erklären?


Danke aber.


  Profil   E-Mail   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Wie genau sieht deine Tabelle aus?

id | spalte1 | spalte2 | spalte3 ???

dann müsstest du am eifnachsten drei UPDATE-Anweisungen, jeweils für jede Spalte machen. das ist am schnellsten.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

Vash
Pixelschubser


Beiträge: 17


Naja das Problem ist, ich habe 50 spalten :(

name || id || Spalte1 || Spalte2 || Spalte3 || .... || Saplte 50 |<

Diese Nachricht wurde geändert von: Vash
  Profil   E-Mail   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


wofür is das? Bei sowas würd ich immer empfehlen, zu gucken, ob man nicht die Tabellenstruktur ändern kann...

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

Vash
Pixelschubser


Beiträge: 17


Ich bin mir eigentlich ziemlich sicher, das ich die Struktur net ändern kann, weil s einfach 50 verschiedene dinge seien sollen. Gibt es denn dafür keine möglichkeit, ausser alle spalten einzeln zu testen?

  Profil   E-Mail   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


nein, dafür gibts kaum ne andere Möglichkeit. Ausschließen will ichs nicht, aber ich kenn sie nicht.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

inko
Fachidiot


Beiträge: 133


Natürlich kannst Du die Struktur ändern und zwar folgendermassen:

1: 
2: 
3: 
4: 
5: 
6:
CREATE TABLE blabla (
  id int(11) unsigned NOT NULL default '0',
  column tinyint(2) unsigned NOT NULL default '0',
  value varchar(32) NOT NULL default '',
  PRIMARY KEY  (id,column)
) TYPE=MyISAM;


Du kannst einfach INSERTS ausführen, wenn ein id / column - Paar existiert schlägt das wegen des keys über 2 Spalten fehl.

  Profil   Editieren   Zitieren

intruder
Pixelschubser


Beiträge: 13


ich würde die db tabellen struktur so ändern, dass du die informationen auf mehrere tabellen verteilst. du kannst die id als gemeinsamen nenner benutzen.
Es ist einfach nicht sonderlich förderlich für die dauer der abfragen, wenn das teil so viele spalten hat. mach es dir doch leichter ... verteile das ganze ein bisschen.
das macht die administration leichter.

  Profil   E-Mail   Editieren   Zitieren

Vash
Pixelschubser


Beiträge: 17


ich habe mich jetzt dazu entschlossen abfragen einzeln zu machen, aber wie könnte ich das realisieren, erst zu checken wo in den 50 spalten noch nichts drinnen ist, das müsste man ja dann mit einem if befehl machen, der sagt:

if
(spalte1= Null)
then (blablabla)

elseif

usw.

aber wie müsste ich das dann schreiben, das der if befehl kapiert das nichts drinnen ist, auch mit dem Befehl NOT NULL? oder anders. Bin für Jede Hilfe Dankbar ^^

  Profil   E-Mail   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Nö du lässt einfach auf alle Spalten die Folgende Abfrage laufen:

UPDATE tabelle SET spalte = 'foo' WHERE spalte = NULL

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

Vash
Pixelschubser


Beiträge: 17


achso, dann trägt er erst dort ein wo nichts drinnen ist oder?

  Profil   E-Mail   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Dann trägt er dort ein, wo NULL gesetzt ist. Ansonsten, wenn gar nichts drinsteht halt statt WHERE spalte = NULL -> WHERE spalte = ''

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

Vash
Pixelschubser


Beiträge: 17


Dan ke

  Profil   E-Mail   Editieren   Zitieren
Seite 1 | 2  

Antworten
Nach oben