Comunidad de diseño web y desarrollo en internet online

Duda en PHP y MYSQL

Citar            
MensajeEscrito el 19 May 2015 12:10 pm
Hola a todos,

Resulta que estoy intentando hacer un buscador, con PHP,Mysql,Ajax y bueno, entre otras.
Ahora bien, lo que pasa, es que el buscador ya me funciona y todo, pero necesito hacer una condición en mi Código de PHP para que cuando un usuario pulse en un Radio button pues que se vaya por la primera tabla, si selecciona el segundo radio button pues por la segunda tabla y así,por el método Get si es posible o Post.

Aclaro que los radio button ya los agregué debajo del buscador, pero en el PHP no sé como hacerle.
Les agradecería su ayuda :), Enseguida va el código para que me ayuden :) Gracias.


Código PHP :

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

    sleep(1);
    
    $search = '';



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

    $consulta = "SELECT * FROM art 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>', utf8_encode($fila['nombre'])) ?></span><br>

            <span class="contenido"><?php echo str_replace($search, '<strong>'.$search.'</strong>', substr(utf8_encode($fila['articulo']),0,150)) ?></span><br>
            <p>Número topográfico:</p><?php echo str_replace($search, '<strong>'.$search.'</strong>', substr(utf8_encode($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>';
?>


En resumen de cuentas, ¿Cómo coloco la condición dentro del formulario anterior(El código) para que me seleccione esa tabla, obteniendome el radio button?. Les agradecería. No me escriban que puedo hacerlo de la forma: "if($_POST(["NombredeRadio"]=="1"){echo 'hola' }else{ }"
Porque realmente no sé como insertarlo.
Les agradezco. :D

Por theDarker

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 May 2015 02:14 pm
y el radio button no lo veo en tu formulario.

Y si el codigo que colocaste de PHP es el correcto, siempre y cuando el radio le asignes ese valor.

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 19 May 2015 02:19 pm
Primera cosa.
Nunca hagas esto:

Código PHP :

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

    $consulta = "SELECT * FROM art WHERE articulo LIKE '%".$search."%' OR nombre LIKE '%".$search."%' ORDER BY visitas DESC LIMIT 5";

Cualquiera podría manipular el POST para que en 'seach' se envíe cualquier cosa que no quieres.
Así como lo tienes, este código es susceptible a un ataque por SQL injection. Nunca confíes en los datos que te llegan desde el cliente.

Ahora bien, ¿qué "name" tiene el radiobutton en cuestión y qué value tienes en cada uno de ellos?.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 19 May 2015 02:24 pm

DriverOp escribió:

Primera cosa.
Nunca hagas esto:

Código PHP :

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

    $consulta = "SELECT * FROM art WHERE articulo LIKE '%".$search."%' OR nombre LIKE '%".$search."%' ORDER BY visitas DESC LIMIT 5";

Cualquiera podría manipular el POST para que en 'seach' se envíe cualquier cosa que no quieres.
Así como lo tienes, este código es susceptible a un ataque por SQL injection. Nunca confíes en los datos que te llegan desde el cliente.

Ahora bien, ¿qué "name" tiene el radiobutton en cuestión y qué value tienes en cada uno de ellos?.


Hola, el nombre del Radiobutton se llama radio, y los valores son 4... "1", "2","3" y "4". Esos,los tengo en el index.php, el código de arriba es el buscador.php...Y otra cosa,Sé que es Sql injection,¿Pero cómo lo podría arreglar? Creí que con el Método post lo podía solucionar...¡Saludos!

Por theDarker

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 May 2015 02:27 pm

elporfirio escribió:

y el radio button no lo veo en tu formulario.

Y si el codigo que colocaste de PHP es el correcto, siempre y cuando el radio le asignes ese valor.


Hola, el Radiobutton está en el index.php, el código anteriormente es el buscador.php, los valores del radiobutton son: "1","2","3" y "4"...

Por theDarker

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 May 2015 06:27 pm

theDarker escribió:

...Sé que es Sql injection,¿Pero cómo lo podría arreglar? Creí que con el Método post lo podía solucionar...¡Saludos!


Lamento tener que disgregar tu pregunta inicial pero esto me parece importante (para ti y para cualquiera que lea esto).

Con cualquier navegador moderno cualquiera puede abrir las herramientas de desarrollo y enviar una petición POST (o GET o la que sea) hecha a la medida y así se salta cualquier validación o restricción que tengas en HTML o JavaScript.

Es tu tarea verificar que los datos que te envía el cliente sean válidos y tengan sentido.
Lo primero que tienes que hacer, si la cadena enviada por el cliente, va a formar parte de una sentencia SQL es pasar esa cadena por la función mysql_real_escape_string().
Lo que hace esta función es escapar cualquier caracter que sea válido para una sentencia SQL, por ejemplo, supongamos que te pasan por POST esta cadena:

Código :

'; DROP *; -- 

Entonces la sentencia SQL que se está enviando al servidor MySQL quedaría como:

Código MySQL :

SELECT * FROM art WHERE articulo LIKE '%'; DROP *; -- %' OR nombre LIKE '%'; DROP *; -- %' ORDER BY visitas DESC LIMIT 5

Como verás se ha colado la sentencia para eliminar tablas diciendo que las elimine todas.
Aquí MySQL interpretaría que hay dos sentencia, una la SELECT que culmina en el primer ; y otra es DROP hasta el segundo ;, luego sigue un comentario señalado por doble guión.
mysql_real_escape_string() podría una barra inclinada antes de la comilla simple, haciendo que esa comilla sea parte de la cadena de búsqueda y no el cierre de esa misma cadena.
Así:

Código PHP :

$consulta = "SELECT * FROM art WHERE articulo LIKE '%".mysql_real_escape_string($search)."%' OR nombre LIKE '%".mysql_real_escape_string($search)."%' ORDER BY visitas DESC LIMIT 5";

O mejor aún:

Código PHP :

if (isset($_POST['search'])){
        $search = strtolower($_POST['search']);
    }
 $search = mysql_real_escape_string($search);
    $consulta = "SELECT * FROM art WHERE articulo LIKE '%".$search."%' OR nombre LIKE '%".$search."%' ORDER BY visitas DESC LIMIT 5";

Sin embargo esto no es suficiente. Aún se pueden arruinar cosas manipulando el contenido de $search, por ejemplo, un parámetro POST generalmente puede ser de 32Kb de largo, pero las sentencias SQL no pueden ser tan largas. Si en $_POST['search'] se envía una cadena muy larga puede que se haga caer el servidor MYSQL.
Entonces debes acortar el valor de la variable $search al tamaño máximo permitido para el campo que estás consultado. Digamos a 255 caracteres:

Código PHP :

$search = substr($search,0,255);

Finalmente, no es tu caso pero podría serlo, siempre es buena idea filtrar el contenido de la variable solamente a aquellos caracteres que tengan sentido para el propósito que le quieres dar. Supongamos que quieres buscar un número, entonces no vale que te pasen letras. Esto lo puedes hacer con expresiones regulares.

Ahora sí, al problema que nos ocupa:

Código PHP :


$tabla = "tabla1";

if (isset($_POST['nombre_del_radio_button'])){
      $aux = strtolower(substr($_POST['nombre_del_radio_button'],0,2)); // Máximo dos cifras
      switch ($aux) {
         case "1": $tabla = "tabla1"; break;
         case "2": $tabla = "tabla2"; break;
         case "3": $tabla = "tabla3"; break;
         case "4": $tabla = "tabla4"; break;
      }
}

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


    $consulta = "SELECT * FROM ".$tabla." WHERE articulo LIKE '%".$search."%' OR nombre LIKE '%".$search."%' ORDER BY visitas DESC LIMIT 5";

Así es como lo haría yo.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 19 May 2015 08:07 pm

DriverOp escribió:

theDarker escribió:

...Sé que es Sql injection,¿Pero cómo lo podría arreglar? Creí que con el Método post lo podía solucionar...¡Saludos!


Lamento tener que disgregar tu pregunta inicial pero esto me parece importante (para ti y para cualquiera que lea esto).

Con cualquier navegador moderno cualquiera puede abrir las herramientas de desarrollo y enviar una petición POST (o GET o la que sea) hecha a la medida y así se salta cualquier validación o restricción que tengas en HTML o JavaScript.

Es tu tarea verificar que los datos que te envía el cliente sean válidos y tengan sentido.
Lo primero que tienes que hacer, si la cadena enviada por el cliente, va a formar parte de una sentencia SQL es pasar esa cadena por la función mysql_real_escape_string().
Lo que hace esta función es escapar cualquier caracter que sea válido para una sentencia SQL, por ejemplo, supongamos que te pasan por POST esta cadena:

Código :

'; DROP *; -- 

Entonces la sentencia SQL que se está enviando al servidor MySQL quedaría como:

Código MySQL :

SELECT * FROM art WHERE articulo LIKE '%'; DROP *; -- %' OR nombre LIKE '%'; DROP *; -- %' ORDER BY visitas DESC LIMIT 5

Como verás se ha colado la sentencia para eliminar tablas diciendo que las elimine todas.
Aquí MySQL interpretaría que hay dos sentencia, una la SELECT que culmina en el primer ; y otra es DROP hasta el segundo ;, luego sigue un comentario señalado por doble guión.
mysql_real_escape_string() podría una barra inclinada antes de la comilla simple, haciendo que esa comilla sea parte de la cadena de búsqueda y no el cierre de esa misma cadena.
Así:

Código PHP :

$consulta = "SELECT * FROM art WHERE articulo LIKE '%".mysql_real_escape_string($search)."%' OR nombre LIKE '%".mysql_real_escape_string($search)."%' ORDER BY visitas DESC LIMIT 5";

O mejor aún:

Código PHP :

if (isset($_POST['search'])){
        $search = strtolower($_POST['search']);
    }
 $search = mysql_real_escape_string($search);
    $consulta = "SELECT * FROM art WHERE articulo LIKE '%".$search."%' OR nombre LIKE '%".$search."%' ORDER BY visitas DESC LIMIT 5";

Sin embargo esto no es suficiente. Aún se pueden arruinar cosas manipulando el contenido de $search, por ejemplo, un parámetro POST generalmente puede ser de 32Kb de largo, pero las sentencias SQL no pueden ser tan largas. Si en $_POST['search'] se envía una cadena muy larga puede que se haga caer el servidor MYSQL.
Entonces debes acortar el valor de la variable $search al tamaño máximo permitido para el campo que estás consultado. Digamos a 255 caracteres:

Código PHP :

$search = substr($search,0,255);

Finalmente, no es tu caso pero podría serlo, siempre es buena idea filtrar el contenido de la variable solamente a aquellos caracteres que tengan sentido para el propósito que le quieres dar. Supongamos que quieres buscar un número, entonces no vale que te pasen letras. Esto lo puedes hacer con expresiones regulares.

Ahora sí, al problema que nos ocupa:

Código PHP :


$tabla = "tabla1";

if (isset($_POST['nombre_del_radio_button'])){
      $aux = strtolower(substr($_POST['nombre_del_radio_button'],0,2)); // Máximo dos cifras
      switch ($aux) {
         case "1": $tabla = "tabla1"; break;
         case "2": $tabla = "tabla2"; break;
         case "3": $tabla = "tabla3"; break;
         case "4": $tabla = "tabla4"; break;
      }
}

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


    $consulta = "SELECT * FROM ".$tabla." WHERE articulo LIKE '%".$search."%' OR nombre LIKE '%".$search."%' ORDER BY visitas DESC LIMIT 5";

Así es como lo haría yo.


Muchas gracias por responder, pero... me ocurre un eror y es:
mysql_real_escape_string(): Access denied for user ''@'localhost' (using password: NO) - Me dice la Linea que es esta:
$search = mysql_real_escape_string($search);
Leí que a esa función toca pasarle la conexión? pero se la paso y me manda más errores .... ¿Me podrías ayudar con eso por favor?
Si quieres dejo el index.php para que te des cuenta si es un error mio o algo así

Por theDarker

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 May 2015 08:19 pm
Acabo de ver que estás usando MYSQLi de PHP, entonces la función es mysqli_real_escape_string(). Y sí, debes pasarle el puntero de conexión como primer parámetro.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 19 May 2015 08:32 pm

DriverOp escribió:

Acabo de ver que estás usando MYSQLi de PHP, entonces la función es mysqli_real_escape_string(). Y sí, debes pasarle el puntero de conexión como primer parámetro.


Le acabo de arreglar, y arriba declare la conexión o bueno, sólo retorné la variable y me quedo:
$search = mysqli_real_escape_string($con, $_POST['search']); //Donde con es la Conexión
}


$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);

Pero aquí:
$fila = mysqli_fetch_assoc($resultado);
$total = mysqli_num_rows($resultado);
Me lanza error, diciendome:
mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in (Ruta)

Por theDarker

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 May 2015 08:58 pm

DriverOp escribió:

Acabo de ver que estás usando MYSQLi de PHP, entonces la función es mysqli_real_escape_string(). Y sí, debes pasarle el puntero de conexión como primer parámetro.

Ya lo logré solucionar :) Voy a intentar colocar las otras trablas, si funciona del todo creo que se puede cerrar el tema...Muchas gracias, cualquier otra cosa, te pediría el favor de que me la resolvieras

Por theDarker

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 May 2015 09:29 pm

theDarker escribió:

DriverOp escribió:

theDarker escribió:

...Sé que es Sql injection,¿Pero cómo lo podría arreglar? Creí que con el Método post lo podía solucionar...¡Saludos!


Lamento tener que disgregar tu pregunta inicial pero esto me parece importante (para ti y para cualquiera que lea esto).

Con cualquier navegador moderno cualquiera puede abrir las herramientas de desarrollo y enviar una petición POST (o GET o la que sea) hecha a la medida y así se salta cualquier validación o restricción que tengas en HTML o JavaScript.

Es tu tarea verificar que los datos que te envía el cliente sean válidos y tengan sentido.
Lo primero que tienes que hacer, si la cadena enviada por el cliente, va a formar parte de una sentencia SQL es pasar esa cadena por la función mysql_real_escape_string().
Lo que hace esta función es escapar cualquier caracter que sea válido para una sentencia SQL, por ejemplo, supongamos que te pasan por POST esta cadena:

Código :

'; DROP *; -- 

Entonces la sentencia SQL que se está enviando al servidor MySQL quedaría como:

Código MySQL :

SELECT * FROM art WHERE articulo LIKE '%'; DROP *; -- %' OR nombre LIKE '%'; DROP *; -- %' ORDER BY visitas DESC LIMIT 5

Como verás se ha colado la sentencia para eliminar tablas diciendo que las elimine todas.
Aquí MySQL interpretaría que hay dos sentencia, una la SELECT que culmina en el primer ; y otra es DROP hasta el segundo ;, luego sigue un comentario señalado por doble guión.
mysql_real_escape_string() podría una barra inclinada antes de la comilla simple, haciendo que esa comilla sea parte de la cadena de búsqueda y no el cierre de esa misma cadena.
Así:

Código PHP :

$consulta = "SELECT * FROM art WHERE articulo LIKE '%".mysql_real_escape_string($search)."%' OR nombre LIKE '%".mysql_real_escape_string($search)."%' ORDER BY visitas DESC LIMIT 5";

O mejor aún:

Código PHP :

if (isset($_POST['search'])){
        $search = strtolower($_POST['search']);
    }
 $search = mysql_real_escape_string($search);
    $consulta = "SELECT * FROM art WHERE articulo LIKE '%".$search."%' OR nombre LIKE '%".$search."%' ORDER BY visitas DESC LIMIT 5";

Sin embargo esto no es suficiente. Aún se pueden arruinar cosas manipulando el contenido de $search, por ejemplo, un parámetro POST generalmente puede ser de 32Kb de largo, pero las sentencias SQL no pueden ser tan largas. Si en $_POST['search'] se envía una cadena muy larga puede que se haga caer el servidor MYSQL.
Entonces debes acortar el valor de la variable $search al tamaño máximo permitido para el campo que estás consultado. Digamos a 255 caracteres:

Código PHP :

$search = substr($search,0,255);

Finalmente, no es tu caso pero podría serlo, siempre es buena idea filtrar el contenido de la variable solamente a aquellos caracteres que tengan sentido para el propósito que le quieres dar. Supongamos que quieres buscar un número, entonces no vale que te pasen letras. Esto lo puedes hacer con expresiones regulares.

Ahora sí, al problema que nos ocupa:

Código PHP :


$tabla = "tabla1";

if (isset($_POST['nombre_del_radio_button'])){
      $aux = strtolower(substr($_POST['nombre_del_radio_button'],0,2)); // Máximo dos cifras
      switch ($aux) {
         case "1": $tabla = "tabla1"; break;
         case "2": $tabla = "tabla2"; break;
         case "3": $tabla = "tabla3"; break;
         case "4": $tabla = "tabla4"; break;
      }
}

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


    $consulta = "SELECT * FROM ".$tabla." WHERE articulo LIKE '%".$search."%' OR nombre LIKE '%".$search."%' ORDER BY visitas DESC LIMIT 5";

Así es como lo haría yo.


Muchas gracias por responder, pero... me ocurre un eror y es:
mysql_real_escape_string(): Access denied for user ''@'localhost' (using password: NO) - Me dice la Linea que es esta:
$search = mysql_real_escape_string($search);
Leí que a esa función toca pasarle la conexión? pero se la paso y me manda más errores .... ¿Me podrías ayudar con eso por favor?
Si quieres dejo el index.php para que te des cuenta si es un error mio o algo así


He intentado hacer:

Código PHP :

$tabla = "art";

if (isset($_POST['ra'])){
      $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']);
}


Al yo irme al buscador, y presionar en el segundo radiobutton para que vaya a la tabla 2 no lo redirige y sigue buscando en la tabla 1, ¿Alguna solución? Disculpa las molestias. :(
Yo creería que es por la declaración de $tabla = "art"; Ya que creería que se va siempre a esa tabla y no a las demas con el Switch abajo.

Por theDarker

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 May 2015 12:03 pm
Imprime el valor de $_POST['ra'] si es que existe.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 20 May 2015 07:40 pm

DriverOp escribió:

Imprime el valor de $_POST['ra'] si es que existe.

¿Te refieres a imprimilo en cada caso del switch?

Por theDarker

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 May 2015 12:14 pm
No. Lo que tienes que saber es qué te está llegando del cliente, haz un var_dump de $_POST;

Código PHP :

echo '<pre>';var_dump($_POST);echo '</pre>';

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 21 May 2015 07:19 pm

DriverOp escribió:

No. Lo que tienes que saber es qué te está llegando del cliente, haz un var_dump de $_POST;

Código PHP :

echo '<pre>';var_dump($_POST);echo '</pre>';


Primera vez que escucho lo de la var_dump, ¿Y ese código lo meto dentro de...?
Porque si hago:

Código PHP :

echo '<pre>';var_dump($_POST['ra']);echo '</pre>';

me imprime la cadena.
Además, de que al nombre(name) del radio se lo cambié a (ra)

Por theDarker

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 May 2015 01:31 pm
Esto lo debes poner al inicio del script. Y copia y pega acá en el foro lo que var_dump te muestra. así tenemos una idea de lo que realmente llega por POST al servidor. También prueba cambiando a diferentes valores en el formulario, seguro que te darás cuenta de cómo funcionan los radiobuttons y checkboxes...

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 28 May 2015 03:58 am

DriverOp escribió:

Esto lo debes poner al inicio del script. Y copia y pega acá en el foro lo que var_dump te muestra. así tenemos una idea de lo que realmente llega por POST al servidor. También prueba cambiando a diferentes valores en el formulario, seguro que te darás cuenta de cómo funcionan los radiobuttons y checkboxes...


Lo hice pero no me muestra nada, sólo me muestra los resultados, coloqué como me indicaste el var_dump al inicio y no manda nada .-.

Por theDarker

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 May 2015 12:24 pm
Oops!, entonces el problema está en otra parte. Lo siento, sin estar frente al desarrollo que estás haciendo no puedo hacer nada.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 28 May 2015 08:52 pm

DriverOp escribió:

Oops!, entonces el problema está en otra parte. Lo siento, sin estar frente al desarrollo que estás haciendo no puedo hacer nada.


Pues lo coloqué así:


Código PHP :

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;
      }
     
}


¿O me equivoqué y allí no es?

Por theDarker

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 May 2015 12:08 pm
El inicio del script.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 02 Jun 2015 07:21 pm

DriverOp escribió:

El inicio del script.


Hola, disculpame la demora en responder, me pasó algo pero ya lo solucioné.
Lo coloqué al inicio del script seleccionando un RadioButton, en este caso el primero, y me muestr null....

Por theDarker

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Jun 2015 12:06 pm
Esta va a ser la segunda vez que te pido que copies y pegues el resultado de var_dump() aquí. Si no puedes seguir estas indicaciones, me temo que no puedo seguir ayudándote.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 13 Jun 2015 07:33 pm

DriverOp escribió:

Esta va a ser la segunda vez que te pido que copies y pegues el resultado de var_dump() aquí. Si no puedes seguir estas indicaciones, me temo que no puedo seguir ayudándote.


Hola, disculpa la tardanza en responder, me ocurrió una calamidad doméstica :(.
Mira, lo que hago es:

$search = '';
$tabla = "art";
echo '<pre>';var_dump($_POST['art']);echo '</pre>';
if (isset($_POST['ra'])){
echo '<pre>';var_dump($_POST['ra']);echo '</pre>'; //"ra" es el nombre del radio button, lo cambié de radio //a "ra", y pues cuando lo imprime llega como null, tal vez es porque está al principio no?
$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;
}

}

Te agradecería la ayuda, necesito entregar esto para el martes :( y pues realmente estoy colgado en este punto...No sé si me podrías ayudar vía Skype o facebook o algo así, te lo agradecería inmensamente.

Por theDarker

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Jun 2015 06:56 am
Hola, la verdad me dio mucha pereza leer todo, pero en base a tu primer post te voy a dar una posible solucion a tu problema lo mas simple posible trabajando con php;
esto haciendo cuenta y caso que puedes trabajar con clases y funciones.

seran 3 archivos.


index.php
<html>
<body>
<form action="cont.php" method="post">
<input type="text" name="dato" />
primero<input type="radio" name="xxx" value="1">
segundo<input type="radio" name="xxx" value="2">
<input type="submit" value="enviar">
</form>
</body>
</html>

////////////////////////////////////////////////
cont.php
<?php
include_once("mod.php");
$var=new nombre_clase();

if(isset($_POST["dato"])!="" && isset($_POST["xxx"])=='1'){

$dato=$_POST["dato"];
$var->function1($dato);
}

if(isset($_POST["dato"])!="" && isset($_POST["xxx"])=='2'){
$dato=$_POST["dato"];
$var->function2($dato);
}

?>
///////////////////////////////////////////
mod.php
<?php
require_once("conexion.php");
class nombre_clase{

function function1($dato){
// aqui vas recibir el dato con el radio butt con valor 1
//aqui pones todo el select y la impresion de l tabla y loq ue quiereas
}

function function2($dato){

// aqui vas recibir el dato con el radio butt con valor 2
//aqui pones todo el select y la impresion de l tabla y loq ue quiereas

}


}//fin clase
?>


espero que le comprendasss, asi puedes filtrar facil la busqueda

Por mk02

2 de clabLevel



 

chrome

 

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