Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [PHP] query mysql escludendo parte del testo

    Salve,
    ho ereditato questo codice per una query che sulla vecchia board funzionava

    Codice PHP:
    <?php

    $field 
    "SELECT post_text FROM phpbb_posts WHERE post_id = '23'";
    $query mysql_query($field);
    while(
    $row mysql_fetch_object($query)) {
    $post $row->post;
    }
    mysql_free_result($query);

    $content "<MARQUEE behavior= 'scroll' direction= 'up' height= '200' scrollamount= '2' scrolldelay= '5' onmouseover='this.stop()' onmouseout='this.start()'><p align='center'>$post</p></MARQUEE>";

    ?>
    Questo perchè il testo del post era completamente "in chiaro", bbcode compresi

    Nella nuova board la query funziona (cambiando i nomi delle tabelle ovviamente), però nei bbcode essa ci aggiunge un campo che è in un' altra tabella preceduto da :
    Quindi il bbcode non viene riconosciuto se non è processato dal forum stesso.
    Faccio l'esempio di come viene "trasformato" da phpbb3 il classico center
    Codice PHP:
    [center
    [
    center:3nngkkqi
    Questo 3nngkkqi è sempre lo stesso in tutti i bbcode nel post che voglio estrarre, e si trova nella tabella bbcode_uid, ma i : no, quelli nella tabella bbcode_uid non ci sono.

    Quindi la domanda è: come dovrei modificare la query nella riga $field in modo che vengano esclusi tutti questi caratteri che sono scritti nella tabella bbcode_uid (due punti esclusi) in modo che il portale possa interpretarli correttamente?
    Ho provato il comando DISTINCT ma con scarso successo.

    Grazie per il supporto
    WingHorten

  2. #2
    IMHO ti conviene manipolare $post in PHP oppure, ancora meglio, eseguire una query di update ed eliminare :3nngkkqi.

    Eseguire il replace all'interno della query appesantisce inutilmente il database.

  3. #3
    Originariamente inviato da filippo.toso
    IMHO ti conviene manipolare $post in PHP oppure, ancora meglio, eseguire una query di update ed eliminare :3nngkkqi.

    Eseguire il replace all'interno della query appesantisce inutilmente il database.
    Grazie per la risposta Filippo

    Per quanto riguarda la query, trattandosi di un solo post, non credo che appesantirebbe molto il db, però il suggerimento è giusto.

    Potrei eliminare solo quel testo, che forse è la cosa più semplice, anche perchè ho controllato che anche modificando il post la stringa in bbcode_uid rimane la stessa.

    Solo che non ho idea della sintassi da aggiungere alla definzione di $post per eliminare quel testo e solo quello, cioè in modo che non tolga anche altre parti del post, definendolo cioè in modo preciso: sapresti dirmi come devo scriverlo?

    Grazie ancora

    Ciao
    WingHorten

  4. #4

    dove lo metto?

    Salve,
    ho pensato che str_replace potesse essere il comando più semplice per quel che voglio ottenere, ma, sperando che la sintassi sia giusta, non so dove mettere quel $del perchè funzioni ed elimini quella stringa nell' output

    Codice PHP:
    <?php
    $field 
    "SELECT post_text FROM phpbb_posts WHERE post_id = '23'";
    $query mysql_query($field);
    $del str_replace(":2jdu0t3k"""post_text);
    while(
    $row mysql_fetch_object($query;$del)) {
    $post $row->post_text;
    }
    mysql_free_result($query);

    $content "<MARQUEE behavior= 'scroll' direction= 'up' height= '200' scrollamount= '2' scrolldelay= '5' onmouseover='this.stop()' onmouseout='this.start()'>

    $post</p></MARQUEE>";

    ?>
    Grazie per il supporto
    WingHorten

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.