Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi einzelnes Wort in SQL ändern (https://www.delphipraxis.net/86132-einzelnes-wort-sql-aendern.html)

XXcD 10. Feb 2007 16:31

Re: einzelnes Wort in SQL ändern
 
Ich will über php ein onclick verfahren machen wenn man ein banner auf meiner website anklickt soll eine php dateiausgeführt werden und zwar der script mit dem sql. Und in dem script soll in einer spalte das 43. wort geändert werden.

jokerfacehro 10. Feb 2007 16:33

Re: einzelnes Wort in SQL ändern
 
du könntest das jeweilige feld einfach auslesen,
das ganze mit
Delphi-Quellcode:
$vorundnachname=explode(" ",$nameausderdatenbank);
$neuername=$vorundnachname[0].' '.$neuernachname;
mysql_query("UPDATE 'db' SET name='$neuername' WHERE name='$nameausderdatenbank'");
auseinander flücken und den ersten teil des arrays mit deinem neuen string wieder zusammensetzen
und dann das ganze in die db eintragen ;)

omata 10. Feb 2007 17:59

Re: einzelnes Wort in SQL ändern
 
So ein neuer Versuch.

In SQL bzw. einer Function auf dem DB-Server könnte das so aussehen...
SQL-Code:
CREATE FUNCTION func_myreplace (Source VARCHAR(1000),
                                NewWord VARCHAR(20),
                                WordIndex INT)
  RETURNS VARCHAR(1000)
BEGIN
  DECLARE i INT DEFAULT 0;
  DECLARE p INT DEFAULT 0;
  DECLARE g INT DEFAULT 0;
  DECLARE xSource VARCHAR(1000) DEFAULT '';
  IF WordIndex = 0 THEN
    SET xSource = CONCAT(NewWord, ' ', Source);
  END IF;
  WHILE p <= LENGTH(Source) AND WordIndex > 0 DO
    SET p = INSTR(Source, ' ');
    IF p = 0 THEN
      SET p = LENGTH(Source);
    END IF;
    WHILE (p < LENGTH(Source)) AND SUBSTRING(Source, p+1, 1) = ' ' DO
      SET p = p + 1;
    END WHILE;
    SET i = i + 1;
    IF WordIndex = i THEN
      SET xSource = CONCAT(xSource, NewWord);
      SET g = 1;
    ELSE
      SET xSource = CONCAT(xSource, SUBSTRING(Source, 1, p));
      SET p = p + 1;
    END IF;
    SET Source = SUBSTRING(Source, p, LENGTH(Source));
  END WHILE;
  IF WordIndex > 0 THEN
    IF WordIndex <> i+1 THEN
      SET xSource = CONCAT(xSource, Source);
    END IF;
    IF g = 0 THEN
      SET xSource = CONCAT(xSource, ' ', newWord);
    END IF;
  END IF;
  RETURN xSource;
END
Und der Aufruf...
SQL-Code:
UPDATE tabelle
SET spalte = func_myreplace(spalte, 'Neues Wort', 43)
WHERE ...
WordIndex = 0: Neues Wort wird vorne angehängt
WordIndex > Anzahl Wörter: Neues Wort wird hinten angehängt
0 < WordIndex <= Anzahl Wörter: Das n'te Wort wird durch das neue Wort ersetzt

Gruss
Thorsten

XXcD 11. Feb 2007 21:49

Re: einzelnes Wort in SQL ändern
 
Perfekt!!! Kann ich die funktion denn auch in PHP einbauen???

mkinzler 11. Feb 2007 22:08

Re: einzelnes Wort in SQL ändern
 
Zitat:

Perfekt!!! Kann ich die funktion denn auch in PHP einbauen???
Ja ist ja ne SP


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz