Foros del Web » Programación para mayores de 30 ;) » Programación General »

Ayuda generando consultas en db

Estas en el tema de Ayuda generando consultas en db en el foro de Programación General en Foros del Web. buenas que funcion del php utilizo para lo siguiente: desde un formulario pido los datos <form action="2.php" method="POST"> Nombre: <input type="text" name="nombre"> Telefono: <input type="text" ...
  #1 (permalink)  
Antiguo 09/08/2008, 20:56
 
Fecha de Ingreso: agosto-2008
Mensajes: 48
Antigüedad: 16 años, 4 meses
Puntos: 0
Ayuda generando consultas en db

buenas que funcion del php utilizo para lo siguiente:

desde un formulario pido los datos

<form action="2.php" method="POST">
Nombre: <input type="text" name="nombre">
Telefono: <input type="text" name="tel">

Luego en el otro archivo inserto los datos y los mete en la bd despues cuando alguien mande ... Le ponga por default 0 y en el panel de administracion poner que cuando clickees en Aprobar comentario .. con un update .. le ponga 1 al "approved "

y Luego mostrar todos los registros de la bd en un formato por ejemplo html, podrian decirme las funciones o algo asi? para empezar a probar codigo, soy muy inexperto en el php y el mysql hasta ahora solo habia manejado funciones del tipo


fwrite($fichero, "\n$nombre\n$telefono\n");
fclose($fichero);
}

para escribir en ficheros simples de texto, pero esto con bases de datos representa mas dificultad para mi, gracias.
  #2 (permalink)  
Antiguo 11/08/2008, 09:25
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 5 meses
Puntos: 416
Respuesta: Ayuda generando consultas en db

Digamos que tienes una base de datos con los siguientes campos: ID, Nombre, Telefono y Aprobado

Entonces en el archivo 2.php pones algo asi:

Código PHP:
<?php
//Conexion a la base de datos
require_once('conexion.php');

//Esto es para evitar inyecciones SQL
$nombre mysql_real_escape_string($_POST['nombre']);
$telefono mysql_real_escape_string($_POST['telefono']);

//Insertamos los datos:
$insert "INSERT INTO tabla (nombre, telefono, aprobado) VALUES ('".$nombre."', '".$telefono."', '0')";
if(
mysql_query($insert)) 
{
//Datos insertados correctamente, si quieres puedes mostrar un mensaje o redireccionar con Header
header("Location: index.php");
}
else {
//Los datos no pudieron ser insertados correctamente
}
?>
Eso seria todo para insertar los datos en la BD.

Entonces para la parte de administracion haces algo como lo siguiente:
Llamemos a esta pagina: aprobar_comment.php (O como lo desees)

Código PHP:
<?php
require_once('conexion.php');

//Creamos una consulta para filtrar los datos y un bucle para mostrarlos todos:
$select "SELECT * FROM tabla WHERE Aprobado = '0'";
$query mysql_query($select) or die(mysql_error());

while (
$row mysql_fetch_assoc($query)) {
echo 
$row['Nombre']."<br>";
echo 
$row['Telefono']."<br>";
echo 
'<a href="aprobar.php?ID='.$row['ID'].'">Aprobar</a><br>';
echo 
'<a href="rechazar.php?ID='.$row['ID'].'">Rechazar</a><br><br>';
}
?>
Ahora tendremos que crear las paginas para aprobar o rechazar el comentario:

Esta es para aprobar el comentario:
Código PHP:
<?php
require_once('conexion.php');

if(isset(
$_GET['ID']))
{
$update "UPDATE tabla SET Aprobado = 1 WHERE ID = '".$_GET['ID']."'";
if(
mysql_query($update))
{
//echo "Comentario agregado satisfactoriamente.";
header("Location: aprobar_comment.php");
}
else {
echo 
"El comentario no pudo ser aprobado o el ID suministrado es incorrecto.";
}
}
else {
echo 
"No especifico ningun ID.";
}
?>
Ahora la pagina de rechazar es muy similar, a excepcion de el QUERY, donde en vez de un UPDATE, simplemente borraremos la entrada.

Código PHP:
<?php
require_once('conexion.php');

if(isset(
$_GET['ID']))
{
$delete "DELETE * FROM tabla WHERE ID = '".$_GET['ID']."'";
if(
mysql_query($delete))
{
//echo "Comentario agregado satisfactoriamente.";
header("Location: aprobar_comment.php");
}
else {
echo 
"El comentario no pudo ser rechazado o el ID suministrado es incorrecto.";
}
}
else {
echo 
"No especifico ningun ID.";
}
?>
Supongo que ya tienes el area de administracion, asi ningun usuario indeseado entraria a tu sistema. Solo te faltaria adaptarlo al codigo que te di mas arriba.

Espero que te sirva :)

Nota*: Aveces se me olvidan algunos puntos y comas (;) y otros caracteres. Si te da algun error, mandame un mensaje privado para revisar el codigo. :) Hasta luego

Última edición por Ronruby; 03/09/2008 a las 14:22
  #3 (permalink)  
Antiguo 11/08/2008, 09:27
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 5 meses
Puntos: 416
Respuesta: Ayuda generando consultas en db

Ahhhh! casi se me olvida.
Para mostrar los comentarios aprobados solo haces un archivo con un QUERY como este:

"SELECT * FROM tabla WHERE Aprobado=1"

Asi solo muestras los comentarios aprobados. Recuerda usar un bucle para mostrarlos todos.
  #4 (permalink)  
Antiguo 14/08/2008, 06:01
 
Fecha de Ingreso: agosto-2008
Mensajes: 48
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Ayuda generando consultas en db

Buenas, tengo el siguiente codigo que ronruby me hizo favor de practicamente hacer entero con la finalidad de generar un sistema de comentarios con sistema de aprobarlos o rechazarlos desde un panel de administracion "Administrando_comments.php" y despues mostrarlos en otro lugar sea pues por ejemplo "Mostrar_comments.php" pero tengo un problema al momento de mostrar los datos de la base de datos valga la redundancia ya que por ejemplo tenemos que el formulario escribe los siguientes datos en la base de datos


<form action="2.php" method="POST">
Nombre: <input type="text" name="nombre">
Telefono: <input type="text" name="telefono">&nbsp;
<input type="submit" value="Enviar" name="B1">



Hasta ahi todo bien, escribe los datos de forma correcta haciendo uso del codigo de "2.php" pero a la hora de pasarme al area "Administrando_comments.php" me doy cuenta que los datos de la base de datos no se muestran ahi...pero en la tabla del mysql si estan escritos, ok pero permitanme terminar de explicar esto a detalle...el problema no radica ahi, el problema es que cuando haces una entrada por segunda ocasion en el formulario, pues ya aparece en "Aprobar_comments.php" y luego, cuando le das "aprobar comentario" se tendria que ir a la parte de "Mostrar_comentarios.php" pero esto no sucede...es decir no los muestra, pero otra vez se repite el error, haces una tercera llamada a "Aprobar comentario" y entonces ya se muestran los datos...es un error algo raro y no se si me explique bien, en resumen el codigo funciona sin problemas, hace lo que deberia hacer, pero tiene ese pequeño detalle o inconveniente o error, lo que sea, QUE SE SALTA LA PRIMERA ENTRADA QUE UNO INGRESA o_O

Sea pues que pones por ejemplo

Nombre: pepe
Telefono: 333333

Enviar

y nos devuelve, ENVIADO CORRECTAMENTE !! ( y en efecto se escriben los datos en la tabla en el mysql)


te vas a "aprobar_comentarios.php" y no aparecen los datos...

Entonces te regresas a la pagina de "Comentarios.html" vuelves a meter

Nombre: pepe_numero2
Telefono: 4444444

y nos devuelve, ENVIADO CORRECTAMENTE !! ( y en efecto se escriben los datos en la tabla en el mysql)

te vas a "aprobar_comentarios.php" y ya aparecen los datos o_o


Osea se salto la primer linea de los datos en la tabla de la base de datos y empezo a mostrarme los datos a partir de la segunda linea con los datos de la tabla, esto esta muy raro, es normal ? xD no creo pero esque no se donde este mi error.... pego aqui el codigo que estoy utilizando en "Aprobar_comments.php" pues ese es el que se encarga de mostrar los datos de la tabla en la base de datos y puede que ahi este mi error...

======= Aprobar_comments.php =========


<?php
//conexion a la base de datos

require_once('conexion.php');

//Creamos una consulta para filtrar los datos y un bucle para mostrarlos todos:
$select = "SELECT * FROM tabla WHERE Aprobado = '0'";
$query = mysql_query($select) or die(mysql_error());
$row = mysql_fetch_assoc($query);

while ($row = mysql_fetch_assoc($query)) {
echo $row['Nombre']."<br>";
echo $row['Telefono']."<br>";
echo '<a href="aprobar.php?ID='.$row['ID'].'">Aprobar</a><br>';
echo '<a href="rechazar.php?ID='.$row['ID'].'">Rechazar</a><br><br>';
}
?>





y este es el codigo del archivo "2.php" que se encarga de escribir los datos en la tabla


<?php

include('conexion.php');

//Conexion a la base de datos
require_once('conexion.php');

//Insertamos los datos:
$insert = "INSERT INTO tabla (Nombre, Telefono, Aprobado) VALUES ('".mysql_real_escape_string($_POST['nombre'])."', '".mysql_real_escape_string($_POST['telefono'])."', '0')";
$result = mysql_query($insert) or die(mysql_error());

if(!$result)
{
echo "Los datos no pudieron ser insertados";
}
else {
//Datos insertados correctamente, si quieres puedes mostrar un mensaje o redireccionar con Header
header("Location: sistema.html");
}
?>



Ojala ustedes puedan ayudarme a encontrar el porque pasa esto y como solucionarlo, para ya no estar molestando tanto a ronruby que tan amable se ah portado ya, gracias !
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:42.