Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17
  1. #11
    Originariamente inviato da slyper
    ti posto la query del file che effettua la ricerca, nella fattispecie sul campo cassetto del DB
    codice:
    $query = "select * from tabella where Cassetto = '$EU'";
    ma che ce frega della select, non avevi problemi in update? e poi stampare intendo "una volta processata dal php", quindi un bel echo $query subito prima del mysql_query
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  2. #12
    fatti stampare la query significa
    echo $query;

    mi stranizza che trim() non abbia effetto perchè gli spazi provengono probabilmente dal form

    non ho capito questo modo di quotare i campi della query : " Cassetto = \"$fald\"," a occhio e croce non dovrebbe neanche funzionare a dare errore
    semplicità ... al sol nominarla sembra svanire

  3. #13
    Utente di HTML.it L'avatar di slyper
    Registrato dal
    Jul 2011
    Messaggi
    61
    ok, stampando la query ossia echo $query; se è questo cio' che volete vedere ottengo:
    select * from tabella where id=1
    comunque i campi quotati funzionano perfettamente e stranizza anche me che trim() non abbia effetto.
    grazie comunque per la collaborazione.

  4. #14
    Utente di HTML.it L'avatar di slyper
    Registrato dal
    Jul 2011
    Messaggi
    61
    Finalmente problema risolto: esportando i dati del DB in formato csv ho appurato che i dati ad ogni modifica si sporcavano con Â, Â Â , Â Â Â etc. pertanto ho provveduto utilizzando la funzione ereg_replace() che sostituisce i caratteri non compresi nel range che si indica cioe', per ottenere una stringa composta soltanto da numeri e caratteri dell'alfabeto maiuscoli o minuscoli, scriveremo:

    $stringa = ereg_replace("[^A-Za-z0-9 ]", "", $stringa ); ossia i caratteri al di fuori del range A-Z, a-z e 0-9 sono sostituiti con un carattere vuoto "", quindi cancellati es. una stringa "auto  Â" viene trasformata in "auto".
    pertanto il codice sarà:
    codice:
    $scaf      =   trim($_REQUEST['Scaffale']); 
    $fald        =      $_REQUEST['Cassetto']; 
    $faldnew   =      ereg_replace("[^A-Za-z0-9 ]", "", $fald);
    e
    codice:
    $query = "update tabella set 
    Scaffale=\"$scaf\"," 
    . " Cassetto = \"$faldnew\","
    grazie per la cortese attenzione e.... alla prossima

  5. #15
    vabbeh

    intanto non si usa più ereg ma preg


    poi non ti chiedi perchè succeda questo? mica è una cosa normale...
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #16
    Utente di HTML.it L'avatar di slyper
    Registrato dal
    Jul 2011
    Messaggi
    61
    si lo so che ereg attualmente è "deprecated" ma la versione di PHP attualmente in uso è inferiore alla 5.3.0.
    Ti dò pienamente ragione che ciò che succede è strano d'altronde se non lo fosse non avrei chiesto il vostro aiuto e di ciò vi ringrazio. Comunque lascio aperto lo studio di questo problema è resto in attesa di una eventuale soluzione anche se ho qualche idea in merito ma è da appurare .
    Grazie a tutti e buon lavoro

  7. #17
    Utente di HTML.it L'avatar di slyper
    Registrato dal
    Jul 2011
    Messaggi
    61
    Per finire l'argomento che avevamo iniziato relativo ai vari caratteri strani che venivano inseriti nei vari campi del DB all'orquando ci accingevamo a modificare un dato ho effettuato, nuovamente, le seguenti operazioni:
    ho esportato tutti i dati del DB in un file in formato CSV li ho editato tramite il famoso blocco note e lo salvato nuovamente in formato csv con codifica UTF-8 infine ho nuovamente editato il file ripulendolo dai caratteri strani
    tra cui 'Â, Â Â , Â Â Â' accentate. Fatto ciò ho ricaricato i dati nel DB utilizzando il set di caratteri utf8.
    Infine tramite la seguente funzione:
    mysql_query('SET NAMES utf8'); da porre prima della query, forzo il set dei caratteri nel formato utf-8 ma non basta in quanto devo ricorrere alla ereg_replace ottimizzzandola come segue:
    codice:
    mysql_query('SET NAMES utf8');// inserita prima della query
    $query = "select * from ufficiali where id=$id";
    $dbResult = mysql_query($query, $db);
    $AffectedRows = mysql_affected_rows($db);
    if($AffectedRows==0)
    {
    print("<h3>non esistono record con i criteri selezionati</h3>");
    }
    else
    {
    mysql_data_seek($dbResult, 0);
    $row=mysql_fetch_row($dbResult);
    print("<table>");
    print("<form method=\"post\"
    action=\"{$_SERVER['PHP_SELF']}\">");
    for($i=0;$i<=20;$i++)
    {
    $myfield = mysql_fetch_field($dbResult,$i);
    print("<tr><td>$myfield->name</td>");
    if($i==4 || $i==18)
    {
    print"<td><input type=\"text\" value=\""
    . conv_date("$row[$i]") . "\" name=\"" . $myfield->name ."\"
    size=\"10\" maxlength=\"10\" > Inrerire nel formato GG/MM/AAAA</td></tr>";
    }
    else {
    print("<td><input type=\"text\" value=\""
    . ereg_replace("[^A-Za-z0-9'?°.' '!'/'£'%'$='&'é'('èì')'+*ò@à{ù};,:-_]", "", "$row[$i]
    ")  . "\" name=\"" . $myfield->name . "\"
    size=\"150\" maxlength=\"150\"></td></tr>");
    }}// ereg_replace rivisitata
    in questo modo mantengo la codifica utf8 e faccio riconoscere a PHP solo i caratteri che mi interessano assicurando la piena funzionalità e affidabilità dei dati
    coloro i quali vogliono approfondire l'argomento rimando a questo link
    http://www.icosaedro.it/articoli/php-i18n.
    http://www.icosaedro.it/articoli/php-i18n.html
    Salve a tutti

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.