Foros del Web » Programando para Internet » PHP »

Consulta DB php y html conbinados

Estas en el tema de Consulta DB php y html conbinados en el foro de PHP en Foros del Web. Bueno he editado esto porque ya al menos veo los resultados en desorden pero bueno... La pregunta es la siguiente. Al buscar un registro por ...
  #1 (permalink)  
Antiguo 09/06/2009, 01:43
 
Fecha de Ingreso: abril-2009
Mensajes: 32
Antigüedad: 15 años
Puntos: 0
Consulta DB php y html conbinados

Bueno he editado esto porque ya al menos veo los resultados en desorden pero bueno...

La pregunta es la siguiente.
Al buscar un registro por codigo me aparece tal cual lo quiero pero al buscar por tabla se desordena que debo hacer.??

aca va el PHP...
Bueno aun me salen unos errorsillos que no he podido corregir por aquello de lo NOVATO pero ahi vamos ya con animos y en la lucha

Notice: Undefined index: curso in C:\wamp\www\conexion\consulta.php on line 37

Notice: Undefined index: codigo in C:\wamp\www\conexion\consulta.php on line 38

Notice: Undefined index: radio1 in C:\wamp\www\conexion\consulta.php on line 39

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\conexion\consulta.php on line 53

Asumo que espor que me toca seguir partiendome el coco y leer mas... bueno si me dicen donde por que no tengo papa de idea..


Este es el Codigo como funciona....
<html>
<Head>

<FORM name ="form1" METHOD="post"><br />
Seleccione Grupo:
<select name="curso">
<option value="php">php</option>
<option value="visual">visual</option>
<option value="excel">excel</option>
<option value="winword">winword</option>
</select><br />
<br />Codigo: <input type="text" name="codigo" />
<br />
<br><input type="radio" name="radio1" checked="checked" value="Por_codigo" />Codigo<br />
<input type="radio" name="radio1" value="all" />Todos <br />
<br /><input type="submit" name="operar" />

</form>
<?php
$curso=$_POST["curso"];//tomo los datos del formulario
$codigo=$_POST["codigo"];
$radio=$_POST["radio1"];
$conexion=mysql_connect("localhost","root","contra c") or die("Problemas en la conexion");//conecto a la DB
mysql_select_db("DB",$conexion) or die("Problemas en la selección de la base de datos");
/*si se elige en el radio por código y no se escribe código se informa;
si hay código se busca por él dentro de la tabla de curso que está en el selector;
en el resto de los casos se seleccionan todos los alumnos del curso seleccionado*/
if ($radio=="Por_codigo" && empty($codigo)) {
echo "debes escribir un código";}
else if ($radio=="Por_codigo" && isset($codigo) && !empty($codigo))
{
$sql = "SELECT Codigo,Nombre,Email,Pago1,Pago2,Pago3,Pago4 FROM $curso WHERE codigo = $codigo";
}
else {$sql="select * from $curso";}
$res=mysql_query($sql);
$tot=mysql_num_rows($res);
//Por si no hay datos le informo al usuario.
if ($tot==false){
echo "no hay resultados"; }
else
{
?>
<table border='1'>
<tr>
<th>Codigo</th>
<th>Nombre</th>
<th>Email</th>
<th>Pago 1</th>
<th>Pago 2</th>
<th>Pago 3</th>
<th>Pago 4</th>
</tr>
<tr>
<?php
while ($datos=mysql_fetch_assoc($res))
{ ?>
<td><?php echo $datos["Codigo"]; ?></td>
<td><?php echo $datos["Nombre"]; ?></td>
<td><?php echo $datos["Email"]; ?></td>
<td><?php echo $datos["Pago1"]; ?></td>
<td><?php echo $datos["Pago2"]; ?></td>
<td><?php echo $datos["Pago3"]; ?></td>
<td><?php echo $datos["Pago4"]; ?></td>
<?php }?>
</tr>
</table>

<?php } ?>



AH.... Otra cosilla si me pueden informar por fa donde debo leer para que las tablas que he puesto se vallan incrementando....
Bueno no se como esplicarlo si lo pueden correr veran el errorsillo si no es mucha molestia...

Gracias
  #2 (permalink)  
Antiguo 09/06/2009, 02:08
 
Fecha de Ingreso: junio-2009
Ubicación: Valencia
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: Consulta DB php y html conbinados

Hola nitramara,

En primer lugar voy a ayudarte con los errores que te salen, para que los quites:

Cita:
Iniciado por nitramara Ver Mensaje
Notice: Undefined index: curso in C:\wamp\www\conexion\consulta.php on line 37
Notice: Undefined index: codigo in C:\wamp\www\conexion\consulta.php on line 38
Notice: Undefined index: radio1 in C:\wamp\www\conexion\consulta.php on line 39
Estos en realidad no son errores, sino notificaciones. Te los muestra porque tienes puesto en la configuración de PHP (php.ini) que muestre los errores tipo E_NOTICE. De todas formas, te están indicando que no se encuentran $_POST['curso'], $_POST['codigo'] ni $_POST['radio1'] porque los índices no existen; es decir, no se están enviando las variables curso, codigo y radio1 por POST. Esto pasa la primera vez que se carga la página, ya que el usuario no ha seleccionado nada. Para solucionarlo debes comprobar antes si existen las variables:
Código PHP:
$curso = isset($_POST["curso"]) ? $_POST["curso"] : '';
$codigo = isset($_POST["codigo"]) ? $_POST["codigo"] : '';
$radio1 = isset($_POST["radio1"]) ? $_POST["radio1"] : ''
Cita:
Iniciado por nitramara Ver Mensaje
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\conexion\consulta.php on line 53
Si obtienes el número de filas con mysql_num_rows($res), antes debes comprobar que te ha devuelto un resultado (if ($res) {...}). Si la query no encuentra resultados, devuelve FALSE ($res = FALSE) y mysql_num_rows falla porque espera un objeto de resultados, en lugar de un valor booleano. Puedes también usar mysql_affected_rows($conexion), que indica el número de columnas afectadas en la última query.

Salu2,
Carlos.
  #3 (permalink)  
Antiguo 09/06/2009, 03:02
 
Fecha de Ingreso: abril-2009
Mensajes: 32
Antigüedad: 15 años
Puntos: 0
Respuesta: Consulta DB php y html conbinados

Ok carlos he hecho lo del isset la verdad no lo sabia.. gracias...

Por lo de mas lo de Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\conexion\consulta.php on line 53

intento entender esto pero nose quede super confundido... es decir..debo realizar una pregunta antes de esto..

Al hacer lo que me sigieres no estaria perdiendo el resto de codigo...

if ($tot==false){
echo "no hay resultados"; }...

Lo hice asi y me da error en la anterior linea ( IF )...

Ah... Gracias por tu ayuda en verdad..
  #4 (permalink)  
Antiguo 09/06/2009, 03:29
 
Fecha de Ingreso: junio-2009
Ubicación: Valencia
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: Consulta DB php y html conbinados

Perdona nitramara, quizás he querido resumir en exceso y por eso no se entiende muy bien mi respuesta. Además, te he dicho una cosa mal: mysql_affected_rows sólo sirve para sentencias INSERT, UPDATE o DELETE, pero no para SELECT. Disculpa la confusión.

Trataré de explicartelo mejor y más detalladamente.

Cuando haces una query a base de datos, te devuelve un valor con el que puedes identificar los resultados y trabajar con ellos:
Código PHP:
$res mysql_query($sql); 
El resultado que te digo se guarda en $res. Si la query no devuelve ningún resultado, $res se establece a FALSE, en lugar de contener los resultados, por lo que tienes que tener cuidado a la hora de trabajar con la variable $res, ya que puede no contener nada y puede generar errores. Antes de usar $res, por tanto, debes asegurarte de que ha devuelto algún resultado.

Para ver si ha obtenido algún resultado tú usas la función mysql_num_rows, pero esta función requiere que la query haya devuelto algún resultado, en caso cotrario, da un error. Es como la pescadilla que se muerde la cola: usas mysql_num_rows para saber si ha habido algún resultado, pero mysql_num_rows necesita que haya habido algún resultado para funcionar correctamente, ¿lo entiendes?

En resumen, para comprobar si ha habido algún resultado, basta con que compruebes si $res es FALSE o no; si lo es, no ha devuelto resultados y si no, sí los ha devuelto:

Código PHP:
if ($res != false)    // En este caso, esto es lo mismo que poner if($res)
{
    
// Si entra aquí es porque $res no es FALSE; es decir, ha devuelto resultados
    
$tot mysql_num_rows($res);    // Como $res no es FALSE, seguro que no falla
    
while ($datos=mysql_fetch_assoc($res))
    {
         
// ... código para generar la tabla 
    
}
}
else
{
    
// Si entra aquí es porque $res es FALSE; es decir, NO ha devuelto resultados
    
echo "no hay resultados";

Espero haberte quitado la confusión que te he provocado con la explicación anterior.

Salu2,
Carlos.
  #5 (permalink)  
Antiguo 09/06/2009, 04:29
 
Fecha de Ingreso: abril-2009
Mensajes: 32
Antigüedad: 15 años
Puntos: 0
Respuesta: Consulta DB php y html conbinados

OK super... Tu aclaracion si fue eso CLARA... he probado el codigo y me funciona con unas peque cosillas que he de depurar.. (te las digo no para que me las hagas sino por si tienes una sugerencias)
1. me muestra todo perfecto pero me repite los campos estaticos de la tabla..osea estos

<table border='1'>
<tr>
<th>Codigo</th>
<th>Nombre</th>
<th>Email</th>
<th>Pago 1</th>
<th>Pago 2</th>
<th>Pago 3</th>
<th>Pago 4</th>
</tr>
<tr>

se que es por que estan dentro del WHILE pero si los saco de alli no me muestra la tabla..?? no se..

2. crees que deba colocar a la tabla anchos especificos para que me muestre un orden lineal..??

Por lo demas perfecto y tucolaboracion genial...
  #6 (permalink)  
Antiguo 09/06/2009, 06:19
 
Fecha de Ingreso: junio-2009
Ubicación: Valencia
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: Consulta DB php y html conbinados

Cita:
Iniciado por nitramara Ver Mensaje
1. me muestra todo perfecto pero me repite los campos estaticos de la tabla..osea estos

<table border='1'>
<tr>
<th>Codigo</th>
<th>Nombre</th>
<th>Email</th>
<th>Pago 1</th>
<th>Pago 2</th>
<th>Pago 3</th>
<th>Pago 4</th>
</tr>
<tr>

se que es por que estan dentro del WHILE pero si los saco de alli no me muestra la tabla..?? no se..
Efectivamente te los repite por tenerlos dentro del while. Debes ponerlo antes del while, pero dentro del if que comprueba si hay registros.

Cita:
Iniciado por nitramara Ver Mensaje
2. crees que deba colocar a la tabla anchos especificos para que me muestre un orden lineal..??
No sé exáctamente a qué te refieres con "orden lineal", ¿puedes detallarlo más o ponerme un ejemplo?
  #7 (permalink)  
Antiguo 10/06/2009, 00:13
 
Fecha de Ingreso: abril-2009
Mensajes: 32
Antigüedad: 15 años
Puntos: 0
Respuesta: Consulta DB php y html conbinados

Oye ya he solucionado esto...
A lo que me referia con lineal es que todos independiente de la cantidad de caracteres fuesen iguales osea los campos nombres fuesen iguales indepenciente de que fueran mas largos los unos que los otros me explico...
Mira lo que he hecho es tal como me dijiste coloque estos campos asi:
echo"<table border=1 width=100%>";
$Codigo = "Codigo";
$Nombre = "Nombre";
$Email = 'Email';
$Pago1 = 'Pago1';
$Pago2 = 'Pago2';
$Pago3 = 'Pago3';
$Pago4 = 'Pago4';
echo "$codigo";

echo"<tr align=center><th>$Codigo</th>
<th>$Nombre</th>
<th>$Email</th>
<th>$Pago1</th>
<th>$Pago2</th>
<th>$Pago3</th>
<th>$Pago4</th>";

dentro del IF..... solo que ya no lo coloque como codigo html sino como PHP...
Bueno no se si este bien bajo los canones de la programacion.... pero funciona tal cual como yo queria...

Oye otra vez gracias ..... en verdad he aprendido mucho..

PD. si depronto tu o algun otro que siga este post me pueden guiar sobre como enviar un correo automatico en el evento que el pago aparezca (0)...

Última edición por nitramara; 10/06/2009 a las 00:16 Razón: olvide algo
  #8 (permalink)  
Antiguo 10/06/2009, 01:44
 
Fecha de Ingreso: junio-2009
Ubicación: Valencia
Mensajes: 45
Antigüedad: 14 años, 10 meses
Puntos: 8
Respuesta: Consulta DB php y html conbinados

Me alegro que los hayas solucionado. No te preocupes por los cánones de la programación porque el hecho de que pongas el HTML tal cual o lo generes con PHP es irrelevante. Debes usar la forma con la que más cómodo te sientas. Yo, personalmente, prefiero separar el HTML del PHP en la medida de lo posible, pero símplemente porque así puedo localizar con más facilidad el código HTML y detectar posibles errores de sintaxis.

En cuanto a lo de poner el mismo ancho para las columnas, yo te recomiendo que mejor ajustes el ancho de las columnas al contenido que van a tener (más o menos).

Salu2,
Carlos.
  #9 (permalink)  
Antiguo 11/09/2014, 17:09
 
Fecha de Ingreso: diciembre-2012
Mensajes: 16
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Consulta DB php y html conbinados

Gracias ruizdeeguilaz me sirvio tu respuesta para quitar mis errores.
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 14:35.