Ankündigung

Einklappen
Keine Ankündigung bisher.

foreach und eigene Funktion zum ersetzen von Zeichen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • foreach und eigene Funktion zum ersetzen von Zeichen

    Hallo Leute,
    bei einer Datenbankabfrage sollen die Daten mit einer eigenen Funktion für die Übernahme in ein anderes Datenbanksystem "aufbereitet" werden:

    \n wird gegen die Zeichenfolge >cr< ersetzt
    Anfühungszeichen bekommen einen Backslash vorangestellt.

    PHP-Code:
        foreach($db->query($query) as $row) {
            echo 
    "customers_firstname=\"".str_replace$find$replace$row[0])."\"\n";
            echo 
    "customers_lastname=\"".str_replace$find$replace$row[1])."\"\n";
            echo 
    "customers_company=\"".str_replace$find$replace$row[2])."\"\n";

            } 
    Die Aufbereitung der Daten funktioniert. Was mich stört ist. dass der Aufruf der eigenen Funktion für jede Zeile einzeln angegeben werden muss. Geht da auch anders?

    Ich habe folgendes schon ausprobiert:

    PHP-Code:
        foreach(str_replace$find$replace$db->query($query) as $row)) { 
    PHP-Code:
        str_replace$find$replace, (foreach($db->query($query) as $row) { 
    Hier die Funktion str_replace, die ausgeführt werden soll
    PHP-Code:
    $find = array("\n","\"");
    $replace = array(">cr<","\\\""); 
    Ich bekomme es nicht hin, dass die Funktion nur 1x aufgerufen wird. Geht das überhaupt?


  • #2
    Schau dir mal array_map() an.

    Kommentar


    • #3
      Hi,

      wenn ich dich richtig verstehe, willst du bestimmte Stringteil ersetzen.
      Wenn du mit SQL sowieso auch arbeitest...warum machst du es dann nicht damit?
      Du suchst vermutlich REPLACE (Bsp.: http://webdesign.tepelmann.com/MySQL..._ersetzen.html)

      mfg Wolf29
      while (!asleep()) sheep++;

      Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

      Kommentar


      • #4
        REPLACE:
        Bringt mich wohl nicht weiter, ich will die Daten nicht IN der SQL Datenbank ändern, sondern nur die Ausgabe, die in eine andere Datenbank importiert wird.


        array_map()
        Sieht ganz vielversprechend aus. Allerdings weiß ich nicht, wo genau ich array_map in der Zeile

        foreach($db->query($query) as $row) {

        einbauen soll.

        Kommentar


        • #5
          mich dünkt dich bringt replace weiter.
          http://sqlfiddle.com/#!2/5111b/3
          und hier noch mal den link zur docu:
          http://dev.mysql.com/doc/refman/5.0/...nction_replace

          Kommentar


          • #6
            Bringt mich wohl nicht weiter, ich will die Daten nicht IN der SQL Datenbank ändern, sondern nur die Ausgabe, die in eine andere Datenbank importiert wird.
            ...bisschen irreführend die Beschreibung, da du Sie ja in(!) der Datenbank änderst, um(!) sie in eine andere Datenbank zu überführen.
            Wenn du die Daten in eine andere Datenbank importieren möchtest und vorher einiges anpassen möchtest (wie in deiner Beschreibung), dann wäre am schnellsten, das direkt mittels SQL zu machen. Kannst du dann ja exportieren (CSV, XML, SQL usw.) und in die neue DB einfach importieren

            array_map()
            Sieht ganz vielversprechend aus. Allerdings weiß ich nicht, wo genau ich array_map in der Zeile
            Doku dazu angeschaut?

            mfg Wolf29
            while (!asleep()) sheep++;

            Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

            Kommentar

            Lädt...
            X