Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    107

    confrontare contenuto variabile con array

    codice:
    $sql="SELECT testo FROM `tabella` where testo IN ('%$testo%') OR testo like '%$testo%' ";
    					$check=mysql_query($sql,$conn_db) or die(mysql_error());
    					$count=mysql_num_rows($check);
    					
    					if($count=1){
    						/*do {
    							header("location:facolta.php?id=0"); 		
    							exit;			
    						}while ($count=mysql_fetch_array($check));*/
    						$prova=mysql_query("SELECT testo FROM `tabella`");
    						$record=array(); 
    						$all=array(); 						
    						while ($result = mysql_fetch_array($prova) ) {                             
    		   				$record['testo']=$result['testo']; 		   				
    		   				$all[]=$record;		   				
    		   			}
    		   			$j=count($all); 
    			
    						for($i = 0, $size = sizeof($all); $i < $size; ++$i) {			
    				         $val=$all[$i]['testo']."
    "; 												
    					   }	
    					   
    					  if($_SESSION['text']==$val){
    								echo "ok";	
    						} 	
    						else {	echo "no";}		   				   
    					}
    la variabile $_SESSION['text'] contiene una stringa inserita in un campo testo e che deve essere confrontata con il testo memorizzato nel db e salvato in $val , però l'if in cui faccio il confronto mi stampa sempre "no" cioè che i le due variabili sono diverse quando non è vero...

    Quello che voglio è verificare se il testo inserito dall'utente è presente nel db, dove sbaglio?

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    anzichè stampare solo "ok" o "no" aggiungi a video la stampa delle variabili confrontate e posta qui il risultato... stampa anche la variabile $sql, cioè la query generata

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    107
    $sql -> SELECT testo FROM `tabella` where testo IN ('%universitÃ%') OR testo like '%universitÃ%'

    $testo-> universitÃ

    $val -> stampa il testo completo(in cui c'è anche il testo "università") solo se faccio print_r($all) nel for forse è questo il problema, se faccio la stampa al di fuori del for stampa la metà del testo

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    mmmh... mi sembra un problema di codifica (vedi la "a accentata" di "università"...): puoi provare con una parola senza accenti? p.es. prova con "universi"...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    107
    codifica o no purtroppo il problema non cambia.. consigli?

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ma puoi stampare $_SESSION['text'] e $val? mi sembra che il primo sia un termine e il secondo un testo completo... quindi == non andrebbe bene, al limite strpos...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    107
    infatti è come dici tu, con strpos come potrei fare?

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    anzichè if($_SESSION['text']==$val){ avresti if(strpos($val, $_SESSION['text'])) {
    ...c'è anche la versione "case insensitive" se preferisci...

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    107
    ok grazie! potresti segnalarmela?

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    stripos(...)

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.