Oldal: 1 / 2 12 UtolsóUtolsó
Eredmény: 1 - 10 (12) összesen

Téma: MySQL UPDATE segítség

  1. #1
    Bölcs dolcsi logója
    Csatlakozott
    09-05-15
    Hozzászólás
    1.808
    Begyűjtött 358 köszönetet
    227 hozzászólásával

    Alapbeállítás MySQL UPDATE segítség

    Sziasztok!

    Tapasztaltabbak segítségét szeretném kérni az alábbi probléma megoldására.

    Wordpress bejegyzéseket szeretném módosítani a wp_posts táblámban a következő képpen.

    Az összes ilyen részt, ahol a h2 címsor előtt egy kép van, ott szeretném megcserélni ezek sorrendjét:

    <img src="kep.jpg" title="Kép" alt="Kép" width="696" height="466" class="aligncenter size-medium_large wp-image-841" /><h2>Címsor</h2>

    Tehát így szeretném:

    <h2>Címsor</h2>
    <img src="kep.jpg" title="Kép" alt="Kép" width="696" height="466" class="aligncenter size-medium_large wp-image-841" />



  2. #2
    Bölcs dolcsi logója
    Csatlakozott
    09-05-15
    Hozzászólás
    1.808
    Begyűjtött 358 köszönetet
    227 hozzászólásával

    Alapbeállítás re: MySQL UPDATE segítség

    Senki?

    Nem probléma, ha ez már nem fér bele a szívesség kategóriába, fizetek is a segítségért, ha csak ennyin múlik.



  3. #3
    ɯopǝǝɹɟ Freedom logója
    Csatlakozott
    09-11-02
    Hozzászólás
    5.974
    Begyűjtött 2.174 köszönetet
    1.396 hozzászólásával

    Alapbeállítás re: MySQL UPDATE segítség

    Van az a plugin (ha kell, előkeresem) amelyik az adatbázisban "ezt a szüveget" lecseréli "erre a szövegre".
    A két helyre beírod, amit fentebb említettél, és az kicseréli neked az adatbázisban.

    Ez nem jó?



  4. Az alábbi felhasználók hálásak a válaszért:

    dolcsi (2018-06-29)

  5. #4
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.744
    Begyűjtött 1.428 köszönetet
    892 hozzászólásával

    Alapbeállítás re: MySQL UPDATE segítség

    Idézet dolcsi eredeti hozzászólása Hozzászólás megtekintése
    Az összes ilyen részt, ahol a h2 címsor előtt egy kép van, ott szeretném megcserélni ezek sorrendjét:
    Idézet Freedom eredeti hozzászólása Hozzászólás megtekintése
    Van az a plugin (ha kell, előkeresem) amelyik az adatbázisban "ezt a szüveget" lecseréli "erre a szövegre".
    A két helyre beírod, amit fentebb említettél, és az kicseréli neked az adatbázisban.

    Ez nem jó?
    Ez ennel picit bonyolultabb es SQL-ben nem is feltetlenul megoldhato(legalabbis nem megbizhatoan)



  6. Az alábbi felhasználók hálásak a válaszért:

    dolcsi (2018-06-29)

  7. #5
    ɯopǝǝɹɟ Freedom logója
    Csatlakozott
    09-11-02
    Hozzászólás
    5.974
    Begyűjtött 2.174 köszönetet
    1.396 hozzászólásával

    Alapbeállítás re: MySQL UPDATE segítség

    Idézet Geri eredeti hozzászólása Hozzászólás megtekintése
    Ez ennel picit bonyolultabb es SQL-ben nem is feltetlenul megoldhato(legalabbis nem megbizhatoan)
    Igazad van. Az én megoldásom csak a bejegyzés tartalmára vonatkozik.



  8. #6
    Törzsvendég
    Csatlakozott
    14-08-26
    Hozzászólás
    167
    Begyűjtött 97 köszönetet
    66 hozzászólásával

    Alapbeállítás re: MySQL UPDATE segítség

    Ha csak ennyi lenne minden sorban, akkor a POSITION(), SUBSTRING(), REPLACE(), CONCAT() függvényekkel meg lehetne oldani.

    Vegyük ezt példának:

    Első lépés:
    <img src="kep.jpg" title="Kép" alt="Kép" width="696" height="466" class="aligncenter size-medium_large wp-image-841" /><h2>Címsor</h2>

    Keressük meg a kijelölt részeket. Erre a POSITION() függvény használható.
    - Ha a "<h2>" -re keresünk, akkor megkapjuk a nyitó "<"-jel pozícióját.
    - Hasonló módon keressük meg a "</h2>"-t, itt is a "<"-pozíciót kapjuk, ehhez adunk +4 -et, akkor megkapjuk a ">"-pozíciót

    Második lépés:

    Másoljuk a megtalált részt a sor elejére.
    Erre jó a SUBSTRING() és a CONCAT() függvények.
    Össze kell fűzni őket logikailag így: kivágott rész + (eredeti - kivágott rész)

    A "- kivágott részhez" pedig a REPLACE() függvényt kell használni, gyakorlatilag "" üres stringgel felülírod a kivágott részt az eredeti helyén.

    Ez így megoldható, viszont nem tudjuk pl, hogy van-e még más szöveg is ezekben a rekordokban (feltehetőleg igen), így azokat is hasonló módon elé és mögé kéne másolni. Itt az a nehéz, hogyha nem csak egy <img> és <h2> -tag van, akkor hogyan találod meg azt, amelyiket módosítani kell.

    Erre célszerűbb lenne egy tárolt ejlárást vagy valamilyen scriptet írni, ami a rekodokon végigmenve kikeresi az összes <img> tag-et rekordonként és megnézi, hogy azt követőleg <h2> következik-e. Ha igen, akkor az előbb leírt módon felcseréli a sorrenjüket. Ez viszont már nem egy SQL update.

    Egyébként még az talán működhet, hogyha a kérdéses rész mindig mondjuk a bejegyzés (rekord) elején van (vagy meghatározható start és end pozíció között). Akkor a SUBSTRING() -el kivágod az első 100 karaktert mondjuk, amibe biztosan csak 1db <img> és az azt követő <h2> esik, és arra alkalmazod a fenn leírt műveletet. Úgy meg lehetne csinálni egy update-el.


    Utoljára módosítva: MrWolf által : 2018-06-29 15:19

  9. Az alábbi felhasználók hálásak a válaszért:

    dolcsi (2018-06-29)

  10. #7
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.744
    Begyűjtött 1.428 köszönetet
    892 hozzászólásával

    Alapbeállítás re: MySQL UPDATE segítség

    Es mi van ha az egyik h2-nek van class, vagy barmilyen mas attributuma? En inkabb egy scriptet irnek, ami beolvassa a html-t egy DOM-ba, es ugy keresnek meg minden h2 tag-et amit kovet egy img tag es megcserelnem oket.


    If debugging is the process of removing software bugs, then programming must be the process of putting them in.
    Ruby blog
    Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime.
    Respect all, fear none

  11. #8
    Törzsvendég
    Csatlakozott
    14-08-26
    Hozzászólás
    167
    Begyűjtött 97 köszönetet
    66 hozzászólásával

    Alapbeállítás re: MySQL UPDATE segítség

    Idézet Geri eredeti hozzászólása Hozzászólás megtekintése
    Es mi van ha az egyik h2-nek van class, vagy barmilyen mas attributuma? En inkabb egy scriptet irnek, ami beolvassa a html-t egy DOM-ba, es ugy keresnek meg minden h2 tag-et amit kovet egy img tag es megcserelnem oket.
    <h2 class="akarmi">Címsor</h2>

    Szerintem ez nem zavarná, mert a POSITION a "<h2" -re keresve így is jól adná vissza a kezdő "<" jelet.

    Egyetértek egyébként, ebben így sok a buktató, a külön script a biztos megoldás.
    Csak az agytorna kedvéért játszottam végig, hogyan lehetne ezt egy utasítással megcsinálni.



  12. The Following 2 Users Say Thank You to MrWolf For This Useful Post:

    dolcsi (2018-06-29), Geri (2018-06-29)

  13. #9
    Mentor Sanyi49 logója
    Csatlakozott
    10-03-26
    Hely
    Hajdú-Bihar
    Hozzászólás
    372
    Begyűjtött 23 köszönetet
    22 hozzászólásával

    Alapbeállítás re: MySQL UPDATE segítség

    Mielőtt elkezdesz rá scriptet írni. Hány ilyen belyegyzésről lenne szó?



  14. #10
    Bölcs dolcsi logója
    Csatlakozott
    09-05-15
    Hozzászólás
    1.808
    Begyűjtött 358 köszönetet
    227 hozzászólásával

    Alapbeállítás re: MySQL UPDATE segítség

    Idézet Freedom eredeti hozzászólása Hozzászólás megtekintése
    Van az a plugin (ha kell, előkeresem) amelyik az adatbázisban "ezt a szüveget" lecseréli "erre a szövegre".
    A két helyre beírod, amit fentebb említettél, és az kicseréli neked az adatbázisban.

    Ez nem jó?
    Igen, ismerem, de most ez kevés ehhez. Azért köszi!

    Idézet Geri eredeti hozzászólása Hozzászólás megtekintése
    Ez ennel picit bonyolultabb es SQL-ben nem is feltetlenul megoldhato(legalabbis nem megbizhatoan)
    Valahol sejtettem, hogy így lesz.

    Idézet Sanyi49 eredeti hozzászólása Hozzászólás megtekintése
    Mielőtt elkezdesz rá scriptet írni. Hány ilyen belyegyzésről lenne szó?
    1315 bejegyzés. Nincs kedvem kézzel felcserélgetni.



Oldal: 1 / 2 12 UtolsóUtolsó

Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •