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

    UPDATE - Ho un problema col CASE SENSITIVE

    Premetto che il mio collation è settato correttamente come _ci

    In pratica, mi succede questo.
    Attraverso un array riscrivo (facendo alcune somme e calcoli) una tabella di punteggi utenti .... solo che quando faccio il controllo del nick e il conseguente update se il nick già esiste, "bukowski" e "Bukowski" per lui sono 2 nick diversi invece che uguali.

    Questo penso sia il pezzo incriminato

    Codice PHP:
    if ($row['classgenerale'] == '1') { //se c'è la condizione che io dico

       
    if ($posizione <= 20) {
          if(
    in_array($row['nickpt'], $cg_giocatori )) {  // update
             
    $sql "UPDATE $tabella SET cg_score=cg_score+" $cg_pt["$posizione"];
             
    $sql .= " WHERE cg_nickpt = '" $row['nickpt'] . "'";
             
    mysql_query($sql)  or die(WQ(__FILE__,__LINE__$sql));

          } else {  
    // insert
            
    $sql "INSERT INTO mp_classgenerale (cg_nickpt, cg_score) VALUES ('".
    $row['nickpt'] ."', '"$cg_pt["$posizione"] ."')";
            
    mysql_query($sql)  or die(WQ(__FILE__,__LINE__$sql)); 
    Cosa mi consigliate di fare?

    Grazie mille
    Perchè uso Maxthon? | Mi piace questa chat

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Scusa ma il controllo lo fai in php? :master:

  3. #3
    Se portassi minuscoli questi 2 ??

    Codice PHP:
    if(in_array($row['nickpt'], $cg_giocatori )) {  // update 
    Perchè uso Maxthon? | Mi piace questa chat

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Non hai risposto, ma deduco che la risposta fosse sì.
    Ora spiegami, come pensi che php possa essere influenzato dalla collation del db mysql?

    Se vuoi usare la collation devi fare i test in SQL. Per php esistono altre funzioni per rendere ininfluenti le differenze fra maiuscole e minuscole

  5. #5
    Originariamente inviato da luca200
    Non hai risposto, ma deduco che la risposta fosse sì.
    Ora spiegami, come pensi che php possa essere influenzato dalla collation del db mysql?

    Se vuoi usare la collation devi fare i test in SQL. Per php esistono altre funzioni per rendere ininfluenti le differenze fra maiuscole e minuscole
    si hai ragione ... perchè inizialmente pensavo fosse un problema di mysql nella select e nell'update ... invece ora penso sia un problema di php (anche se non lo capisco)

    ho provato a portare il nick tutto minuscolo ma niente, mi continua a fare l'update di "Bukowski" e "bukowski" come 2 nick distinti e separati

    Codice PHP:
       if ($posizione <= 20) {
          if(
    in_array(strtolower($row['nickpt']), strtolower($cg_giocatori) )) {  // update 
    Perchè uso Maxthon? | Mi piace questa chat

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    prova così

    Codice PHP:
    function minuscoli($elm) {
    return 
    strtolower($elm);
    }

    if (
    $posizione <= 20) {
          if(
    in_array(strtolower($row['nickpt']), array_map('minuscoli',$cg_giocatori))) { 

  7. #7
    Non va, nel senso che lo script non procede oltre quella linea
    Perchè uso Maxthon? | Mi piace questa chat

  8. #8
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da nicola75ss
    Codice PHP:
    function minuscoli($elm) {
    return 
    strtolower($elm);
    }

    if (
    $posizione <= 20) {
          if(
    in_array(strtolower($row['nickpt']), array_map('minuscoli',$cg_giocatori))) { 
    non ha senso chiamarlo tutte le volte...

    @bukowski: se vuoi riuscirci devi fare due cose
    1) quando valorizzi l'array devi fare in modo che tutti i valori siano in minuscolo
    2) quando fai il confronto devi fare la stessa cosa sui valori singoli

    La seconda cosa la stai già facendo. La prima no. L'idea di nicola era in quel senso, ma invece di intervenire sull'array a valle è più conveniente farlo a monte, cioè quando lo crei. Sempre se è possibile ovviamente

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da luca200
    non ha senso chiamarlo tutte le volte...
    Vero.

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.