In SQL suchen und einen neuen Wert eintragen

julia29

Erfahrenes Mitglied
Hallo,

ich möchte eine SQL-Tabelle mit Adress-Einträgen durchsuchen aber nur die wo im Feld "Art" (Anschluß-Art) noch leer ist.
Zu einer Adress-ID_Group können z.B. 2-10 Kommunikations-Anschlüsse eingetragen sein, z.B. 3x für einen Telefon-Anschluß, 1 x für Fax und 1x für Mobil. Die Anschlüsse sind im Feld "Art" dokumentiert (z.B. "Fax", "Mobil"), nur bei Telefon ist "Art" leer.
Ich möchte nun auch diese Telefonanschlüsse dokumentieren mit "Tel.1", "Tel.2", "Tel.3" oder wenn es einfacher ist nur als Zähler mit "1", "2", "3" usw.

Habe mal etwas in einer php versucht weiss aber nicht so recht weiter.
Ich brauche ja noch einen Zähler und die schleifenweise Suche.

PHP:
<?php
// in adressen suchen und einen neuen Zähler-Wert in Art eintragen
error_reporting(E_ALL);

    define('MYSQL_HOST',     'localhost');
    define('MYSQL_USER',     'xxxxxxx');
    define('MYSQL_PASS',     'xxxxxxx');
    define('MYSQL_DATABASE', 'xxxxxxxx');

    if(!@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS)) {
                die("Es konnte keine Verbindung aufgebaut werden"); // Script beenden
            }
                echo "Verbindung wurde aufgebaut<br /><br />\n";
                if(!mysql_select_db(MYSQL_DATABASE)) {
                die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
            }
                echo "Die Datenbank wurde ausgew&auml;hlt<br /><br />";
/*

	    1. gehe in Tabelle adressen, suche 1. ID-Group und Art = ""
	    2. trage dort in Art einen Zähler mit "1" ein
		3. gehe zum nächsten DS dieser ID-Group, erhöhe den Zähler +1 und in Art eintragen
		4. solange bis zu dieser ID-Group kein DS mehr gefunden wird
		5. Suche dann die nächste ID-Group wo Art = ""
		6. solange bis alle DS in adressen aktualisiert wurden
*/

// UPDATE `adressen` SET `art`="1" WHERE `art` NOT LIKE "%_%"
// Art soll ersetzt werden
$sql = 'UPDATE `adressen` 
		SET `adressen`.`art`= 1 
		WHERE `adressen`.`art`= NOT LIKE "%_%';

$result = mysql_query($sql) OR die(mysql_error());

if($result == true)
   {
   echo "Der Eintrag im Feld 'art' war erfolgreich";
   }
   else
   {
   echo "Fehler beim Speichern";
   }
?>

Wie müßte ich meine Abfrage und das Eintragen richtig schreiben?
Vielen Dank für die Hilfe.
mfg
Julia
 
Also, wenn ich das richtig verstanden hab, dann ungefähr so:
PHP:
mysql_query("UPDATE adressen SET art = 1 WHERE  art =''");

Hab ich das richtig verstanden? :confused:

LG emptynick
 
Nein, das würde so noch nichts werden da dann überall wo nichts drin steht eine "1" eingetragen würde.

Nach dem Beispiel unten müßte
unter ID "1234" im 1. Datensatz in Feld "Art" eine "1"
unter ID "1234" im 2. Datensatz in Feld "Art" eine "2"
unter ID "1234" im 3. Datensatz in Feld "Art" eine "3"

unter ID "4567" im 1. Datensatz in Feld "Art" eine "1"
unter ID "4567" im 2. Datensatz in Feld "Art" eine "2"
usw.

Nach meinem Verständnis wird jetzt erstmal ein Zähler benötigt, der die Anschlüsse je ID autom. um +1 hochzählt.
Wie muss ich das machen?
 

Anhänge

  • TelArt.jpg
    TelArt.jpg
    51,6 KB · Aufrufe: 33
Zurück