Comunidad de diseño web y desarrollo en internet online

Duda en PHP y MYSQL - Condición

Citar            
MensajeEscrito el 15 Jun 2015 04:39 am
Hola a todos,

Tengo una pregunta(Ya que un post anterior se hizo muy largo y creo que por eso el usuario DriverOp que me estaba ayudando dejó de ayudarme) no sé. Igualmente, si lee esto, le doy muchas gracias.

Ahora bien,estoy creando un buscador y necesito evaluar una condición con 4 radiobuttons(Que están en el index.php puestos) que tienen valores de 1,2,3,4 y con "value='ra' " y "name='ra' " para que en mi código de buscador.php(Que es el de más abajo que les estoy mostrando) recopile el valor del radiobutton y se vaya por la tabla concorde al número.
Por ejemplo:
Si selecciono en el buscador el radiobutton con value 1, pues entonces que vaya por la tabla 1, si selecciono el radiobutton con value 2, pues entonces por la tabla 2 y así sucesivamente hasta 4.

El código de buscador.php es el siguiente:

Código :

<?php 
   require_once('../conn/connect.php');

   sleep(1);
   $con=mysqli_connect("localhost","root","root","world");

// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$search = '';
$tabla = "art"; 

if (isset($_POST['ra'])){
echo '<pre>';var_dump($_POST['ra']);echo '</pre>';
      $aux = strtolower(substr($_POST['ra'],0,2)); // Máximo dos cifras
     
      switch ($aux) {
         case "1": $tabla = "art"; break;
         case "2": $tabla = "art2";  break;
         case "3": $tabla = "tabla3"; break;
         case "4": $tabla = "tabla4"; break;
       
      }
     
}

if (isset($_POST['search'])){
$search = strtolower(substr($_POST['search'],0,255));
   $search = mysqli_real_escape_string($con, $_POST['search']);
}


    $consulta = "SELECT * FROM ".$tabla." WHERE articulo LIKE '%".$search."%' OR nombre LIKE '%".$search."%' ORDER BY visitas DESC LIMIT 5";
   $resultado = $connect->query($consulta);
   $fila = mysqli_fetch_assoc($resultado);
   $total = mysqli_num_rows($resultado);

?>
<?php 
if ($total>0 && $search!='') { 
?>
   <h2>Resultados de la búsqueda</h2>
   <?php do { 
   ?>
      <div class="art">
         <a href="articulo.php?id=<?php echo $fila['id'] ?>&search=<?php echo $search ?>">
         <span class="titulo"><?php echo str_replace($search, '<strong>'.$search.'</strong>', ($fila['nombre'])) ?></span><br>

         <span class="contenido"><?php echo str_replace($search, '<strong>'.$search.'</strong>', substr(($fila['articulo']),0,150)) ?></span><br>
         <p>Número topográfico:</p><?php echo str_replace($search, '<strong>'.$search.'</strong>', substr(($fila['No. TOPOGRAFICO DEL TEXTO']),0,150)) ?>
         

         
         </a>

      </div>
   <?php 
   } while ($fila=mysqli_fetch_assoc($resultado)); 
?>
<?php 
} 
elseif($total>0 && $search=='') echo '<h2>Ingresa un parámetro de búsqueda</h2><p>Ingresa palabras clave relacionadas con el tema de esta web</p>';
else echo '<h2>No se han encontrado resultados</h2><p>Inténta realizar tu búsqueda con palabras más especificas...</p>';
?>


(Soy un poco Novato en PHP :( )

Lo raro, es que por ejemplo selecciono el radiobutton 1 o el 2 o el 3 o el 4, y siempre se me va por la tabla "art", pero si selecciono la 2, tendría que obligatoriamente que irse por la tabla art2.... y las otras por tabla3 y tabla4.

Les agradezco la ayuda en serio, gracias.

Por theDarker

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Jun 2015 10:00 pm
No es de PHP, de hecho es una lógica de programación muy básica y quien sea que te haya enseñado HTML debería ponerse a estudiar también:

Este es un formulario HTML "bien" construido, donde el ID no se repite :) sin embargo el "NAME" es necesario que lo haga pues es un radio. Si fuera de tipo checkbox seria otra historia.

Código HTML :

<form name="leformulario" id="leformulario" action="leguardado.php" method="post">
    <label for="miopcionelegida1">
        Opcion valor 1
        <input name="miopcionelegida" id="miopcionelegida1" type="radio" value="1" checked>
    </label>
    <br>
    <label for="miopcionelegida2">
        Opcion valor 2
        <input name="miopcionelegida" id="miopcionelegida2" type="radio" value="2">
    </label>
    <br>
    <label for="miopcionelegida3">
        Opcion valor 3
        <input name="miopcionelegida" id="miopcionelegida3" type="radio" value="3">
    </label>
    <br>
    <label for="miopcionelegida4">
        Opcion valor 4
        <input name="miopcionelegida" id="miopcionelegida4" type="radio" value="4">
    </label>

    <button type="submit">gomu gomu no guardar</button>
</form>


y ahora te dejo el PHP con un switch :) (tenia mas validaciones pero no van al caso). se debe llamar 'leguardado.php'

Código PHP :

<?php
/**
 * Created by PhpStorm.
 * User: elporfirio
 * Date: 15/06/2015
 * Time: 04:50 PM
 */

$opcion = array_key_exists('miopcionelegida',$_POST) ? $_POST['miopcionelegida'] : null;

$texto = "La opción elegida es: ";


switch($opcion){
    case '1':
        $texto .= "uno";
        break;
    case '2':
        $texto .= "dos";
        break;
    case '3':
        $texto .= "tres";
        break;
    case '4':
        $texto .= "cuatro";
        break;
    default:
        $texto = "No se eligio opción valida";
        break;
}


echo $texto;


Aquí los archivos completos.

https://gist.github.com/elporfirio/f2ed7e33c80d3053267e

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 16 Jun 2015 12:17 am

elporfirio escribió:

No es de PHP, de hecho es una lógica de programación muy básica y quien sea que te haya enseñado HTML debería ponerse a estudiar también:

Este es un formulario HTML "bien" construido, donde el ID no se repite :) sin embargo el "NAME" es necesario que lo haga pues es un radio. Si fuera de tipo checkbox seria otra historia.

Código HTML :

<form name="leformulario" id="leformulario" action="leguardado.php" method="post">
    <label for="miopcionelegida1">
        Opcion valor 1
        <input name="miopcionelegida" id="miopcionelegida1" type="radio" value="1" checked>
    </label>
    <br>
    <label for="miopcionelegida2">
        Opcion valor 2
        <input name="miopcionelegida" id="miopcionelegida2" type="radio" value="2">
    </label>
    <br>
    <label for="miopcionelegida3">
        Opcion valor 3
        <input name="miopcionelegida" id="miopcionelegida3" type="radio" value="3">
    </label>
    <br>
    <label for="miopcionelegida4">
        Opcion valor 4
        <input name="miopcionelegida" id="miopcionelegida4" type="radio" value="4">
    </label>

    <button type="submit">gomu gomu no guardar</button>
</form>


y ahora te dejo el PHP con un switch :) (tenia mas validaciones pero no van al caso). se debe llamar 'leguardado.php'

Código PHP :

<?php
/**
 * Created by PhpStorm.
 * User: elporfirio
 * Date: 15/06/2015
 * Time: 04:50 PM
 */

$opcion = array_key_exists('miopcionelegida',$_POST) ? $_POST['miopcionelegida'] : null;

$texto = "La opción elegida es: ";


switch($opcion){
    case '1':
        $texto .= "uno";
        break;
    case '2':
        $texto .= "dos";
        break;
    case '3':
        $texto .= "tres";
        break;
    case '4':
        $texto .= "cuatro";
        break;
    default:
        $texto = "No se eligio opción valida";
        break;
}


echo $texto;


Aquí los archivos completos.

https://gist.github.com/elporfirio/f2ed7e33c80d3053267e



Creo que no entendiste a lo que quería llegar o no me hice entender bien, lo que haz hecho, es un Switch que da 4 opciones, y devuelve lo que está en cada Case.
Al contrario, yo deseo hacer diferente a eso, deseo seleccionar cualquier radiobutton para que se vaya por la tabla, además de que lo estoy haciendo con Ajax, no debería haber un botón que diga como lo colocaste, sino buscar normalmente, ya que el buscador lo que hace es: Se van ingresando palabras y el va comparando y lanzando los posibles resultados.

:) Igualmente gracias, si pudieras ayudarme con lo que te pido.....

Por theDarker

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Jun 2015 02:34 am
Okay, no entiendo lo que quieres hacer, y por el momento ya no soy de utilidad. Gracias. :)

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 16 Jun 2015 03:27 am

elporfirio escribió:

Okay, no entiendo lo que quieres hacer, y por el momento ya no soy de utilidad. Gracias. :)


._. No dije nada de eso, ni lo insinué, pero si no me quieres hacer el favor de ayudarme, gracias de todas formas. :)

Por theDarker

10 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.