Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di renzoz
    Registrato dal
    May 2001
    Messaggi
    305

    [PHP] str_replace e spazi

    Ciao, sto componendo una query di aggiornamento con un ciclo e prima della clausola WHERE devo eliminare la virgola, ho pensato di fare cosi:

    $str_query_finale = str_replace(", WHERE", " WHERE", $str_query);
    ma non funziona perchè probabilmente questa funzione non interpreta gli spazi;
    mi rendo conto che ereg_replace() sarebbe proprio il mio caso ma non riesco ad impostarla correttamente.
    Qualcuno può gentilmente darmi una mano? Grazie

  2. #2
    Perchè non scrivi direttamente il codice SENZA la virgola di troppo?

  3. #3
    Utente di HTML.it L'avatar di renzoz
    Registrato dal
    May 2001
    Messaggi
    305
    Perchè è una query potenzialmente molto lunga e variabile fatta su una tabella di quasi cento colonne e piuttosto che fare un controllo sull'ultimo campo aggiornato pensavo fosse più semplice una operazione come questa, che ne dici?
    Grazie x la risposta comunque

  4. #4
    Personalmente preferisco fare le cose bene subito piuttosto che doverle sistemare più in la.

    Ad ogni modo, str_replace gestisce perfettamente gli spazi.

    Codice PHP:
    <?php 
    $str_query 
    'SELECT * FROM table, WHERE 1 = 1';
    $str_query str_replace(', WHERE'' WHERE'$str_query); 
    print(
    $str_query);
    ?>

  5. #5
    Utente di HTML.it L'avatar di renzoz
    Registrato dal
    May 2001
    Messaggi
    305
    Ti ringrazio filippo, concordo con la tua filosofia che è impeccabile e non fa una piega ma questo è un lavoro particolare che gira in una intranet, subisce spesso variazioni ed ho ritenuto opportuno agire in questo modo nel caso specifico.

    Purtroppo anche con str_replace non mi funzia

    $disegna_query = "UPDATE Commesse SET ".$str_valori." WHERE idc='".$_POST['destcomm']."'";
    $disegna_queryf = str_replace(', WHERE', ' WHERE', $disegna_query);
    print($disegna_queryf);

  6. #6
    Cosa significa non funziona? Che errore hai?
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  7. #7
    Originariamente inviato da renzoz
    Purtroppo anche con str_replace non mi funzia
    Che cosa restituisce questo codice?

    Codice PHP:
    var_dump($str_valori); 

  8. #8
    Utente di HTML.it L'avatar di renzoz
    Registrato dal
    May 2001
    Messaggi
    305
    Nessun errore, solamente non rimuove la virgola prima di WHERE

  9. #9
    Utente di HTML.it L'avatar di renzoz
    Registrato dal
    May 2001
    Messaggi
    305
    SONO UN ASINO!!!

    Gli spazi tra la virgola e WHERE erano 2 e io in str_replace ne mettevo uno solo... mi spiace, mi scuso per la rottura..

  10. #10
    Si ma il famoso ciclo perchè mette una virgola di troppo? Ti faccio un esempio:

    codice:
    while ($campi){
      if ($i)
        $sql .= ', ';
      $sql .= $nome_campo;
      $i = true;
    }
    In questo modo la virgola viene scritta prima di scrivere il campo, ma non viene scritta per il primo campo. E se per caso il codice non è perfetto e metti qualche spazio di troppo, il tutto funziona lo stesso.

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.