problema script

ciao a tutti ho un problema con questo script

$fulltxt="benvenuto nella città di treviso ";


$string2 = " ".$fulltxt." " ;

$newstring=strtolower($string2);

$sql_loc="SELECT nome FROM localita ORDER BY nome DESC";

$result_loc=mysql_query ($sql_loc);
 
      $max=0;
      $localita_ok='';    

 while ($loc=mysql_fetch_array($result_loc))
 {
    $nome=$loc['nome'];
    $id=$loc['id'];
   $localita = strtolower($nome);
   
    
   $localita2 = " ".$localita." " ;   
      
    $pos2 = strpos('$newstring', '$localita2', '1');
   //echo "strpos('$newstring', '$localita2', '1') - $pos2<br>";
   echo "$pos2"; 
   
   if ($pos2 !='')
   {
         
        $lunghezza=strlen($localita);
      
      if ($lunghezza > $max)
      {
          $max = $lunghezza;
          $id=$data['id'];
          $localita_ok=$localita;
        
       } 
      
      
   }
      
 }

echo "$localita_ok<br>";

A questa riga

$pos2 = strpos('$newstring', '$localita2', '1');

l'assegmaneto non ha alcun effetto anche se in stampa vedo "strpos(' benvenuto nella città di treviso ', ' treviso ', '1')"

allora ho provato a fare testare questo due righe da sole:

$pos2 =strpos(' benvenuto nella città di treviso ', ' treviso ', '1');

echo "pos: $pos2<br><br>";

ed alla variabile $pos2 viene asseganto un valore.

Cosa non funziona nel primo script???

 ???   :(

inviato 9 anni fa
stellina
X 0 X

Hai notato che dalla query estrai solo il nome e non l'id?

 :bye:

risposto 9 anni fa
Marco Dario
X 0 X

grazie per l'osservazione, hai ragione....

cmq il problema risale ad un'altra riga  ???

risposto 9 anni fa
stellina
X 0 X

Cioè, quando fai echo non ti stampa la variabile $pos2 ?

 :bye:

risposto 9 anni fa
Marco Dario
X 0 X

se faccio

echo "strpos('$newstring', '$localita2', '1')";
//stampa strpos(' benvenuto nella città di treviso ', ' treviso ', '1')


echo "$pos2";//non stampa niente quando dovrebbe darmi un valore numerico

 

 :(

risposto 9 anni fa
stellina
X 0 X

Quindi il problema è certamente nella funzione strpos. Perchè hai impostato l'offset a 1?

echo "strpos('$newstring', '$localita2', '1')";

 :bye:

risposto 9 anni fa
Marco Dario
X 0 X

anche non impostando l'offset non campia niente, la strpos continua a non dare risultati.

Vonvermo che alla funzione vengono passati i parametri.

risposto 9 anni fa
stellina
X 0 X

Come prima cosa suggerirei di non aggiungere gli spazi all'inizio e alla fine, sono inutili e ad esempio in questo caso:

strpos(' benvenuto nella città ditreviso ', ' treviso ', '1')

non hai risultato.

Secondo:

nella strpos non usare gli apici ' ma solo la variabile così:

$pos2 = strpos($newstring, $localita2, '1');

per l'offset vedi tu se vuoi metterlo o meno.

risposto 9 anni fa
LonelyWolf
X 0 X

Mannaggia alla modifica post!

Usando gli apici stai cercando la stringa $localita2 (non il contenuto della variabile $localita2) nella stringa $newstring (non il contenuto della variabile $newstring).

Al limite se ti piace avere qualche cosa che identifichi tali variabili come parametri puoi usare i doppi apici ", ma in questo caso è meglio non metterci nulla.

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