Foros del Web » Programando para Internet » PHP »

Error al llenar un combobox con datos de una DB !!!

Estas en el tema de Error al llenar un combobox con datos de una DB !!! en el foro de PHP en Foros del Web. Buenas, tengo una duda fijense que deseo cargar un combobox con unos datos de una DB, y tengo el codigo siguiente: Código: <?php $server = ...
  #1 (permalink)  
Antiguo 12/07/2013, 10:49
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Pregunta Error al llenar un combobox con datos de una DB !!!

Buenas, tengo una duda fijense que deseo cargar un combobox con unos datos de una DB, y tengo el codigo siguiente:

Código:
<?php
$server     = 'localhost'; //servidor
$username   = 'root'; //usuario de la base de datos
$password   = ''; //password del usuario de la base de datos
$database   = 'kosys'; //nombre de la base de datos
 
$c = @new mysqli($server, $username, $password, $database);
 
if ($c->connect_error) //verificamos si hubo un error al conectar, recuerden que pusimos el @ para evitarlo
{
    die('Error de conexión: ' . $conexion->connect_error); //si hay un error termina la aplicación y mostramos el error
}
 
$sql="SELECT * from rubros order by id";
$result = $c->query($sql); //usamos la conexion para dar un resultado a la variable
 
if ($result->num_rows > 0) //si la variable tiene al menos 1 fila entonces seguimos con el codigo
{
    $combobit="";
    while ($row = $result->fetch_array(MYSQLI_ASSOC)) 
    {
        $combobit .=" <option value='".$row['id']."'>".$row['nombre']."</option>"; //concatenamos el los options para luego ser insertado en el HTML
    }
}
else
{
    echo "No hubo resultados";
}

?>
<html>
<head>
<title>Llenar un Combobox/Select con registros de una Tabla</title>
<link href="contactos.css" rel="stylesheet" type="text/css" />
</head>
<body>
   <select name="estado">
       <?php echo $combobit; ?>
   </select>
</body>
</html>
El resultado es el deseado, pero ese es un ejemplo que consegui para hacer mi sistema, y como estoy usando XAJAX cuando pongo el codigo me da un error de



Y no continua, ya he buscado mucho pero no encuentro que mas hacer, he cambiado variables, coneciones pero dice que necesito un espacion en blanco ????

El codigo mio es el siguiente:


Código:
function registro() 
	{
		include("conexion.php");   
		mysql_select_db("kosys", $c);
				
	$sql="SELECT * from rubros order by id";   <== Aca hago el select !!!!
		$result = $c->mysql_query($sql); <== El error lo da en esta linea !!!
		if ($result->num_rows > 0) { 
		$combobit="";
		while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
        $combobit .=" <option value='".$row['id']."'>".$row['nombre']."</option>";
			}
		}
		else {
			echo "No hubo resultados";
		}
	
		$datos = "
		<table width='900px' height='225px' align='left'>
      <tr>
        <td>
          <fieldset>
            <legend>
              <font color='#000000' style='font-family: Comic Sans MS;'>
                ..:: Registro Nuevo Producto ::..
              </font>
            </legend>
            <br/>
            <form method='get' action='' name='admin' id='admin' >
              <table width='100%'>
                <tr>
                  <td>
                    <b>Nombre:
	</b><input type='text' name='nombre' size='50' maxlenght='100' class='caja' style='padding: 0.3em;'/> <br>
                  </td>
				  <td>
                    <b>Descripcion:
		</b><input type='text' name='descripcion' size='50' maxlenght='200' class='caja' style='padding: 0.3em;'/> <br>
                  </td>
                </tr>
                <tr>
                  <td>
                    <b>Rubro:
	<select name='rubro' class='caja'> 
	  echo $combobit;    <== Aca quiero que lo imprima !!!!
	</select>
                  </td>
                  <td>
                    <b>NIT:</b><br/>
                    <input type='text' name='nit' size='20' maxlenght='20' class='caja' style='padding: 0.3em;'/><br><br>
                  </td>
                </tr>
                <tr>
                  <td>
                    <b>Tel&eacute;fono:</b><br/>
                    <input type='text' name='tel' size='20' maxlenght='9' class='caja' style='padding: 0.3em;'/>
                  </td>
                  <td>
                    <b>Codigo UGB:</b><br/>
                    <input type='text' name='ugb' size='10' maxlenght='10' class='caja' style='padding: 0.3em;'/><br><br>
                  </td>
                </tr>
                
				<tr>
                  <td align='center'><br/>
                    <input type='button' value='Registrar' onclick=\"xajax_insert_alumno(xajax.getFormValues('admin'))\" name='registrar' style='padding:0.3em;'/>
                    <input type='reset' value='Limpiar' name='limpiar' style='padding:0.3em;'/>
                    <input type='button' value='Cancelar' onclick='xajax_inicio()' name='cancelar' style='padding:0.3em;'/><br><br>
                  </td>
                </tr>
              </table>
            </form>
          </fieldset>
        </td>
      </tr>
		</table>
	";
	$res = new xajaxResponse('ISO-8859-1');
	$res->addAssign("contenido","innerHTML",$datos);
	return $res->getXML();
	}
Ya he buscado y nada espero me ayuden por favor Creen que sea algo que no se pueda solucionar o me aconsejan dejar de usar xajax ?? ya que creo que eso es lo que no deja que el combo se llene como debe de ser.

El sistema es para inventarios (es pequeño) estoy en el inicio necesito hacer el carrito de compras y si xajax me dara problemas no se si seguir con el ustedes que recomiendan ???

Puedo sibirles el proyecto si asi lo desean !!!

Gracias desde ya
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #2 (permalink)  
Antiguo 12/07/2013, 11:00
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Error al llenar un combobox con datos de una DB !!!

Cita:
Iniciado por KATHYU Ver Mensaje
Buenas, tengo una duda fijense que deseo cargar un combobox con unos datos de una DB, y tengo el codigo siguiente:

Código:
<?php
$server     = 'localhost'; //servidor
$username   = 'root'; //usuario de la base de datos
$password   = ''; //password del usuario de la base de datos
$database   = 'kosys'; //nombre de la base de datos
 
$c = @new mysqli($server, $username, $password, $database);
 
if ($c->connect_error) //verificamos si hubo un error al conectar, recuerden que pusimos el @ para evitarlo
{
    die('Error de conexión: ' . $conexion->connect_error); //si hay un error termina la aplicación y mostramos el error
}
 
$sql="SELECT * from rubros order by id";
$result = $c->query($sql); //usamos la conexion para dar un resultado a la variable
 
if ($result->num_rows > 0) //si la variable tiene al menos 1 fila entonces seguimos con el codigo
{
    $combobit="";
    while ($row = $result->fetch_array(MYSQLI_ASSOC)) 
    {
        $combobit .=" <option value='".$row['id']."'>".$row['nombre']."</option>"; //concatenamos el los options para luego ser insertado en el HTML
    }
}
else
{
    echo "No hubo resultados";
}

?>
<html>
<head>
<title>Llenar un Combobox/Select con registros de una Tabla</title>
<link href="contactos.css" rel="stylesheet" type="text/css" />
</head>
<body>
   <select name="estado">
       <?php echo $combobit; ?>
   </select>
</body>
</html>
El resultado es el deseado, pero ese es un ejemplo que consegui para hacer mi sistema, y como estoy usando XAJAX cuando pongo el codigo me da un error de



Y no continua, ya he buscado mucho pero no encuentro que mas hacer, he cambiado variables, coneciones pero dice que necesito un espacion en blanco ????

El codigo mio es el siguiente:


Código:
function registro() 
	{
		include("conexion.php");   
		mysql_select_db("kosys", $c);
				
	$sql="SELECT * from rubros order by id";   <== Aca hago el select !!!!
		$result = $c->mysql_query($sql); <== El error lo da en esta linea !!!
		if ($result->num_rows > 0) { 
		$combobit="";
		while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
        $combobit .=" <option value='".$row['id']."'>".$row['nombre']."</option>";
			}
		}
		else {
			echo "No hubo resultados";
		}
	
		$datos = "
		<table width='900px' height='225px' align='left'>
      <tr>
        <td>
          <fieldset>
            <legend>
              <font color='#000000' style='font-family: Comic Sans MS;'>
                ..:: Registro Nuevo Producto ::..
              </font>
            </legend>
            <br/>
            <form method='get' action='' name='admin' id='admin' >
              <table width='100%'>
                <tr>
                  <td>
                    <b>Nombre:
	</b><input type='text' name='nombre' size='50' maxlenght='100' class='caja' style='padding: 0.3em;'/> <br>
                  </td>
				  <td>
                    <b>Descripcion:
		</b><input type='text' name='descripcion' size='50' maxlenght='200' class='caja' style='padding: 0.3em;'/> <br>
                  </td>
                </tr>
                <tr>
                  <td>
                    <b>Rubro:
	<select name='rubro' class='caja'> 
	  echo $combobit;    <== Aca quiero que lo imprima !!!!
	</select>
                  </td>
                  <td>
                    <b>NIT:</b><br/>
                    <input type='text' name='nit' size='20' maxlenght='20' class='caja' style='padding: 0.3em;'/><br><br>
                  </td>
                </tr>
                <tr>
                  <td>
                    <b>Tel&eacute;fono:</b><br/>
                    <input type='text' name='tel' size='20' maxlenght='9' class='caja' style='padding: 0.3em;'/>
                  </td>
                  <td>
                    <b>Codigo UGB:</b><br/>
                    <input type='text' name='ugb' size='10' maxlenght='10' class='caja' style='padding: 0.3em;'/><br><br>
                  </td>
                </tr>
                
				<tr>
                  <td align='center'><br/>
                    <input type='button' value='Registrar' onclick=\"xajax_insert_alumno(xajax.getFormValues('admin'))\" name='registrar' style='padding:0.3em;'/>
                    <input type='reset' value='Limpiar' name='limpiar' style='padding:0.3em;'/>
                    <input type='button' value='Cancelar' onclick='xajax_inicio()' name='cancelar' style='padding:0.3em;'/><br><br>
                  </td>
                </tr>
              </table>
            </form>
          </fieldset>
        </td>
      </tr>
		</table>
	";
	$res = new xajaxResponse('ISO-8859-1');
	$res->addAssign("contenido","innerHTML",$datos);
	return $res->getXML();
	}
Ya he buscado y nada espero me ayuden por favor Creen que sea algo que no se pueda solucionar o me aconsejan dejar de usar xajax ?? ya que creo que eso es lo que no deja que el combo se llene como debe de ser.

El sistema es para inventarios (es pequeño) estoy en el inicio necesito hacer el carrito de compras y si xajax me dara problemas no se si seguir con el ustedes que recomiendan ???

Puedo sibirles el proyecto si asi lo desean !!!

Gracias desde ya
¿el último código es una función o un método por estar dentro de un objeto?

si no es un método ¿cómo instancias el objeto para que $c tenga algún valor?
  #3 (permalink)  
Antiguo 12/07/2013, 11:27
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Error al llenar un combobox con datos de una DB !!!

Cita:
Iniciado por guardarmicorreo Ver Mensaje
¿el último código es una función o un método por estar dentro de un objeto?

si no es un método ¿cómo instancias el objeto para que $c tenga algún valor?
Vere si comprendi, el ultimo codico es una funcion de xajax, y $c es el valor de la conexion

Código:
include("conexion.php");
		mysql_select_db("kosys", $c);
Porq en el ejemplo de arriba usan la conexion para establecer el vinculo o yo tengo algo malo en eso ???

Tambien esta el hecho de donde debo presentar el combo:

Código:
<td>
Rubro:
	<select name='rubro' class='caja'>
	 echo $combobit;
	</select>
</td>
Sera que tengo algo malo en el codigo ??

PD: El foro se cae seguido ??
Cada vez que haga un mensaje o responda debo poner el captcha o es porq voy iniciando ??

__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #4 (permalink)  
Antiguo 12/07/2013, 12:40
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Error al llenar un combobox con datos de una DB !!!

Muestra tu script de conexión y no olvides ocultar tus datos personales ahí.

Por cierto, es más fácil leer texto negro que rojo.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 12/07/2013, 13:02
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Error al llenar un combobox con datos de una DB !!!

Cita:
Iniciado por Triby Ver Mensaje
Muestra tu script de conexión y no olvides ocultar tus datos personales ahí.

Por cierto, es más fácil leer texto negro que rojo.
Código:
<?php
	$c =  mysql_connect("localhost","root","") or die(mysql_error());
?>
Ese es pero porq cree que sea la conexion que esta mal ?? si en el ejemplo funciona perfectamente
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #6 (permalink)  
Antiguo 12/07/2013, 13:06
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Error al llenar un combobox con datos de una DB !!!

Lo que pasa es que la librería mysql funciona en base a procedimientos y estás tratando de ejecutar la consulta como si fuera un objeto, entonces, deberías hacer algo como esto:

Código PHP:
Ver original
  1. $resultados = mysql_query('aquí tu consulta', $c), or die(mysql_error());
  2.  
  3. // Para saber el número de registros:
  4. if(mysql_num_rows($resultados) {
  5. }
  6.  
  7. // Para leer los registros:
  8. $row = mysql_fetch_assoc($resultados);
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 12/07/2013, 13:25
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Error al llenar un combobox con datos de una DB !!!

El detalle es que al hacer eso da error de: Warning : mysql_fetch_assoc() expects parameter 1 to be resourse, null given in line 55 (que es la linea decodio)

Lo pongo asi primero:

Código:
$result = mysql_query("SELECT id,nombre from rubros order by id") or die(mysql_error()); //usamos la conexion para dar un resultado a la variable
		if (mysql_num_rows($result)) { //si la variable tiene al menos 1 fila entonces seguimos con el codigo
		$combobit="";
		while ($row = mysql_fetch_assoc($resultados)) {
        $combobit .=" <option value='".$row['id']."'>".$row['nombre']."</option>"; //concatenamos el los options para luego ser insertado en el HTML
			}
		}
Y nada, luego asi:

Código:
	$sql="SELECT id,nombre from rubros order by id";
		$result = mysql_query($sql) or die(mysql_error()); //usamos la conexion para dar un resultado a la variable
		if (mysql_num_rows($result)) { //si la variable tiene al menos 1 fila entonces seguimos con el codigo
		$combobit="";
		while ($row = mysql_fetch_assoc($resultados)) {
        $combobit .=" <option value='".$row['id']."'>".$row['nombre']."</option>"; //concatenamos el los options para luego ser insertado en el HTML
			}
		}
Y aun nada

Digame algo esto es por el uso de xajax o no ?? esq muchos errores estan saliendo y queria saber si al usar solo php daria igual ?? porq en el ejemplo primero que puse el combo bien se llena con esos datos !!!!
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #8 (permalink)  
Antiguo 12/07/2013, 16:51
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Error al llenar un combobox con datos de una DB !!!

A ver, si ejecutas la consulta con $result, debes leerla en mysql_fetch_assoc también con $result, en el ejemplo puse $resultados sólo para mostrar el uso de la función, no debes copiar y pegar sin analizar.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 12/07/2013, 19:17
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Error al llenar un combobox con datos de una DB !!!

Cita:
Iniciado por Triby Ver Mensaje
A ver, si ejecutas la consulta con $result, debes leerla en mysql_fetch_assoc también con $result, en el ejemplo puse $resultados sólo para mostrar el uso de la función, no debes copiar y pegar sin analizar.
Sorry el codigo que puse no estaba totalmente actualizado si uso result en el codigo:

Código:
include("conexion.php");
		mysql_select_db("kosys");
				
	$sql="SELECT id,nombre from rubros order by id";
		$result = $c->mysqli_query($sql); //usamos la conexion para dar un resultado a la variable
		if (mysql_num_rows($result)) { //si la variable tiene al menos 1 fila entonces seguimos con el codigo
		$combobit="";
		while ($row = mysql_fetch_assoc($result)) {
        $combobit .=" <option value='".$row['id']."'>".$row['nombre']."</option>"; //concatenamos el los options para luego ser insertado en el HTML
			}
		}
Pero igual da el codigo de la imagen que puse en el primer post !!!



Estoy pensando en quitar todo el xajax para ver si por ahi anda el asunto.
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #10 (permalink)  
Antiguo 12/07/2013, 19:22
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Error al llenar un combobox con datos de una DB !!!

No es por xAjax, sino que no estás entendiendo lo que haces.

A ver, en el código anterior tenías bien la forma de ejecutar la consulta y mal la lectura de registros... ahora tienes nuevamente mal la consulta y bien la lectura.

$result = $c->mysqli_query($sql); <--- Esto está mal y es tu error desde el principio
$result = mysql_query($sql) or die(mysql_error()); <--- Esta es la buena
__________________
- León, Guanajuato
- GV-Foto
  #11 (permalink)  
Antiguo 12/07/2013, 19:34
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Error al llenar un combobox con datos de una DB !!!

Cita:
Iniciado por Triby Ver Mensaje
No es por xAjax, sino que no estás entendiendo lo que haces.

A ver, en el código anterior tenías bien la forma de ejecutar la consulta y mal la lectura de registros... ahora tienes nuevamente mal la consulta y bien la lectura.

$result = $c->mysqli_query($sql); <--- Esto está mal y es tu error desde el principio
$result = mysql_query($sql) or die(mysql_error()); <--- Esta es la buena

Resuelto !!!!

Muchas gracias triby pero no es eso, todo estaba en la conexion !!!!

La variable $c no estaba asociando la conexion del archivo que contiene el include (conexion.php) cosa que no se porq es pero arreglare ahorita, lo que hice fue poner todo en el archivo y funciono, el Warning era porq no tenia nada que asociar !!!

Aca esta el codido ya bueno

Código:
$server     = 'localhost'; //servidor
		$username   = 'root'; //usuario de la base de datos
		$password   = ''; //password del usuario de la base de datos
		$database   = 'kosys'; //nombre de la base de datos
		 
		$c = @new mysqli($server, $username, $password, $database);
		 
		if ($c->connect_error) //verificamos si hubo un error al conectar, recuerden que pusimos el @ para evitarlo
		{
			die('Error de conexión: ' . $conexion->connect_error); //si hay un error termina la aplicación y mostramos el error
		}
 
				
	$sql="SELECT id,nombre from rubros order by id";
		$result = $c->query($sql); //usamos la conexion para dar un resultado a la variable
		if ($result->num_rows > 0) { //si la variable tiene al menos 1 fila entonces seguimos con el codigo
		$combobit="";
		while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
        $combobit .=" <option value='".$row['id']."'>".$row['nombre']."</option>"; //concatenamos el los options para luego ser insertado en el HTML
			}
		}
Muchas gracias a todos, hoy a seguir y lo que aun me tiene en tela de juicio es lo del carrito de compras que aun no se como hacerlo pero ya se que aca hay gente buena que ayuda desinteresadamente !!!!

__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #12 (permalink)  
Antiguo 12/07/2013, 19:37
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Error al llenar un combobox con datos de una DB !!!

Caramba, ahora ya cambiaste de procedimientos a objetos!

De hecho, es mejor que uses mysqli, porque la librería mysql ya es obsoleta.
__________________
- León, Guanajuato
- GV-Foto
  #13 (permalink)  
Antiguo 12/07/2013, 19:54
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: Error al llenar un combobox con datos de una DB !!!

Coinsido con Triby, estas utilizando una orientacion a Objeto ni mysql funciona asi ni el codigo php que esta utilizando es una PHP OO.

prueba con este ejemplo a la ligera:

Código PHP:

<?php

$server     
'localhost'//servidor
$username   'root'//usuario de la base de datos
$password   ''//password del usuario de la base de datos
$database   'kosys'//nombre de la base de datos
 
 
 
function conectar()
{
    
mysql_connect($server$username,$password);
    
mysql_select_db($database);
}

function 
desconectar()
{
    
mysql_close();
}


    
conectar();

    
$sql=mysql_query("SELECT id, nombre from rubros");
    
desconectar();
 
    
$combobit=""
    
while($result=mysql_fetch_row($sql))
    {
    
$combobit .="<option value='".$result[0]."'>".$result[1]."</option>";
    }



?>
<html>
<head>
<title>Llenar un Combobox/Select con registros de una Tabla</title>
<link href="contactos.css" rel="stylesheet" type="text/css" />
</head>
<body>
   <select name="estado">
       <?php echo $combobit?>
   </select>
</body>
</html>
saludos
__________________
Es duro fracasar en algo, pero es mucho peor no haberlo intentado. - Si crees todo lo que lees, mejor no leas -
  #14 (permalink)  
Antiguo 12/07/2013, 20:11
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Error al llenar un combobox con datos de una DB !!!

Cita:
Iniciado por Triby Ver Mensaje
Caramba, ahora ya cambiaste de procedimientos a objetos!

De hecho, es mejor que uses mysqli, porque la librería mysql ya es obsoleta.
Creo que como ya se habra dado cuenta, la raiz es que talves no sepa el uso de objetos o procedimientos ni lo de POO en php Cree que eso me valla a arruinar de aca en adelante ?? digo ya funciono (talves no de la forma correcta) pero lo de los objetos y eso si me esta dando dolor de cabeza

@zerpico_01 algo anda mal en su codigo creo que es porq fue a la ligera como dice jajaj
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #15 (permalink)  
Antiguo 12/07/2013, 20:23
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Error al llenar un combobox con datos de una DB !!!

De entrada, como ya te comentaba, es mejor que uses mysqli, sigue aprendiendo y leyendo, poco a poco entenderás un poco acerca de objectos y todas esas cosas raras de la programación.
__________________
- León, Guanajuato
- GV-Foto
  #16 (permalink)  
Antiguo 12/07/2013, 20:41
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Error al llenar un combobox con datos de una DB !!!

Cita:
Iniciado por Triby Ver Mensaje
De entrada, como ya te comentaba, es mejor que uses mysqli, sigue aprendiendo y leyendo, poco a poco entenderás un poco acerca de objectos y todas esas cosas raras de la programación.
En los temas sticky de que la extencion MySQL se considera obsoleta y que hay que utilizar mysqli y que lleva a este [URL="http://us2.php.net/manual/en/mysqlinfo.api.choosing.php"]link [/URL] se puede ver como lo usan lo malo es que no se si eso es POO.

Rediseñe el codigo asi:

Código:
	// mysqli
		$mysqli = new mysqli("localhost", "root", "", "kosys");
		$result = $mysqli->query("SELECT id,nombre from rubros where id>=1 order by id");
		$row = $result->fetch_assoc();
		
		$combobit="";
		while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
        $combobit .=" <option value='".$row['id']."'>".$row['nombre']."</option>"; //concatenamos el los options para luego ser insertado en el HTML
			}
El problema es que el rubro con id 1 no sale aun cuando en el select le pongo el where id >=1 porq se da eso mister ???
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #17 (permalink)  
Antiguo 12/07/2013, 21:21
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Error al llenar un combobox con datos de una DB !!!

Código PHP:
Ver original
  1. $mysqli = new mysqli("localhost", "root", "", "kosys");
  2.         $result = $mysqli->query("SELECT id,nombre from rubros where id>=1 order by id");
  3.         $row = $result->fetch_assoc(); //<-- esta llamada asigna a row el primer registro solo eleminalo
  4.        
  5.         $combobit="";
  6.         while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
  7.         $combobit .=" <option value='".$row['id']."'>".$row['nombre']."</option>"; //concatenamos el los options para luego ser insertado en el HTML

La linea 3 esta de mas, esta asignando el primer registro que te devuelve fech_array
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #18 (permalink)  
Antiguo 12/07/2013, 21:45
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Error al llenar un combobox con datos de una DB !!!

Cita:
Iniciado por hhs Ver Mensaje
Código PHP:
Ver original
  1. $mysqli = new mysqli("localhost", "root", "", "kosys");
  2.         $result = $mysqli->query("SELECT id,nombre from rubros where id>=1 order by id");
  3.         $row = $result->fetch_assoc(); //<-- esta llamada asigna a row el primer registro solo eleminalo
  4.        
  5.         $combobit="";
  6.         while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
  7.         $combobit .=" <option value='".$row['id']."'>".$row['nombre']."</option>"; //concatenamos el los options para luego ser insertado en el HTML

La linea 3 esta de mas, esta asignando el primer registro que te devuelve fech_array
Yeahhhh eso era !!!! Muchas gracias hhs

Osea que esta forma esta orientada a objetos y es mejor que la anterior ??

Aunq yo prefiro llamar la conexion de un archivo externo con un include, eso esta mal
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #19 (permalink)  
Antiguo 13/07/2013, 00:59
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Error al llenar un combobox con datos de una DB !!!

En realidad eso depende de si quieres usar el paradigma estructurado o el orientado a objetos. La extension mysqli te permite usar ambas formas.

El uso del include es valido y te ayuda a organizar tu codigo.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #20 (permalink)  
Antiguo 22/07/2013, 18:20
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Error al llenar un combobox con datos de una DB !!!

Se recuerdan que ya habia llenado el combo, pues funciona en ese modulo de creacion de productos bien, inserta y todo nice, el problema hoy radica a la hora de modificarlo, cargo el combo con el rubro y el proveedor de la base y carga bien (ese no ser el problema) el problema esta en que las otras opciones de seleccion no aparecen (es ovbio porq se selecciona el dato) pero alguien sabe como podria hacer por si un producto se quiere cambiar de rubro por ejemplo ??

El codigo que cargo a la hora de ingresar un producto es este:

Código PHP:
Ver original
  1. // mysqli de conexion
  2.         $mysqli = new mysqli("localhost", "root", "", "kosys");
  3.         $sql_r = $mysqli->query("SELECT id,nombre from rubros order by id");
  4.         $sql_p = $mysqli->query("Select id,nombre from proveedores order by id");
  5.        
  6.         $combo_r="";
  7.         while ($row = $sql_r->fetch_array(MYSQLI_ASSOC)) {
  8.         $combo_r .=" <option value='".$row['id']."'>".$row['nombre']."</option>";
  9.             }
  10.            
  11.         $combo_p="";
  12.         while ($row = $sql_p->fetch_array(MYSQLI_ASSOC)) {
  13.         $combo_p .=" <option value='".$row['id']."'>".$row['nombre']."</option>";
  14.             }

Aca el codigo que tengo en el modificar:

Código PHP:
Ver original
  1. $sql_r = $mysqli->query("SELECT rubros.nombre AS rubro, proveedores.nombre AS proveedor,
  2. productos.rubro as id_rubro,productos.proveedor as id_provee FROM
  3. productos INNER JOIN rubros ON productos.rubro = rubros.id
  4. INNER JOIN proveedores ON productos.proveedor = proveedores.id WHERE productos.id = '$id'");
  5.  
  6. $combo_r="";
  7.     while ($row = $sql_r->fetch_array(MYSQLI_ASSOC)) {
  8.        $combo_r .=" <option value='".$row['id_rubro']."'>".$row['rubro']."</option>";
  9.             }

Probe tambien con $combo_r .=" <option selected= y el resultado es igual carga el rubro pero no los otros rubros, he hecho esto en Vasic y ASP con SQLdatasources pero no se si eso lo puedo implementar en php



PD: Hasta cuando dejare de escribir el captcha si deseo poner codigo en un post ?????????
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.

Etiquetas: combobox, html, mysql, registro, select, sql, tabla, variable, 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 16:50.