Visualizzazione dei risultati da 1 a 10 su 14

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    18
    Quote Originariamente inviata da .Kurt Visualizza il messaggio
    L'avevo capito, ma quelli che ti forniamo qui sono sempre dei codici di esempio: li devi adattare alle tue esigenze. Se vuoi qualcosa di più specifico, questo è il lavoro che dovresti fare:


    codice:
    $text = "I miei libri preferiti sono:\n[libro=1] e [libro=201]";
    
    if (preg_match_all('/\[libro=([0-9]+)\]/', $text, $ids)) {
        $ids = array_unique(array_filter($ids[1], function($id) {
            return intval($id);
        }));
    
        // qui la query, del tipo:
        // $query = 'SELECT nome, autore, copertina FROM books WHERE id IN('.implode(', ', $ids).')';
        // in $result recupero tutti i risultati della query
    
        $text = preg_replace_callback('/\[libro=([0-9]+)\]/', function($book) use ($result) {
            $bookId = $book[1];
    
            if (...) { // controllo se esiste in $result un libro che ha l'id $bookId.
                return "..."; // restituisco l'output modificato, utilizzando $result 
            }
    
            // il libro non esiste, che faccio? lancio una eccezione? o lo gestisco silenziosamente?
        }, $text);
    }
    
    echo $text;
    grazie mille. Lo provo subito, ma credo sia proprio quello che cercavo. La mia difficoltà era nel costruire la query in base all'indice contenuto nel "segnaposto".

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    18
    Quote Originariamente inviata da boberto Visualizza il messaggio
    grazie mille. Lo provo subito, ma credo sia proprio quello che cercavo. La mia difficoltà era nel costruire la query in base all'indice contenuto nel "segnaposto".
    purtroppo mi dà un errore sulla riga.

    Codice PHP:
    if (...) { // controllo se esiste in $result un libro che ha l'id $bookId. 

  3. #3
    Quote Originariamente inviata da boberto Visualizza il messaggio
    purtroppo mi dà un errore sulla riga.

    Codice PHP:
    if (...) { // controllo se esiste in $result un libro che ha l'id $bookId. 

    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    18
    Quote Originariamente inviata da satifal Visualizza il messaggio

    ops, hai ragione.
    controllo il numero dei record...

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    18
    codice:
    if (preg_match_all('/\[libro=([0-9]+)\]/', $testo, $ids)) {
        $ids = array_unique(array_filter($ids[1], function($id) {
            return intval($id);
        }));
    $query = 'SELECT id, titolo FROM libri WHERE id IN('.implode(', ', $ids).')';
    $rs = mysql_query($query) or die(mysql_error());
    $result=mysql_fetch_array($rs);
    $titolo = $result["titolo"];
    
    
    $testo = preg_replace_callback('/\[libro=([0-9]+)\]/', function($book) use ($result) {
     $bookId = $book[1];
    //if ($mysql_num_rows) { // controllo se esiste in $result un libro che ha l'id $bookId.
                return "questo $titolo"; // restituisco l'output modificato, utilizzando $result 
        //    }
            // il libro non esiste, che faccio? lancio una eccezione? o lo gestisco silenziosamente?
        }, $testo);
    }
    
    
    echo $testo;
    // fine richiami

    non riesco a recuperare il titolo del libro. O meglio non riesco a includerlo nel return.
    Help
    Ultima modifica di boberto; 17-12-2014 a 13:48

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 © 2026 vBulletin Solutions, Inc. All rights reserved.