Foros del Web » Programando para Internet » PHP »

Se puede hacer?

Estas en el tema de Se puede hacer? en el foro de PHP en Foros del Web. Hola, ¿Se puede hacer esto? Quiero un botón, que cuando le de ejecute una query y me la imprima en la web. He puesto lo ...
  #1 (permalink)  
Antiguo 19/05/2014, 06:20
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 9 años, 11 meses
Puntos: 0
Se puede hacer?

Hola,

¿Se puede hacer esto?
Quiero un botón, que cuando le de ejecute una query y me la imprima en la web.
He puesto lo siguiente:

// Realizar una consulta MySQL
$query = 'SELECT * FROM hotel';
$result = mysql_query($query) or die('Consulta fallida: ' . mysql_error());

// Imprimir los resultados en HTML
echo "<td> <input type='submit' name='consultaHotel' value='Hotel'/></td> \n";

if(isset($_POST['consultaHotel']))
{
echo "<table border=1>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "\t<tr>\n";
foreach ($line as $col_value)
{
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";

Sin el IF funciona correctamente.

Gracias
  #2 (permalink)  
Antiguo 19/05/2014, 06:57
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Se puede hacer?

Se puede hacer pero debes tener claro donde pasan las cosas.

El formulario donde tienes el boton esta en el lado cliente y la bbdd esta en el lado servidor.

Luego debes mandar el formulario (action) para que el servidor reciba la petición, haga la consulta a la bbdd y retorne los datos obtenidos.

Para ello puedes mandarlo (action) a otro fichero php o al mismo donde tienes el formulario, solo tiene que ver si recibes el formulario y actuar en consecuencia. Si se recibe haces la consulta si no no.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 19/05/2014, 06:58
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Se puede hacer?

No te entiendo muy bien, ¿como hago eso exactamente?
Es que necesito varios botones como ese en la misma web, y cada vez que de a uno de ellos salga la query
Soy novata en esto del php... :(
  #4 (permalink)  
Antiguo 19/05/2014, 07:06
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Se puede hacer?

Hay infinidad de ejemplos

Tu crea este fichero llamado index.php cargalo en el localhost y mira que pasa

Código PHP:
Ver original
  1. <?php
  2.   if(isset($_POST["hola"])){
  3.      echo "Hola ".$_POST["hola"];
  4. }else{
  5.      echo "<form action='index.php' method='post'>\n".
  6.                    "<input type='hidden' id='hola' value='juliana2812'>\n".
  7.                    "<input type='submit' value='Dale al boton'/>\n".
  8.                 "</form>";
  9. }?>

En la primera parte del condicional puedes saludar o hacer cualquier otra cosa (como consultar una base de datos y mostrar el resultado).

Espero que te sirva.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 19/05/2014 a las 07:11
  #5 (permalink)  
Antiguo 19/05/2014, 07:16
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Se puede hacer?

No hace nada, le doy al botón y no sucede nada...
  #6 (permalink)  
Antiguo 19/05/2014, 07:20
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Se puede hacer?

Le falta el atributo name al input hidden xD

Código HTML:
<input type='hidden' id='hola' name='hola' value='juliana2812'> 
__________________
>> Eleazan's Source
>> @Eleazan
  #7 (permalink)  
Antiguo 19/05/2014, 07:35
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Se puede hacer?

Cierto.... y ahora funciona?

Código PHP:
Ver original
  1. <?php
  2.   if(isset($_POST["hola"])){
  3.      echo "Hola ".$_POST["hola"];
  4. }else{
  5.      echo "<form action='index.php' method='post'>\n".
  6.                    "<input type='hidden' id='hola'  name='hola' value='juliana2812'>\n".
  7.                    "<input type='submit' value='Dale al boton'/>\n".
  8.                 "</form>";
  9. }?>
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #8 (permalink)  
Antiguo 19/05/2014, 18:49
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Se puede hacer?

Vale, ya lo pillo, puedo poner un if por boton para que me ejecute el archivo php que haga la correspondiente query, pero cuando le doy al boton, al redirigir a otro archivo, el botón desaparece...
¿Hay alguna manera de que el botón siempre esté presente?
Algo como mostrar la query en la parte de abajo del navegador sin que se altere la de arriba o algo asi
  #9 (permalink)  
Antiguo 20/05/2014, 00:47
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Se puede hacer?

Cita:
al redirigir a otro archivo, el botón desaparece...
Puedes redirigir al mismo archivo.

Y ademas

Código PHP:
Ver original
  1. <?php
  2. //Aqui puedes poner lo que quieras que pase se cumpla o no la condición. El boton por ejemplo.
  3. if(isset($_POST["hola"])){
  4.          //Aqui pones lo que quieres que pase cuando se cumpla la condición
  5. }else{
  6.         //Aqui lo que debe pasar cuando NO se cumpla
  7. }
  8.     //Y nada te impide poner mas cosas aqui que pasaran siempre igual que las del principio.
  9. ?>
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #10 (permalink)  
Antiguo 20/05/2014, 02:49
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Se puede hacer?

Vale, se me ha ocurrido esto, sin If:

Código PHP:
<form name="formulario" method="post" action="ejemploPost2.php">
<input type="submit" name="tabla" value="Hotel">
<input type="submit" name="tabla" value="Reserva">
</form>
<?php
// Conectando, seleccionando la base de datos
$link mysql_connect('localhost''juliana''juliana')
    or die(
'No se pudo conectar: ' mysql_error());
echo 
'Connected successfully';
mysql_select_db('bd_syr'$link) or die('No se pudo seleccionar la base de datos');

// Realizar una consulta MySQL
$nombre $_POST['tabla'];
$query 'SELECT * FROM '.$nombre.'';
$result mysql_query($query) or die('Consulta fallida: ' mysql_error());

// Imprimir los resultados en HTML

echo "<table border=1>\n";
while (
$line mysql_fetch_array($resultMYSQL_ASSOC)) 
{
    echo 
"\t<tr>\n";
    foreach (
$line as $col_value
    {
        echo 
"\t\t<td>$col_value</td>\n";
    }
    echo 
"\t</tr>\n";
}
echo 
"</table>\n";


// Liberar resultados
mysql_free_result($result);

// Cerrar la conexión
mysql_close($link);
?>
Así mato dos pájaros de un tiro, y cuando doy al botón, paso la variable para que haga una query u otra.
Lo que pasa es que la primera vez que ejecuto el archivo php me da un error porque me dice que la variable $nombre está vacía, aunque si pincho en el botón, hace la query tal como quería.
¿Como evito ese error?
  #11 (permalink)  
Antiguo 20/05/2014, 02:54
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Se puede hacer?

Cambia esto:
Código PHP:
$nombre $_POST['tabla']; 
Por esto:
Código PHP:
if(isset($_POST['tabla'])) $nombre $_POST['tabla']; 
else 
$nombre "Hotel"//O el valor que quieras por defecto! 
Asi compruebas si has enviado datos... y sino, le das un valor predeterminado!

Saludos
__________________
>> Eleazan's Source
>> @Eleazan
  #12 (permalink)  
Antiguo 20/05/2014, 03:14
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Se puede hacer?

¿Y no podría estar vacío?
Querria que no se mostrara nada la primera vez
  #13 (permalink)  
Antiguo 20/05/2014, 03:22
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Se puede hacer?

Entonces, tendrás que hacer lo que te dijo @quimfv del if!
__________________
>> Eleazan's Source
>> @Eleazan
  #14 (permalink)  
Antiguo 20/05/2014, 12:37
 
Fecha de Ingreso: mayo-2014
Mensajes: 28
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Se puede hacer?

Perfecto, ya lo he logrado!!
Pero una última cosa...

Cuando saca los resultados de la consulta, me gustaría poner un link a la derecha de la línea que ponga "editar"
¿Como lo puedo hacer?

La parte donde creo que habría que meterlo es esta:
Código PHP:
// Imprimir los resultados en HTML

    
echo "<table border=1>\n";
    while (
$line mysql_fetch_array($resultMYSQL_ASSOC)) 
    {
        echo 
"\t<tr>\n";
        foreach (
$line as $col_value
        {
            echo 
"\t\t<td>$col_value</td>\n";
        }
        echo 
"\t</tr>\n";
    }
    echo 
"</table>\n"
Pero si tan solo pongo un echo "Editar", o sale al principio, o no sale, o sale en todas las celdas....
¿donde o como debería hacer?

Gracias de nuevo
  #15 (permalink)  
Antiguo 20/05/2014, 13:16
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Se puede hacer?

Código PHP:
Ver original
  1. // Imprimir los resultados en HTML
  2.  
  3.     echo "<table border=1>\n";
  4.     while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
  5.     {
  6.         echo "\t<tr>\n";
  7.         foreach ($line as $col_value)
  8.         {
  9.             echo "\t\t<td>$col_value</td>\n";
  10.         }
  11.         echo "\t\t<td><a href='---laURL---'>Editar</a></td>\n";
  12.         echo "\t</tr>\n";
  13.     }
  14.     echo "</table>\n";
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: html, mysql, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:39.