Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/10/2015, 03:01
javy7v
 
Fecha de Ingreso: abril-2015
Mensajes: 189
Antigüedad: 9 años
Puntos: 14
Espacios en blanco Buscador PHP

Buenas gente,

El caso es que he seguido un post de aqui para hacer un buscador PHP sencillo pero el mismo por defecto , me sustituye los espacios en blanco por %20 y yo necesito cambiar en la URL ese %20 por un -, porque asi es como estan hechas en mi web para los productos.

Cuando hay un espacio en blanco me pone un guion entre palabra y palabra.

He probado con str replace con algo asi :

$new = str_replace("%20", "-", "$new");

Pero no he conseguido que me haga el cambio.

Paso el codigo ya que solo es una pagina php:

Código:
<head>
<link href="../css/estiloGeneral.css" rel="stylesheet" type="text/css" media="screen and (min-width: 481px)" />
<link href="../css/movil.css" rel="stylesheet" type="text/css" media="handheld, only screen and (max-device-width: 480px)" />
<link rel="stylesheet" type="text/css" href="../css/estiloMenu.css" />
</head>
<body>
	<div id="contenedor">
		<?php require_once("include/cabecera.php");require_once("include/traducNombre.php");?>
		<div id="social2">
			<?php require_once('include/social2.php')?>
		</div>
		<div id="contenido">
				<?php
					// conectar al servidor
					$server_link = mysql_connect("host", "id", "pass");
					if(!$server_link){
						die("Fall&oacute; la Conexi&oacute;n ". mysql_error());
					}
					// seleccionamos la base de datos
					$db_selected = mysql_select_db("base", $server_link);
					if(!$db_selected){
						die("No se pudo seleccionar la Base de Datos ". mysql_error());
					}
					// varificamos que el formulario halla sido enviado
					if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){
						$frase = addslashes($_GET['frase']);
						// hacemos la consulta de busqueda
						$sqlBuscar = mysql_query("SELECT nombre, descripcion,
												  MATCH (nombre, descripcion)
												  AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias
												  FROM productoPrueba
												  WHERE MATCH (nombre, descripcion)
												  AGAINST ('$frase' IN BOOLEAN MODE)
												  ORDER BY coincidencias DESC", $server_link)
												  or die(mysql_error());                              
						$totalRows = mysql_num_rows($sqlBuscar);
						// Enviamos un mensaje
						// indicando la cantidad de resultados ($totalRows)
						// para la frase busada ($frase)
						if(!empty($totalRows)){
							echo stripslashes("<p>Su b&uacute;squeda arroj&oacute; <strong>$totalRows</strong> resultados para <strong>$frase</strong></p>");        
							// mostramos los resultados
							while($row = mysql_fetch_array($sqlBuscar)){
								echo "<strong><a href='http://www.tejasa.es/productos//$row[nombre]'>$row[nombre]</a>:</strong> <em>Coincidencias: ". round($row['coincidencias']) ."</em><br />";
								echo "<p>".substr(strip_tags($row['descripcion']), 0, 255)."...</p>";
							}
							//$newa = str_replace("%20", "-", "$new");
						}
						
						// si se ha enviado vacio el formulario
						// mostramos un mensaje del tipo Oops...!
						elseif(empty($_GET['frase'])){
							echo "Debe introducir una palabra o frase.";
						}
						// si no hay resultados
						// otro mensaje del tipo Oops...!
						elseif($totalRows == 0){
							echo stripslashes("Su busqueda no arrojo resultados para <strong>$frase</strong>");
						}
					}
			?>
		<h1>Buscador</h1>
		<form name="buscar" action="<?php $_SERVER['PHP_SELF'] ?>" method="get">
		Buscar: <input type="text" size="50" value="<?php echo $_GET['frase']; ?>" name="frase" />
		<input type="submit" name="buscar" value="Buscar" />
		</form>
		<?php require_once('include/piePagina.php')?>
		</div>
	</div>
</body>
Muchas gracias a ver si alguno me puede echar una mano!

Última edición por javy7v; 30/10/2015 a las 05:23