Foros del Web » Programando para Internet » PHP »

problema enviar dato combobox con datos mysql

Estas en el tema de problema enviar dato combobox con datos mysql en el foro de PHP en Foros del Web. Buenas, tengo un problema cuando selecciono un dato de un combobox que lleno de una columna desde una tabla de mysql, lo envio hacia otro ...
  #1 (permalink)  
Antiguo 06/02/2012, 10:04
 
Fecha de Ingreso: enero-2010
Mensajes: 18
Antigüedad: 14 años, 2 meses
Puntos: 0
problema enviar dato combobox con datos mysql

Buenas, tengo un problema cuando selecciono un dato de un combobox que lleno de una columna desde una tabla de mysql, lo envio hacia otro archivo php donde me muestre toda la informacion de la fila de la tabla en la base de datos, pero me tira un error en las lineas 2 y 46 del 2° php, entonces no se que pueda ser y si alguien me puede ayudar se lo agradeceria.

aca dejo el codigo del 1° php que toma los datos y los deja en el combobox

<?PHP
mysql_connect("localhost", "root", "") or die(mysql_error());//conexion a la base de datos
mysql_select_db("preproyecto") or die(mysql_error());
$query="SELECT nombre FROM vina ORDER BY numero asc";//genera consulta para la columna nombre
$result = mysql_query ($query);
echo "<form method='post' name='form1' action='recibe.php'>";//form donde se muestra el combobox
echo "<select name='nombre_cnl'>";
echo "<option value'0'>Nombre Canal</option>";
while($nt=mysql_fetch_array($result)){//Arreglo guarda los datos en la variable $nt
echo '<option value="'.$nt['nombre'].'">'.$nt['nombre'].'</option>';
}
echo "</select>";
echo "<input type='Submit' name='Submit' Value='Enviar' />";
echo "</form>";
?>

este es el código del 2° php que se llama recibe.php

<?php
$canal = $_POST['nt'];

mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("preproyecto") or die(mysql_error());
$query= "SELECT * FROM vina WHERE nombre=$canal";
$result = mysql_query ($query);

echo "<table border='1' STYLE='font-size:15px' id='datos'>";// Se crean los nombres de los campos de la tabla
echo "<thead>";
echo "<tr>";
echo "<td align='center'><b><u>N&uacute;mero</u></b></td>";
echo "<td align='center'><b><u>Nombre</u></b></td>";
echo "<td align='center'><b><u>Recepci&oacute;n</u></b></td>";
echo "<td align='center'><b><u>Codificaci&oacute;n</u></b></td>";
echo "<td align='center'><b><u>Conexi&oacute;n</u></b></td>";
echo "<td align='center'><b><u>Publicidad</u></b></td>";
echo "<td align='center'><b><u>Doble_Fuente</u></b></td>";
echo "<td align='center'><b><u>Receptor_Actual</u></b></td>";
echo "<td align='center'><b><u>Sat&eacute;lite</u></b></td>";
echo "<td align='center'><b><u>Polaridad</u></b></td>";
echo "<td align='center'><b><u>Unicaci&oacute;n</u></b></td>";
echo "<td align='center'><b><u>Unit_Rack</u></b></td>";
echo "<td align='center'><b><u>TMX</u></b></td>";
echo "<td align='center'><b><u>RIM</u></b></td>";
echo "<td align='center'><b><u>ASI</u></b></td>";
echo "<td align='center'><b><u>Mpeg</u></b></td>";
echo "<td align='center'><b><u>Resoluci&oacute;n</u></b></td>";
echo "<td align='center'><b><u>BW_Video</u></b></td>";
echo "<td align='center'><b><u>BW_Audio_1</u></b></td>";
echo "<td align='center'><b><u>Descriptor_A1</u></b></td>";
echo "<td align='center'><b><u>BW_Audio_2</u></b></td>";
echo "<td align='center'><b><u>Descriptor_A2</u></b></td>";
echo "<td align='center'><b><u>Versi&oacute;n_FW</u></b></td>";
echo "<td align='center'><b><u>Direcci&oacute;n</u></b></td>";
echo "<td align='center'><b><u>Mask</u></b></td>";
echo "<td align='center'><b><u>Gateway</u></b></td>";
echo "</tr>";
echo "</thead>";

while ($row = mysql_fetch_array($result)){ //se crea el while para ingresar los datos
//a la tabla segun los que existan en la tabla
echo "<tr><td align='center'>";
echo $row['numero'];
echo "</td><td align='center'>";
echo $row['nombre'];
echo "</td><td align='center'>";
echo $row['recepcion'];
echo "</td><td align='center'>";
echo $row['codificacion'];
echo "</td><td align='center'>";
echo $row['conexion'];
echo "</td><td align='center'>";
echo $row['publicidad'];
echo "</td><td align='center'>";
echo $row['doble_fuente'];
echo "</td><td align='center'>";
echo $row['receptor_actual'];
echo "</td><td align='center'>";
echo $row['satelite'];
echo "</td><td align='center'>";
echo $row['polaridad'];
echo "</td><td align='center'>";
echo $row['ubicacion'];
echo "</td><td align='center'>";
echo $row['unit_rack'];
echo "</td><td align='center'>";
echo $row['tmx'];
echo "</td><td align='center'>";
echo $row['rim'];
echo "</td><td align='center'>";
echo $row['asi'];
echo "</td><td align='center'>";
echo $row['mpeg'];
echo "</td><td align='center'>";
echo $row['resolucion'];
echo "</td><td align='center'>";
echo $row['bw_video'];
echo "</td><td align='center'>";
echo $row['bw_audio_1'];
echo "</td><td align='center'>";
echo $row['descriptor_a1'];
echo "</td><td align='center'>";
echo $row['bw_audio_2'];
echo "</td><td align='center'>";
echo $row['descriptor_a2'];
echo "</td><td align='center'>";
echo $row['version_fw'];
echo "</td><td align='center'>";
echo $row['direccion'];
echo "</td><td align='center'>";
echo $row['mask'];
echo "</td><td align='center'>";
echo $row['gateway'];
echo "</td></tr>";
}
?>


Saludos
  #2 (permalink)  
Antiguo 06/02/2012, 10:06
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: problema enviar dato combobox con datos mysql

1 - utilice la herramienta highlight del foro para mostrar código

2 - postee el texto completo del error

3 - en lo posible identifique con un comentario la línea del error

4 - consulte las políticas del foro
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 06/02/2012, 10:11
 
Fecha de Ingreso: enero-2010
Mensajes: 18
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: problema enviar dato combobox con datos mysql

Ok maycolalvarez arreglare los errores
  #4 (permalink)  
Antiguo 06/02/2012, 10:17
 
Fecha de Ingreso: enero-2010
Mensajes: 18
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: problema enviar dato combobox con datos mysql

aca dejo el codigo del 1° php que toma los datos y los deja en el combobox

Código PHP:
Ver original
  1. <?PHP
  2. mysql_connect("localhost", "root", "") or die(mysql_error());//conexion a la base de datos
  3. mysql_select_db("preproyecto") or die(mysql_error());
  4. $query="SELECT nombre FROM vina ORDER BY numero asc";//genera consulta para la columna nombre
  5. $result = mysql_query ($query);
  6. echo "<form method='post' name='form1' action='recibe.php'>";//form donde se muestra el combobox
  7. echo "<select name='nombre_cnl'>";
  8. echo "<option value'0'>Nombre Canal</option>";
  9. while($nt=mysql_fetch_array($result)){//Arreglo guarda los datos en la variable $nt
  10. echo '<option value="'.$nt['nombre'].'">'.$nt['nombre'].'</option>';
  11. }
  12. echo "</select>";
  13. echo "<input type='Submit' name='Submit' Value='Enviar' />";
  14. echo "</form>";
  15. ?>

este es el código del 2° php que se llama recibe.php

Código PHP:
Ver original
  1. <?php
  2. $canal = $_POST['nt'];
  3.  
  4. mysql_connect("localhost", "root", "") or die(mysql_error());
  5. mysql_select_db("preproyecto") or die(mysql_error());
  6. $query= "SELECT * FROM vina WHERE nombre=$canal";
  7. $result = mysql_query ($query);
  8.  
  9. echo "<table border='1' STYLE='font-size:15px' id='datos'>";// Se crean los nombres de los campos de la tabla
  10. echo "<thead>";
  11. echo "<tr>";
  12. echo "<td align='center'><b><u>N&uacute;mero</u></b></td>";
  13. echo "<td align='center'><b><u>Nombre</u></b></td>";
  14. echo "<td align='center'><b><u>Recepci&oacute;n</u></b></td>";
  15. echo "<td align='center'><b><u>Codificaci&oacute;n</u></b></td>";
  16. echo "<td align='center'><b><u>Conexi&oacute;n</u></b></td>";
  17. echo "<td align='center'><b><u>Publicidad</u></b></td>";
  18. echo "<td align='center'><b><u>Doble_Fuente</u></b></td>";
  19. echo "<td align='center'><b><u>Receptor_Actual</u></b></td>";
  20. echo "<td align='center'><b><u>Sat&eacute;lite</u></b></td>";
  21. echo "<td align='center'><b><u>Polaridad</u></b></td>";
  22. echo "<td align='center'><b><u>Unicaci&oacute;n</u></b></td>";
  23. echo "<td align='center'><b><u>Unit_Rack</u></b></td>";
  24. echo "<td align='center'><b><u>TMX</u></b></td>";
  25. echo "<td align='center'><b><u>RIM</u></b></td>";
  26. echo "<td align='center'><b><u>ASI</u></b></td>";
  27. echo "<td align='center'><b><u>Mpeg</u></b></td>";
  28. echo "<td align='center'><b><u>Resoluci&oacute;n</u></b></td>";
  29. echo "<td align='center'><b><u>BW_Video</u></b></td>";
  30. echo "<td align='center'><b><u>BW_Audio_1</u></b></td>";
  31. echo "<td align='center'><b><u>Descriptor_A1</u></b></td>";
  32. echo "<td align='center'><b><u>BW_Audio_2</u></b></td>";
  33. echo "<td align='center'><b><u>Descriptor_A2</u></b></td>";
  34. echo "<td align='center'><b><u>Versi&oacute;n_FW</u></b></td>";
  35. echo "<td align='center'><b><u>Direcci&oacute;n</u></b></td>";
  36. echo "<td align='center'><b><u>Mask</u></b></td>";
  37. echo "<td align='center'><b><u>Gateway</u></b></td>";
  38. echo "</tr>";
  39. echo "</thead>";
  40.  
  41. while ($row = mysql_fetch_array($result)){ //se crea el while para ingresar los datos
  42. //a la tabla segun los que existan en la tabla 
  43. echo "<tr><td align='center'>";
  44. echo $row['numero'];
  45. echo "</td><td align='center'>";
  46. echo $row['nombre'];
  47. echo "</td><td align='center'>";
  48. echo $row['recepcion'];
  49. echo "</td><td align='center'>";
  50. echo $row['codificacion']; 
  51. echo "</td><td align='center'>";
  52. echo $row['conexion'];
  53. echo "</td><td align='center'>";
  54. echo $row['publicidad'];
  55. echo "</td><td align='center'>";
  56. echo $row['doble_fuente'];
  57. echo "</td><td align='center'>";
  58. echo $row['receptor_actual'];  
  59. echo "</td><td align='center'>";
  60. echo $row['satelite']; 
  61. echo "</td><td align='center'>";
  62. echo $row['polaridad'];
  63. echo "</td><td align='center'>";
  64. echo $row['ubicacion'];
  65. echo "</td><td align='center'>";
  66. echo $row['unit_rack'];
  67. echo "</td><td align='center'>";
  68. echo $row['tmx'];  
  69. echo "</td><td align='center'>";
  70. echo $row['rim'];  
  71. echo "</td><td align='center'>";
  72. echo $row['asi'];  
  73. echo "</td><td align='center'>";
  74. echo $row['mpeg']; 
  75. echo "</td><td align='center'>";
  76. echo $row['resolucion'];   
  77. echo "</td><td align='center'>";
  78. echo $row['bw_video']; 
  79. echo "</td><td align='center'>";
  80. echo $row['bw_audio_1'];   
  81. echo "</td><td align='center'>";
  82. echo $row['descriptor_a1'];
  83. echo "</td><td align='center'>";
  84. echo $row['bw_audio_2'];   
  85. echo "</td><td align='center'>";
  86. echo $row['descriptor_a2'];
  87. echo "</td><td align='center'>";
  88. echo $row['version_fw'];   
  89. echo "</td><td align='center'>";
  90. echo $row['direccion'];
  91. echo "</td><td align='center'>";
  92. echo $row['mask']; 
  93. echo "</td><td align='center'>";
  94. echo $row['gateway'];
  95. echo "</td></tr>"; 
  96. }
  97. ?>

Donde me lanza los errores es en:

* $canal = $_POST['nt'];
Notice: Undefined index: nt in C:\wamp\www\ejemplos\recibe.php on line 2

*while ($row = mysql_fetch_array($result)){

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\ejemplos\recibe.php on line 41

Saludos
  #5 (permalink)  
Antiguo 06/02/2012, 10:23
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: problema enviar dato combobox con datos mysql

el select tiene el nombre nombre_cnl y éstas pidiendo: $canal = $_POST['nt'];
por ello el primer error que dice que dicho indice no existe (debe interpretar los errores por su cuenta en el futuro )

aplique un var_dump($_POST); para que vea como exactamente le llegan los datos a PHP
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #6 (permalink)  
Antiguo 06/02/2012, 12:08
 
Fecha de Ingreso: enero-2010
Mensajes: 18
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: problema enviar dato combobox con datos mysql

maycolalvarez aplique el var_dump($_POST); ademas de cambiar las variables en el codigo, quedo asi


Código PHP:
Ver original
  1. <?php
  2. $canal = $_POST['nombre_cnl'];
  3. var_dump($_POST);
  4.  
  5. mysql_connect("localhost", "root", "") or die(mysql_error());
  6. mysql_select_db("preproyecto") or die(mysql_error());
  7. $query= "SELECT * FROM vina WHERE nombre=$canal";
  8. $result = mysql_query ($query);

Pero aun asi me sigue lanzando un error que es el siguiente:

array(2) { ["nombre_cnl"]=> string(11) "TV ESPANOLA" ["Submit"]=> string(6) "Enviar" }

Por lo que deduzco debe ser porque cuando envia el valor lo transforma en un string de largo 6, entonces trunca el valor y no lo reconoce en la base de datos. Entonces mi duda es si eso se puede modificar o alguna otra solucion si alguien me pudiese ayudar.

Saludos
  #7 (permalink)  
Antiguo 06/02/2012, 12:23
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: problema enviar dato combobox con datos mysql

el var_dump es sólo para verificar los datos, debe de eliminarlo cuando no lo use

le está devolviendo exactamente lo que colocó en el value del option, si se fija:

echo '<option value="'.$nt['nombre'].'">'.$nt['nombre'].'</option>';

en ambos casos coloca nombre, deberia, según lo que entiendo colocar el ID de la tabla en el value, algo así:

echo '<option value="'.$nt['id'].'">'.$nt['nombre'].'</option>';
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #8 (permalink)  
Antiguo 06/02/2012, 12:28
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 9 meses
Puntos: 27
Respuesta: problema enviar dato combobox con datos mysql

que error te da ahora?
  #9 (permalink)  
Antiguo 06/02/2012, 13:09
 
Fecha de Ingreso: enero-2010
Mensajes: 18
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: problema enviar dato combobox con datos mysql

Gracias por la ayuda maycolalvarez me sirvo harto, ademas que ahora entiendo un poco mas como funcionan las variables cuando se envian.

luis010182 lo que me sale ahora es un error en el while para ingresar los datos que encuentra en la base de datos en la tabla que genero. El codigo es este:

Código PHP:
Ver original
  1. var_dump($result);
  2.     while ($row = mysql_fetch_array($result)){

el error que me lanza es el siguiente:

bool(false)
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\ejemplos\recibe.php on line 42


utilice el "var_dump" para verificar la información y retorna false, por lo cual no se que pueda estar malo en el código.
Ojala me puedan ayudar con ese error.

Saludos
  #10 (permalink)  
Antiguo 06/02/2012, 14:10
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: problema enviar dato combobox con datos mysql

error de sintaxis SQL seguro, se le olvido delimitar la cadena dentro del SQL, con comillas simples:

$query= "SELECT * FROM vina WHERE nombre='$canal'";
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #11 (permalink)  
Antiguo 07/02/2012, 10:40
 
Fecha de Ingreso: enero-2010
Mensajes: 18
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: problema enviar dato combobox con datos mysql

maycolalvarez gracias por la ayuda pero sigue sin mostrarme la informacion de la base de datos en tabla, solo me muestra el encabezado que lo genero de forma manual pero no muestra los datos.

Saludos
  #12 (permalink)  
Antiguo 09/02/2012, 18:53
 
Fecha de Ingreso: febrero-2012
Mensajes: 75
Antigüedad: 12 años, 2 meses
Puntos: 6
Respuesta: problema enviar dato combobox con datos mysql

Cita:
Iniciado por maycolalvarez Ver Mensaje
error de sintaxis SQL seguro, se le olvido delimitar la cadena dentro del SQL, con comillas simples:

$query= "SELECT * FROM vina WHERE nombre='".$canal."'";
Pon puntos para concatenar la cadena de caracteres. Prueba haber.
__________________
Si quieres conseguir resultados diferentes no hagas siempre lo mismo.

Mejora tu entorno. MestralCadiz con su comunidad.
  #13 (permalink)  
Antiguo 09/02/2012, 19:46
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: problema enviar dato combobox con datos mysql

Cita:
Iniciado por caperutxa Ver Mensaje
Pon puntos para concatenar la cadena de caracteres. Prueba haber.
No hace falta concatenar, en comillas dobles se interpretan las variables...

Código PHP:
Ver original
  1. $query= "SELECT * FROM vina WHERE nombre='$canal'";

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: combobox, dato, mysql, sql, tabla, variables
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 02:59.