Foros del Web » Programando para Internet » PHP »

Datasource en php ??

Estas en el tema de Datasource en php ?? en el foro de PHP en Foros del Web. Como borraron mi tema del llenado de combos, espero me ayuden aca (ojala esto no sea "ilegal" (¬_¬) !!! ) La cuestion es asi: Tengo ...
  #1 (permalink)  
Antiguo 23/07/2013, 15:58
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 11 años, 4 meses
Puntos: 46
Datasource en php ??

Como borraron mi tema del llenado de combos, espero me ayuden aca (ojala esto no sea "ilegal" (¬_¬) !!! )

La cuestion es asi: Tengo un formulario que lleno con datos que vienen de otro form, y debe cargar los datos de un registro de la base de datos asi:

Código PHP:
Ver original
  1. $elementos = mysql_query("SELECT productos.id, productos.nombre, productos.descripcion, rubros.nombre AS rubro,
  2. proveedores.nombre AS proveedor, productos.costo, productos.pre_may, productos.pre_det FROM productos
  3. INNER JOIN rubros ON productos.rubro = rubros.id INNER JOIN proveedores ON productos.proveedor = proveedores.id
  4. WHERE productos.id = '$id'", $c);

Despues tengo dos combos para rubro y proveedor, y le coloco los datos correspondientes asi:

Código PHP:
Ver original
  1. $mysqli = new mysqli("localhost", "root", "", "kosys");
  2.         $sql_r = $mysqli->query("SELECT rubros.nombre AS rubro, proveedores.nombre AS proveedor,
  3.         productos.rubro as id_rubro,productos.proveedor as id_provee FROM productos        
  4. INNER JOIN rubros ON productos.rubro = rubros.id INNER JOIN proveedores ON productos.proveedor = proveedores.id
  5.         WHERE productos.id = '$id'");
  6.  
  7. $combo_r="";
  8.         while ($row = $sql_r->fetch_array(MYSQLI_ASSOC)) {
  9.         $combo_r .=" <option value='".$row['id_rubro']."'>".$row['rubro']."</option>";
  10.             }
  11.  
  12. <td>
  13.        <b>Rubro:
  14.         <select name='rubro' class='caja' >
  15.                echo $combo_r
  16.         </select>
  17. </td>

Hasta ahi todo bien, el combo se llena con la opcion de rubro que trae de la base de datos, pero si doy click en el no hay mas opciones solo esa (es ovbio solo se extrae ese rubro) pero y que tal si quiero cambiar de rubro el producto ?? como hacer que el combo tenga igual los otros rubros aunq este seleccionado el de la consulta que necesito ???

He hecho esto con slqdatasources en Basic pero no se como hacerlo en php serian tan amables de ayudarme y mostrarme el camino del bien
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #2 (permalink)  
Antiguo 23/07/2013, 16:24
Avatar de zerohours  
Fecha de Ingreso: agosto-2004
Ubicación: San Salvador, El Salvador.
Mensajes: 60
Antigüedad: 20 años, 3 meses
Puntos: 4
Respuesta: Datasource en php ??

Creo que no se te comprende muy bien lo que tratas de realizar.

Por lo que veo en tu consulta haces un join de productos, rubros y proveedores; por esa razón el rubro asumo que solo te muestra el que está asociado a ese producto y proveedor.

Te recomiendo que hagas otra consulta SELECT * FROM rubros y los metas en otro option value con el valor de $rubros_r y luego haces:

<select name='rubro' class='caja' >
echo $combo_r;
echo $rubros_r;
</select>

Espero te de una guía
  #3 (permalink)  
Antiguo 23/07/2013, 16:32
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Datasource en php ??

Debes obtener todos los registros y marcar como seleccionado el que corresponde al producto, ejemplo:

Código PHP:
Ver original
  1. // Asignas una variable para comparar
  2. $id_rubro = $producto['id_rubro']; // Sólo para ilustrar el caso
  3.  
  4. // Primero quita el WHERE de la consulta para leerlos todos
  5. echo '<select name="rubro">';
  6. echo '<option value="0">-- Selecciona --</option>';
  7.  
  8. // Lees tu consulta y dentro del while armas el resto del select
  9. while(/* lees con mysqli_fetch o lo que sea */) {
  10.        // Comparas el valor actual para marcar como seleccionado
  11.        $sel = ($row['id_rubro'] == $id_rubro) ? ' selected="selected" : '';
  12.       echo "<option value=\"{$row['id_rubro']}\">{$row['rubro']}</option>";
  13. }
  14.  
  15. echo '</select>';

P.D. No creo que te hayan borrado el otro tema, tal vez un mensaje por que no es recomendable tratar dos o más dudas en un mismo tema; es mejor para tí, para otros que tengan duda similar y para todos que estén separados.
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 24/07/2013, 12:03
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 11 años, 4 meses
Puntos: 46
Respuesta: Datasource en php ??

Cita:
Iniciado por zerohours Ver Mensaje
Creo que no se te comprende muy bien lo que tratas de realizar.

Por lo que veo en tu consulta haces un join de productos, rubros y proveedores; por esa razón el rubro asumo que solo te muestra el que está asociado a ese producto y proveedor.

Te recomiendo que hagas otra consulta SELECT * FROM rubros y los metas en otro option value con el valor de $rubros_r y luego haces:

<select name='rubro' class='caja' >
echo $combo_r;
echo $rubros_r;
</select>

Espero te de una guía
Gracias con este metodo funciono, aun espero probar el de Triby !!!
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.

Etiquetas: datasource, formulario, mysql, registro, select, sql
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 12:20.