Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: DarwinDLRD en 02 de Octubre 2015, 01:36

Título: MySQL y PHP consulta SELECT * FROM WHERE LIKE simbolo % OR ORDER BY LIMIT
Publicado por: DarwinDLRD en 02 de Octubre 2015, 01:36
¡Hola!

¿Como estan? Bien... empecemos.

Tengo una base de datos llamada buscador con una tabla llamada telementos con los siguientes datos:

(https://scontent-mia1-1.xx.fbcdn.net/hphotos-xta1/v/t1.0-9/12106787_1132274880134370_7304916542884587103_n.jpg?oh=7213f57fca7f1cd43ee8cd358857b164&oe=569F11E4)

Con los siguientes códigos:

Código: [Seleccionar]
<?php 
require_once(
'../conn/connect.php');

sleep(1);

$search '';
if (isset($_POST['search'])){
$search strtolower($_POST['search']);
}

$consulta "SELECT * FROM telementos WHERE simbolo LIKE '%".$search."%' OR color LIKE '%".$search."%' ORDER BY noatomico LIMIT 6";
$resultado $connect->query($consulta);
$fila mysqli_fetch_assoc($resultado);
$total mysqli_num_rows($resultado);
mysqli_close($connect); /* PARA CERRAR LA CONEXIÓN (VERIFICAR) */
?>

Y este otro (en el mismo archivo):

Código: [Seleccionar]
<?php if ($total>&& $search!='') { ?>
<br><br>
<i class="material-icons grey-text text-darken-1 left md-36">search</i><h5 class="blue-text text-darken-2">Resultados de la búsqueda</h5>
<div class="divider"></div>
<br>
<?php do { ?>
<!--INICIO-->
<div class="row">
  <div class="col s12 m3">
    <div class="card hoverable <?php echo str_replace($search'<strong>'.$search.'</strong>'utf8_encode($fila['color'])) ?>">
      <div class="card-content white-text">
      <div class="row">
      <div class="col s6"><?php echo str_replace($search'<strong>'.$search.'</strong>'utf8_encode($fila['noatomico'])) ?></div>
      <div class="col s6 right-align"><?php echo str_replace($search'<strong>'.$search.'</strong>'utf8_encode($fila['matomica'])) ?></div>
      </div>
        <h1 class="center-align"><?php echo str_replace($search'<strong>'.$search.'</strong>'utf8_encode($fila['simbolo'])) ?></h1>
        <p class="center-align"><?php echo str_replace($search'<strong>'.$search.'</strong>'utf8_encode($fila['noelemento'])) ?></p>
        <br>
        <div class="divider"></div>
        <p class="center-align"><b>Grupo, período, bloque</b></p>
        <p class="center-align"><?php echo str_replace($search'<strong>'.$search.'</strong>'utf8_encode($fila['gpb'])) ?></p>
      </div>
    </div>
  </div>
<!--</div>-->
<!--FIN-->

   
<?php } while ($fila=mysqli_fetch_assoc($resultado)); ?>
<?php 
elseif(
$total>&& $search=='') echo '<h4 class="cargando-texto">¡Oops! ¿Estas seguro que ingresaste un dato?</h4>';
else echo 
'<h4 class="cargando-texto">Lamento decirte esto, pero alguien tenia que hacerlo: <br>No se encontraron resultados :(</h4><img class="responsive-img" src="img/error.gif">';
?>

El problema es el siguiente, cuando escribo en el buscador la letra H me parece el Hidrogeno y Helio, todo OK

Pero cuando escribo una G me aparece todos los elementos, el problema es que los muestra sin "color" pero si remarco el cuadro como si fuera a copiarlos, la informacion si esta, sin embargo no deberia de muestrarse, porque solo escribo la letra G cuando mucho solo debe mostrarse el resultado Ga y Ge, pero no! :(


¿Alguien me ayuda? Ya llevo dos dias intentando reparar este error y ni pude dormir pensado como solucionarlo jaja
Título: Re:MySQL y PHP
Publicado por: jga en 03 de Octubre 2015, 22:59
De todas maneras el % antes y después de una letra o trozo de palabra puede no funcionar como quieres ,  porque  imagínate que en la búsqueda pones " io " , creo que te saldrían también casi todos los elementos ( que contengan io ) y no es una búsqueda muy precisa , pero esa es solo mi opinión claro.Usa la consola de chrome o firefox ( F12 ) para saber bien lo que te esta haciendo el código , yo lo hago y veo errores.