Foros del Web » Programando para Internet » PHP »

Problema con Combo en php

Estas en el tema de Problema con Combo en php en el foro de PHP en Foros del Web. Hola amigos tengo el siguiente problema, necesito traer los datos guardados en mi db de 1 campo en un combo el cual luego el usaurio ...
  #1 (permalink)  
Antiguo 12/11/2009, 08:51
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
Problema con Combo en php

Hola amigos tengo el siguiente problema, necesito traer los datos guardados en mi db de 1 campo en un combo el cual luego el usaurio pueda seleccionar y enviar pero no logro que me liste los datos de mi combo. Coloco el php que tengo armado para ver si alguien puede ayudarme a ver donde tengo el error:

Código PHP:
<?PHP
require_once('config.php');
$link mysql_connect(DB_HOSTDB_USERDB_PASSWORD);
$db mysql_select_db(DB_DATABASE);
$resultmysql_query("select * from producto") or die('Error: '.mysql_error());  
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<form action="insert_suscripcion.php" method="post">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="38%" id="AutoNumber1">
  <tr>
    <td width="100%" colspan="4">Formulario de Pedido:</td>
  </tr>
  <tr>
    <td width="100%" colspan="4">
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::</td>
  </tr>
  <tr>
    <td width="14%">Apellido:</td>
    <td width="86%" colspan="3"><input name="apellido" type="text" value="" size="59" maxlength="100" /></td>
  </tr>
  <tr>
    <td width="14%">Nombre:</td>
    <td width="86%" colspan="3"><input name="nombre" type="text" value="" size="59" maxlength="100" /></td>
  </tr>
  <tr>
    <td width="14%">Calle:</td>
    <td width="86%" colspan="3"><input name="calle" type="text" value="" size="59" maxlength="100" /></td>
  </tr>
  <tr>
    <td width="15%">Numero:</td>
    <td width="35%">
        <select name='ejemplar_numero' id='ejemplar_numero'>
            <option value="1">Edicion numero 1</option>
            <?php
                
while (list($producto)=mysql_fetch_array($resultado)) {
                    if (
$ejemplar_numero == $defecto) {
                        echo 
"<option>$defecto</option>";
                    } else {
                        echo 
"<option>$ejemplar_numero</option>";
                    }
                } 
            
?>
        </option>
    </td>
    <td width="8%">CP.:</td>                            
    <td width="42%"><input name="cp" type="text" value="" size="21" maxlength="100" /></td>
  </tr>
  <tr>
    <td width="15%">Piso:</td>
    <td width="35%"><input name="piso" maxlength="100" type="text" value="" /></td>
    <td width="8%">Localidad:</td>
    <td width="42%"><input name="localidad" type="text" value="" size="21" maxlength="100" /></td>
  </tr>
  <tr>
    <td width="15%">Depto.:</td>
    <td width="35%"><input name="depto" maxlength="100" type="text" value="" /></td>
    <td width="12%">Provincia:</td>
    <td width="38%"><input name="provincia" type="text" value="" size="21" maxlength="100" /></td>
  </tr>
  <tr>
    <td width="14%">Teléfono:</td>
    <td width="86%" colspan="3"><input name="telefono" type="text" value="" size="59" maxlength="100" /></td>
  </tr>
  <tr>
    <td width="14%">E-mail:</td>
    <td width="86%" colspan="3"><input name="email" type="text" value="" size="59" maxlength="100" /></td>
  </tr>
  <tr>
    <td width="100%" colspan="4"><center><input name="boton" type="submit" value="Enviar" /></center></td>
  </tr>
</table>
</body>
</html>
Coloco aqui mi script de la DB:

Código PHP:
-- 
-- 
Estructura de tabla para la tabla `producto`
-- 

CREATE TABLE `producto` (
  `
Id_productoint(50NOT NULL auto_increment,
  `
ejemplar_numerovarchar(100NOT NULL,
  
PRIMARY KEY  (`Id_producto`)
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=;

-- 
-- 
Volcar la base de datos para la tabla `producto`
-- 

INSERT INTO `producto` (`Id_producto`, `ejemplar_numero`) VALUES 
(1'Ejemplar Nº 1'),
(
2'Suscripcion Anual'); 
y el dato que tengo que mostrar es el de ejemplar_numero.

Salu2 y gracias de antemano
  #2 (permalink)  
Antiguo 12/11/2009, 09:46
Avatar de XLogus  
Fecha de Ingreso: noviembre-2008
Ubicación: AQP
Mensajes: 495
Antigüedad: 15 años, 5 meses
Puntos: 19
Respuesta: Problema con Combo en php

Hola
Código PHP:
if ($ejemplar_numero == $defecto) { 
echo 
"<option>$ejemplar_numero</option>"
Alli deberia ir el array, no puedes usar los datos de la base de datos como simples variables

while ($row=mysql_fetch_array($resultado)) {
if ($row[ejemplar_numero] == $defecto) {
echo "<option>$defecto</option>";
} else {
echo "<option>".$row[ejemplar_numero]."</option>";
}
}
  #3 (permalink)  
Antiguo 12/11/2009, 09:49
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con Combo en php

¿Te trae algun error la pagina?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 12/11/2009, 10:11
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema con Combo en php

a ver si comprendo mi codigo deberia quedar asi:

<select name='ejemplar_numero' id='ejemplar_numero'>
<option value="1">Edicion numero 1</option>
<?php
while ($row=mysql_fetch_array($resultado)) {
if ($ejemplar_numero == $defecto) {
echo "<option>$ejemplar_numero</option>";
} else {
echo "<option>".$row[ejemplar_numero]."</option>";
}
}
?>
</option>

Solo me trae el Edicion numero 1 que es el que tengo ingresado entre las etiquetas <option>
  #5 (permalink)  
Antiguo 12/11/2009, 10:30
 
Fecha de Ingreso: noviembre-2009
Mensajes: 16
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Problema con Combo en php

Hola.

Tu código debería quedar algo así.

Código:
<select name='ejemplar_numero' id='ejemplar_numero'>
    <option value="1">Edicion numero 1</option>
    <?php
        while ($row=mysql_fetch_assoc($result)) {
            echo "<option>$row['ejemplar_numero']</option>";
       }
    ?>
</select>
Le cambíe el mysql_fetch_array por el fetch_assoc, para tu caso es lo mismo, pero para los expertos es más aconsejable utilizar los arrays asociativos que puede discutirse en otro tema.

Le cambié el $resultado por $result, porque $result es la variable que utilizas en tu mysql_query(... Y le utilizas el $row como arreglo más no como variable común, supongo que el $defecto es una variable que defines antes, pero no le veo al caso utilizarla, porque por ejemplo en $defecto tienes el 5 y en $row["ejemplar_numero"] te viene el 5, de todas maneras te va a imprimir 5 preguntes o no.

Espero que quede claro y te sirva de ayuda.

Saludos Cordiales.

Ing. Cristian Avila Montlavo
Microsoft Certified Professional
Zend Certified Engineer
Senior Developer Metamorf
Senior Developer Vivatravelguides.
  #6 (permalink)  
Antiguo 12/11/2009, 10:42
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problema con Combo en php

pues ahora me queda el php vacio. mira el ejemplo:

www.keepers.com.ar/mail/formulario.php
  #7 (permalink)  
Antiguo 12/11/2009, 11:05
 
Fecha de Ingreso: noviembre-2009
Mensajes: 16
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Problema con Combo en php

Revisé tu página y veo que ni siquiera te da el Edicion Numero 1 que debería darte por defecto, al parecer tienes alguna diferencia en el código que publicaste aquí con el que tienes en tu página.

Revisale que los tags html etés bien abiertos / cerrados porque si es el mismo código el que publicas, al menos debería salirte el Numero 1.

Saludos Coordiales.
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 09:46.