parola più lunga

ciao a tutti,

devo recuperare da una serie di parole quella che è più lunga.

Ho provato ad inizializzare una variabile per tenere traccia della lunghezza della parola ma non ci sono riuscita:

 $max=0;

  $localita_ok='';  

while ($data=mysql_fetch_array($result))

{

    $nome=$data['nome'];

    $id=$data['id'];

$localita = strtolower($nome);

    

$localita2 = " ".$localita." " ; 

  

$pos = strpos2($newstring, $localita2, 1);

if ($pos !='')

{

   

        $lunghezza=strlen($localita);

  

  if ($lunghezza > $max)

  {

     $max = $lunghezza;

     $localita_ok=$localita;

   } 

   else $localita_ok=''; 

  

}

else echo " ";

}

$max = $lunghezza;

questo assegnamento non modifica il valore di $max che inzialmente è 0 .....

mi sapreste indicare se ho dimenticato qualcosa?

 :-\

inviato 9 anni fa
stellina
X 0 X

io direi che potresti fare tutto seolo con una query tipo questa:

SELECT max(CHAR_LENGTH(nome)), nome, id FROM NOMETABELLA group by nome order by CHAR_LENGTH(nome) DESC limit 1

Questo restituisce un solo record, che ha la lunghezza (intesa come n° di caratteri) del nome più alta, la clausola group by in questo caso serve per poter avere anche gli altri campi (nome e id) nel risultato.

risposto 9 anni fa
LonelyWolf
modificato 9 anni fa
X 0 X

Aggiungo un paio di cose in merito al tuo codice:

strpos2 è un errore di battitura o una funzione che hai scritto tu?

$newstring che valore ha?

$localita = strtolower($nome); non lo capisco, il numero dei caratteri è indipendente da maiuscole/minuscole

perchè aggiungi spazi? $localita2 = " ".$localita." " ;

Infine, se vuoi mantenere del codice anzichè una query basta una cosa così:

$max=0;
$localita_ok='';  
while ($data=mysql_fetch_array($result))
{
    $nome=trim($data['nome']);
    if ($nome <>"") { //se $nome ha dei caratteri
       $lunghezza=strlen($nome);
       if ($lunghezza > $max) { //controlla la lunghezza
          $max = $lunghezza;
          $id=$data['id'];
          $localita_ok=$nome;
       }
    }
}
echo "Località: $localita_ok - id: $id - Lunghezza: $max";
risposto 9 anni fa
LonelyWolf
X 0 X

Allora risolto?

In che modo?

risposto 9 anni fa
LonelyWolf
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda