Foros del Web » Programando para Internet » PHP »

como tomar solo un dato...

Estas en el tema de como tomar solo un dato... en el foro de PHP en Foros del Web. Como puedo tomar un dato de mi tabla que se repite para ponerlo en un select pero si llamo esa columna me trae el mismo ...
  #1 (permalink)  
Antiguo 15/12/2004, 15:45
Avatar de christopher1979  
Fecha de Ingreso: octubre-2004
Mensajes: 203
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación como tomar solo un dato...

Como puedo tomar un dato de mi tabla que se repite para ponerlo en un select pero si llamo esa columna me trae el mismo dato repitido y solo quiero que muestre uno se los agradeceria este es mi codigo no se si aiga una sentencia para la sentencia de mysql de select

$presupuesnuevos = mysql_query("SELECT * FROM presupuesto",$connection);

echo "<tr><td><font color = \"blue\" size = \"3\" face = \"times new romans\"><b>Nombre de Presupuesto Nuevos:<font color = \"green\" size = \"3\" face = \"arial\"><b>*</b></font><td></b><select name = \"presupuestosubido\"><br><br>";


echo "<option>ELIJA PRESUPUESTO</option>";

while($rows = mysql_fetch_assoc($presupuesnuevos)){

echo "<option>$rows[nombrepresup]</option>";

}

echo "</select></td></tr>";
  #2 (permalink)  
Antiguo 15/12/2004, 16:00
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 8 meses
Puntos: 0
asi

Código PHP:

$consulta= mysql_query("SELECT id, campo FROM tabla ORDER BY campo ASC");


<SELECT NAME="campo" id="campo">
<option value="" selected>---> Seleccione una opción---></option>
<? while ($row mysql_fetch_row($consulta)) { ?><option value='<?=$row[0]?>'><?=$row[1]?></option><? }?></select>
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #3 (permalink)  
Antiguo 15/12/2004, 17:17
Avatar de christopher1979  
Fecha de Ingreso: octubre-2004
Mensajes: 203
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación

mira lo que pasa es que en mi tabla

aparece este campo que es necesario que este asi 95 veces

y lo quiero poner en un select pero si lo llamo me aparece 95 veces yo lo que

quiero es que solo aparesca uno en el select y no los 95

tabla estructura


nombrepresup mi otra columna

presupuestoalto
presupuestoalto
y asi....


lo que quiero es que solo aparesca en el select es un solo presupuestoalto se puede eso
  #4 (permalink)  
Antiguo 15/12/2004, 20:40
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 8 meses
Puntos: 0
d´accord

De acuerdo, entonces;

Código PHP:

//diferencias con DISTINCT 
$consulta= mysql_query("SELECT DISTINCT campo FROM tabla ORDER BY campo ASC"); 


//luego

<SELECT NAME="campo" id="campo">
<option value="" selected>---> Seleccione una opción---></option>
<? while ($row mysql_fetch_row($consulta)) { ?><option value='<?=$row[0]?>'><?=$row[1]?></option><? }?></select>
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #5 (permalink)  
Antiguo 16/12/2004, 10:03
Avatar de christopher1979  
Fecha de Ingreso: octubre-2004
Mensajes: 203
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación no funciono

no muestra nada ya lo adecue y no funciona mira asi quedo

$presupuesnuevos = mysql_query("SELECT DISTINCT nombrepresup FROM presupuesto ORDER BY nombrepresup ASC",$connection);

echo "<tr><td><font color = \"blue\" size = \"3\" face = \"times new romans\"><b>Nombre de Presupuesto Nuevos:<font color = \"green\" size = \"3\" face = \"arial\"><b>*</b></font><td></b><select name = \"presupuestosubido\" id=\"nombrepresup\"><br><br>";

echo "<option value = \"\" selected>--->Seleccione Presupuesto<---</option>";

while ($rows = mysql_fetch_row($presupuesnuevos)){

echo "<option>$row[0]</option>";

}

echo "</select></td></tr></table>";
  #6 (permalink)  
Antiguo 16/12/2004, 10:14
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 19 años, 6 meses
Puntos: 0
I si el pones un if donde compares el valor anterior con el nuevo que cojas de la bbdd
es decir,
if($valor_bbdd!=$valor_antiguo){
echo "<option>$row[0]</option>";
}else{
}
  #7 (permalink)  
Antiguo 16/12/2004, 10:23
Avatar de christopher1979  
Fecha de Ingreso: octubre-2004
Mensajes: 203
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación no amigo

mira no es un dato que sea antiguo imaginate que en tu tabla a la hora que subiste tu archivo lleva 95 registros y todos llevan en el columna primario el mismo dato para diferenciarlos si integro mas datos en si yo subo otro con 108 registros va llevar 108 registros iguales en la misma columna y a la hora que lo llamo en el select me apareceria 108 veces el mismo registro para que no se vea asi solo quiero que muestre uno y llamae ese uno a los 108 porque como se repiten puedo llamar todos los datos pero en el select de opcion no quiero que aparescan los 108 sino solo 1

seria asi graficamente


reporte 1
reporte 2


si lo llamo normal me llamaria 95 veces reporte 1
y 108 el reporte 2 y no neceito asi solo quiero que aparesca uno en ves de 94 mas
y al fin al cabo cuando lo mande en mi formulario me va a llamar a los otreos 94

espero que sea claro es un poco complicado gracias de todas maneras
  #8 (permalink)  
Antiguo 16/12/2004, 10:33
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 19 años, 6 meses
Puntos: 0
Por eso digo lo del dato antiguo, el dato antiguo seria el valor recogido anteriormente en la base de datos, que en tu caso seria el mismo que recoje en el siguente bucle, asi de la forma que te he dicho solo te apareciria solo una vez puesto que siempre es =, unicamente tendria que variar un poco el codigo en vez de dentro del if poner el echo es guardar esa variable y una vez sales de bucle poner el echo
Código PHP:
$presupuesnuevos mysql_query("SELECT * FROM presupuesto",$connection);

echo 
"<tr><td><font color = \"blue\" size = \"3\" face = \"times new romans\"><b>Nombre de Presupuesto Nuevos:<font color = \"green\" size = \"3\" face = \"arial\"><b>*</b></font><td></b><select name = \"presupuestosubido\"><br><br>";

echo 
"<option>ELIJA PRESUPUESTO</option>";
$i=0;
$variable_antigua="";
while(
$rows mysql_fetch_assoc($presupuesnuevos)){

if(
$row[$i]!=$variable_antigua){
$variable=$row[$i];
$variable_antigua=$row[$i];
$i++
}else{
$variable_antigua=$row[$i];
$i++
}
echo 
"<option>$variable</option>";
echo 
"</select></td></tr></table>"
no se si es del todo correcto el codigo, pero la idea es esta.
  #9 (permalink)  
Antiguo 16/12/2004, 10:51
Avatar de christopher1979  
Fecha de Ingreso: octubre-2004
Mensajes: 203
Antigüedad: 19 años, 5 meses
Puntos: 0
este es el codigo

<?php

$connection = mysql_connect("localhost","administrador","adminis trador");

mysql_select_db("destajos",$connection);

$clavefrente = mysql_query("SELECT * FROM frentes",$connection);

$presupuesnuevos = mysql_query("SELECT * FROM presupuesto",$connection);

echo "<script type='text/javascript'>

function validacion(){

var clavepresupuesto = document.unionfrente.clavepresupuesto.value.length ;

var descpresupuesto = document.unionfrente.descpresupuesto.value.length;

if (clavepresupuesto < 4){

alert (\"No Contiente los 4 Digitos la CLAVE PRESUPUESTO\");

return false;

}else{

if (descpresupuesto == 0){

alert(\"Nesecita Proporcionar Una DESCRIPCION Para El PRESUPUESTO\");

return false;


}else{

return true;


};

};

};

</script>";

echo "<table>";

echo "<tr><td><font color = \"blue\" size = \"5\" face = \"arial\"><b>PROCESAR PRESUPUESTO</b><br><br></td></tr></table>";

echo "<table>";

echo "<form name = \"unionfrente\" method = \"POST\" action = \"procesarpresupuesto.php\" onSubmit = \"return validacion()\">";

echo "<tr><td><font color = \"blue\" size = \"3\" face = \"times new romans\"><b>Clave Frente:</b></font><td><select name = \"clavefrente\">";

echo "<option>ELIJA FRENTE</option>";

while($rows = mysql_fetch_assoc($clavefrente)){

echo "<option>$rows[clavefrente]-$rows[nombrefrente]</option>";

}

echo "</select></td></tr>";

echo "<tr><td><font color = \"blue\" size = \"3\" face = \"times new romans\"><b>Clave Presupuesto:</b></font><font color = \"green\" size = \"3\" face = \"arial\"><b>*</b></font><td><input type = \"text\" name = \"clavepresupuesto\" size = \"4\" maxlength = \"4\"></td></tr>";

echo "<tr><td><font color = \"blue\" size = \"3\" face = \"times new romans\"><b>Descripcion del Presupuesto:</b></font><font color = \"green\" size = \"3\" face = \"arial\"><b>*</b></font><td><input type = \"text\" name = \"descpresupuesto\" size = \"60\" maxlength = \"60\"></td></tr></table>";

echo "<tr><td><font color = \"blue\" size = \"3\" face = \"times new romans\"><b>Nombre de Presupuesto Nuevos:<font color = \"green\" size = \"3\" face = \"arial\"><b>*</b></font><td></b><select name = \"presupuestosubido\" id=\"nombrepresup\"><br><br>";

echo "<option value = \"\" selected>--->Seleccione Presupuesto<---</option>";

$i=0;

$variable_antigua="";

while($rows = mysql_fetch_assoc($presupuesnuevos)){

if($row[$i]!=$variable_antigua){

$variable=$row[$i];

$variable_antigua=$row[$i];

$i++;

}else{

$variable_antigua=$row[$i];

$i++;

}

}

echo "<option>$variable</option>";

echo "</select></td></tr></table>";


echo "<table>";

echo "<tr><td><input type = \"reset\" value = \"Borrar Datos\"><td>";

echo "<input type = \"submit\" name = \"enviopresupuesto\" value = \"Procesar Datos\"></td></tr>";

echo "</table>";

echo "</form>";

?>
  #10 (permalink)  
Antiguo 16/12/2004, 10:53
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 19 años, 6 meses
Puntos: 0
Funciono o no al final lo que te dije?
  #11 (permalink)  
Antiguo 16/12/2004, 12:44
Avatar de christopher1979  
Fecha de Ingreso: octubre-2004
Mensajes: 203
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación ya me muestra pero solo un dato

mira ya lo reconfigure y me aparece solo el ultimo registro pero no otro diferente que quiero decir que cuando llama a mis datos solo buca el ultimo y lo coloca y no busca el ultimo pero de otro que sea diferente

graficamente la opcion del select

reporte2

pero no me muestra reporte 1 que va antes de este que puede ser aqui esta el codigo de esta parte

echo "<tr><td><font color = \"blue\" size = \"3\" face = \"times new romans\"><b>Nombre de Presupuesto Nuevos:<font color = \"green\" size = \"3\" face = \"arial\"><b>*</b></font><td></b><select name = \"presupuestosubido\" id=\"nombrepresup\"><br><br>";

echo "<option>--->Seleccione Presupuesto<---</option>";

while($rows = mysql_fetch_row($presupuesnuevos)){

$i = 0;

$variable_antigua = $rows[0];

if($row[$i]!= $variable_antigua){ y tengo que quitar ! para que me muestre es solo dato mientras no me lo muestra

$variable= $row[$i];

$variable_antigua= $row[$i];

$i++ ;

}else{

$variable_antigua= $row[$i];

$i++ ;

}

}

echo "<option>$variable</option>";

echo "</select></td></tr></table>";

Última edición por christopher1979; 16/12/2004 a las 12:46
  #12 (permalink)  
Antiguo 16/12/2004, 14:21
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 4 meses
Puntos: 1
realmente no te funciona con el distinc??

tomas todo de una misma tabla verdad? y el campo que tipo es.. o como es?... que estructura tiene tu tabla o los datos que queres mostrar?
  #13 (permalink)  
Antiguo 16/12/2004, 14:23
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 4 meses
Puntos: 1
mm porque comparas esto...

echo "<option>$row[0]</option>";


tu campo en la tabla se llama '0' o tiene nombre esa columna...
dale envianos tu estructura en la tabla y el tipo de datos de la columna que intentas mostrar en el select.. para ver que pasa.. ;)
  #14 (permalink)  
Antiguo 16/12/2004, 14:26
Avatar de christopher1979  
Fecha de Ingreso: octubre-2004
Mensajes: 203
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación hola salome y gracias

mira mi tabla a la hora que le cargo un archivo csv de excel lleva en la primera columna el nombre del presupuesto y se repite en todas las filas


mira mas o menos asi

columna 1 Presupuesto 1 columna1 Presupuesto 1

columna 2 terraceria columna2 drenaje

columna 3 92.4m columna3 102.3m

y asi ay 95 registros donde presupuesto 1 es la llave
pero cuando suba otro va llamarse de otra manera como presupuesto2
y puede contener 106 solo quiero que muestre uno solo no 106 o 95

quedaria asi el select

opcion uno presupuesto1
opcion dos presupuesto2

y asi si es que agrego mas datos a mi base la llave es el campo uno
  #15 (permalink)  
Antiguo 16/12/2004, 14:27
Avatar de christopher1979  
Fecha de Ingreso: octubre-2004
Mensajes: 203
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación aclarando tu duda

el nombre de la columna se llama nombrepresup
  #16 (permalink)  
Antiguo 16/12/2004, 14:34
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 4 meses
Puntos: 1
no entiendo nada.. =(
  #17 (permalink)  
Antiguo 16/12/2004, 14:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Cita:
Iniciado por Salome
mm porque comparas esto...

echo "<option>$row[0]</option>";


tu campo en la tabla se llama '0' o tiene nombre esa columna...
dale envianos tu estructura en la tabla y el tipo de datos de la columna que intentas mostrar en el select.. para ver que pasa.. ;)
A los campos de una consulta si usastes mysql_fetch_array() te puedes referir por "numero de orden de aparición de tus campos en tu tabla" o bien de forma "asociativa" por su nombre. Por el nombre realmente facilita mucho ver el código y seguirlo .. pero igualmente se puede usar el n°.

Un saludo,
  #18 (permalink)  
Antiguo 16/12/2004, 14:36
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 4 meses
Puntos: 1
jaja solo queria saber el nombre del campo.. solo eso...
  #19 (permalink)  
Antiguo 16/12/2004, 14:41
Avatar de christopher1979  
Fecha de Ingreso: octubre-2004
Mensajes: 203
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación

esta asi la tabla


nombrepresup / clavepartida /concepto

presupuesto1 terraceria ladrillos

presupuesto1 terraceria barrilla

presupuesto1 terraceria arena


presupuesto2 terraceria anviguos

presupuesto2 terraceria barrill

presupuesto2 terraceria arena


y quiero mostrar presupuesto1 y presupuesto2 pero solo uno en mis opciones de mi select
  #20 (permalink)  
Antiguo 16/12/2004, 16:05
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 1 mes
Puntos: 10
Código PHP:

$presupuesnuevos 
mysql_query("SELECT * FROM presupuesto GROUP BY nombrepresup",$connection);

o

$presupuesnuevos 
mysql_query("SELECT DISTINCT nombrepresup FROM presupuesto",$connection); 
__________________
oohh... quisiera ser godines!!!
  #21 (permalink)  
Antiguo 16/12/2004, 16:12
Avatar de christopher1979  
Fecha de Ingreso: octubre-2004
Mensajes: 203
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación

eso muchacho saliste gallo asta que lo encontre eso eso gracias no te beso porque eres hombre y no me gustan los hombres gracias viejo
  #22 (permalink)  
Antiguo 16/12/2004, 16:16
 
Fecha de Ingreso: enero-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.047
Antigüedad: 21 años, 1 mes
Puntos: 10
de nada amigo
__________________
oohh... quisiera ser godines!!!
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:32.