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

    strano comportamento query...

    ho una query che se la eseguo da php ottengo che il mysql_num_rows mi dà 0, mentre se la eseguo da PMA ho record estratti...

    in particolar modo se uno dei campi da cercare contiene caratteri di escape, come questa:
    codice:
    SELECT pv.nome, pv.indirizzo, c.comune, c.provincia, 
    c.regione, c.cap, pv.telefono, pv.e_mail FROM 
    punti_vendita_nuovi pv INNER JOIN comuni_italia c ON 
    pv.id_comune = c.id WHERE c.regione = 'Lombardia' AND 
    c.provincia = 'BS' AND c.comune= 'palazzolo sull\\'oglio' AND 
    1=1 ORDER BY c.provincia ASC, c.comune ASC, pv.nome ASC

    questa non mi restituisce nessun risultato, mentre se la faccio stampare, la copio e la incollo in PMA ottengo risultati...come mai? :master:
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  2. #2
    ho aggiunto uno slash manualmente (quotando ne vedrete 2 ma è tutto normale...) in modo che a primo impatto la vediate corretta, perché il forum zappa i caratteri di escape
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    utilissima questa condizione
    AND 1=1

    hai errori e warning attivi?

    Posta il codice con cui fai eseguire quella query nel PHP.

  4. #4
    Originariamente inviato da skidx
    utilissima questa condizione
    AND 1=1

    hai errori e warning attivi?

    Posta il codice con cui fai eseguire quella query nel PHP.
    quella condizione l'avevo messa in fondo al fine di evitare ulteriori controlli
    dal codice capirai il motivo...

    questo è l'intero codice della pagina di ricerca:
    codice:
    require_once( "../connect.inc.php" );
    
    if($_POST){
    	foreach($_POST as $key=>$value){
    		$$key=stripslashes(mysql_escape_string(trim(htmlentities(strip_tags($_POST[$key]),ENT_QUOTES))));
    	}
    }
    
    $sql = "SELECT pv.nome, pv.indirizzo, c.comune, c.provincia, c.regione, c.cap,
    		pv.telefono, pv.e_mail
    		FROM punti_vendita_nuovi pv
    		INNER JOIN comuni_italia c ON pv.id_comune = c.id
    		";
    
    $where_clause = "";
    
    if ($regione)
    	$where_clause .= " c.regione = '".$regione."' AND ";
    if ($provincia)
    	$where_clause .= " c.provincia = '".$provincia."' AND ";
    if ($comune)
    	$where_clause .= " c.comune= '".$comune."' AND ";
    
    if ($where_clause){
    	$sql = $sql." WHERE ".$where_clause." 1=1 ORDER BY c.provincia ASC, c.comune ASC, pv.nome ASC";
    }else
    	die('Non hai specificato nessun parametro di ricerca.');
    
    $res = mysql_query($sql)or die(mysql_error());
    $num = mysql_num_rows($res);
    	
    //echo $sql."
    \n".$num;
    
    if ($num <> 0){
    	// qui c'è il ciclo che mi scrive i risultati
    }else
    	die('Non ci sono risultati che soddisfano le opzioni di ricerca impostate.');
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    è proprio vero che la mattina si è più freschi...

    ho levato l'htmlentities visto che nel db i dati sono salvati senza codifica html ed infatti così funziona...





    grazie
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.