Foros del Web » Programando para Internet » PHP »

Gran Problema

Estas en el tema de Gran Problema en el foro de PHP en Foros del Web. Bueno vamos a ver si me entienden... tengo una tabla con los siguientes campos: ide idl linea des ahora en esta tabla los campos ide, ...
  #1 (permalink)  
Antiguo 11/02/2003, 17:04
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 15 años, 1 mes
Puntos: 1
Gran Problema

Bueno vamos a ver si me entienden...

tengo una tabla con los siguientes campos:

ide
idl
linea
des

ahora en esta tabla los campos ide, idl tienen un valor asi

ide idl
1 1
1 2
1 3

Cuando quiero mostrar los campos hago lo siguiente:

$result=mysql_db_query("","select * from lineas where ide = '$ide'");
while ($row = mysql_fetch_array($result))
{
?>
<tr>
<td width="15%">
<div align="right"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000">
Linea 1: </font></b></div>
</td>
<td width="23%">
<input type="text" name="linea" value="<?=$row["linea"]?>" size="30">
</td>
<td width="62%">
<textarea name="d1" cols="50" rows="2"><?=$row["des"]?></textarea>
</td>
</tr>
<?
}

de esta manera muestro los campos de la tabla las veces que encuentre el ide que es el valor constante por asi decirlo. ahora mi problema es:

1. como estoy mostrando estos campos para ingresar en un ciclo, quedan con el mismo nombre de vble, $linea y $des entonces en el momento de ingresar no se como hacerlo para que cada uno de estos campos si estan llenosm es decir, con datos.. me ingrese al idl adecuado (idl, es la variable que cambia)...

Bueno, espero me entiendan... y me puedan colaborar con esto..
  #2 (permalink)  
Antiguo 11/02/2003, 17:56
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 15 años, 3 meses
Puntos: 4
No logro entender muy bien tu problema, pero cuando pasa esto contesto lo que me ha parecido ver...


a ver, asumiendo que has resumido el código y que tienes un form que está funcionando con:
Código PHP:
<input type="text" name="linea" value="<?=$row["linea"]?>" size="30">
</td>
<td width="62%">
<textarea name="d1" cols="50" rows="2"><?=$row["des"]?></textarea>
y que lo que deseas es que cuando el usuario envia esa información la página no se olvide del valor de $ide, la solución está usando un campo oculto dentro del html del formulario:
Código PHP:
<input type="text" name="linea" value="<?=$row["linea"]?>" size="30">
</td>
<td width="62%">
<textarea name="d1" cols="50" rows="2"><?=$row["des"]?></textarea>
<input type="hidden" name=ide" value=<?=$ide;?>">
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #3 (permalink)  
Antiguo 11/02/2003, 19:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Como comentario ..

Mencionar que:
<?=$variable ?>

es la versión resumida de la sintax:

<? echo $variable ?>

Un saludo,
  #4 (permalink)  
Antiguo 12/02/2003, 07:20
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 15 años, 1 mes
Puntos: 1


Parece que no me he hecho entender....

lo que hago es mostrar el codigo las veces que este el ide repetido, digamos unas tres veces en un ciclo.. asi me aparecerán 3 veces $linea y tres $des

linea ( ) des ( )
linea ( ) des ( )
linea ( ) des ( )


entonces como ven, estos tres campos como estan en un ciclo, me quedan con el mismo nombre de variables, asi que cuando voy a ingresar en la tabla donde tengo el $ide y el $idl, no se como hacerlo ya que el $idl y el $ide en la tabla estan asi:

$ide $idl
1 1
1 2
1 3

Asi que deberia empezar ingresando el campo linea y el campos des del primer registro.. aahhh y se debe tener en cuenta entonces que debe ser ingresado en el orden en que se muestran...

espero que ahora si me hayan entendido...
  #5 (permalink)  
Antiguo 12/02/2003, 10:50
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 15 años, 1 mes
Puntos: 1
Bueno pues les cuento que logre solucionar mi "gran problema"... de igual manera gracias por su ayuda...

  #6 (permalink)  
Antiguo 12/02/2003, 11:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues si explicas la soculición q le distes ... mejor .. así aprendemos ..

(yo por ejemplo todavia no se q pretendias hacer )

Un saludo,
  #7 (permalink)  
Antiguo 12/02/2003, 14:49
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 15 años, 1 mes
Puntos: 1
Esta bien.. mostrare que hice...

Como les comentaba tenia una tabla con los siguientes campos:

$ide $idl $linea $des
1 1
1 2
1 3

lo explicare con el consecutivo de 3 en idl

lo que necesitaba era despues de crear estos campos en la base de datos con la información en $ide e $idl como se muestra arriba, poder ingresarla....

entonces use lo siguiente...

$ide = 1;
mysql_connect("localhost","root","");
$result=mysql_db_query("caxainte_3", "select * from lineas where ide = '$ide'");
while ($row = mysql_fetch_array($result))
{
if ($row["idl"] == 1)
{
?>
<input type="text" name="linea1" value="<?=$row["linea"]?>" size="30">
<textarea name="des1" cols="50" rows="2"><?=$row["des"]?></textarea>
<?
}
if ($row["idl"] == 2)
{
?>
<input type="text" name="linea2" value="<?=$row["linea"]?>" size="30">
<textarea name="des2" cols="50" rows="2"><?=$row["des"]?></textarea>
<?
}
if ($row["idl"] == 3)
{
?>
<input type="text" name="linea3" value="<?=$row["linea"]?>" size="30">
<textarea name="des3" cols="50" rows="2"><?=$row["des"]?></textarea>
<?
}

$ide siempre esta en 1 por tal motivo asi inicialice esa variable, igual si fuera a verificar por ejemplo usuarios pues seria como una constante....

me conecte a la base de datos donde esta la tabla e hice el select pues donde me mostrara solo los registros donde el $ide fuera igual a 1 para este ejemplo...

y pues como ya les habia dicho el $idl me cambia de valor de 1... a ..3 por ejemplo.. asi que en los if pregunto que si $row [idl] es igal a cualquiera de los numeros que tengo consecutivos... si es asi.. pues muestro los campos donde se va a ingresar, en principio los campos linea y des estan vacios asi que si no ahi nada alli los mostrara de igual forma vacios para poder ingresar...

como ven cada que ahi un if pues el nombre (name) de la variable en html tiene un nombre diferente pero el value es el de la linea y la des que se encuentra en ese idl..

ya luego de esto voy a ingresar, ahora para ingresar hice lo siguiente:

$ide = 1;
mysql_connect("localhost","root","");
$idl = 1;
while ($idl <= 3)
{
if ($idl == 1)
{
mysql_db_query("caxainte_3"," update lineas set linea = '$linea1', des = '$des1' where idl = '$idl' and ide = '$ide'");
$idl = $idl + 1;
}
}

$ide por efectos del ejemplo sigue teniendo el valor de 1.
me conecto a la bd
e inicializo idl en 1 para poder recorrer los registros en la tabla.
Comienzo un mientras (while) donde hago que se ejecute hasta que $idl sea menor o igual a tres por ejemplo y pues comienzo a actualizar....
ya al terminar de actualizar ingremento la variable $idl ya valdria 2 y asi sucevimente para que entre a los otros if.... solo puse uno, pues los otros dos son iguales solo que los otros nombres de variables cambian respecto al valor del $idl y como mostre en el primer fragmento de codigo...

Bueno pues esto es util para cuando se hasta donde pueden llegar los valores por ejemplo hasta 3 o hasta 1.000 y los puedo controlar aunque se haga repetitivo....y canson... pero esa es la idea...

Espero que ahora con la solución si les haya quedado algo claro..
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 07:18.