Foros del Web » Programando para Internet » PHP »

problema con while

Estas en el tema de problema con while en el foro de PHP en Foros del Web. Hola que tal amigos tengo el siguiente codigo: $sql="SELECT * FROM articulos INNER JOIN rubros ON articulos.rubro = rubros.rub_id " $res=mysql_query($sql,Conectar::con()) while ($reg=mysql_fetch_assoc($res)){echo $reg ["descripcion"] ...
  #1 (permalink)  
Antiguo 06/12/2010, 06:25
 
Fecha de Ingreso: octubre-2010
Mensajes: 233
Antigüedad: 13 años, 6 meses
Puntos: 3
problema con while

Hola que tal amigos
tengo el siguiente codigo:
$sql="SELECT * FROM articulos INNER JOIN rubros ON articulos.rubro = rubros.rub_id "
$res=mysql_query($sql,Conectar::con())

while ($reg=mysql_fetch_assoc($res)){echo $reg ["descripcion"] ;}

el problema es que me tira todos los registros que encuentra en el campo descripcion y realmente no se en donde me estoy equivocando agradezco enormemente su ayuda
Saludos
  #2 (permalink)  
Antiguo 06/12/2010, 06:38
 
Fecha de Ingreso: diciembre-2010
Ubicación: Rosario, Santa Fe
Mensajes: 326
Antigüedad: 13 años, 4 meses
Puntos: 13
Respuesta: problema con while

Cita:
while ($reg=mysql_fetch_assoc($res)){echo $reg ["descripcion"] ;}
No entiendo bien cual es tu duda, pero tal vez no entiendes bien ese código.

Lo siguente ejecuta el código para cada registro en $res

while ($reg=mysql_fetch_assoc($res)){
//Codigo
}

En $reg tenes los campos de la consulta. $reg es un arreglo asociativo, asi que si queres usar algún campo en especial deberias usar $reg['campo'].

Si especificaras que información piensas recibir, tal vez pueda orientarte mejor.
  #3 (permalink)  
Antiguo 06/12/2010, 06:54
 
Fecha de Ingreso: octubre-2010
Mensajes: 233
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: problema con while

Hola como estas
gracias por la respuesta, la informacion que quiero recibir y despues hacer un echo es la de un campo que consulto aca
$sql="SELECT * FROM articulos INNER JOIN rubros ON articulos.rubro = rubros.rub_id "
y el campo se llama "descripcion" eso lo hace bien lo que pasa es que me imprime de la bd el campo descripcion pero con todos los registros y no uno solo y esa consulta la necesito meter dentro de un select

<label for="rubro">rubro</label>
<select name="rubro" id="rubro">
<option value="rubro 1" selected="selected">ACA QUIERO HACER ECHO A LA CONSULTA</option>
<option value="rubro 2">rubro2</option>
<option value="rubro 3">rubro3</option>
</select>
muchas gracias
  #4 (permalink)  
Antiguo 06/12/2010, 07:09
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: problema con while

te falta el WHERE en la consulta para solo limitarlo al registro que quieres
algo asi
$sql="SELECT * FROM articulos INNER JOIN rubros ON articulos.rubro = rubros.rub_id WHERE articulos.id = '$id' "
  #5 (permalink)  
Antiguo 06/12/2010, 07:14
 
Fecha de Ingreso: diciembre-2010
Ubicación: Rosario, Santa Fe
Mensajes: 326
Antigüedad: 13 años, 4 meses
Puntos: 13
Respuesta: problema con while

No termino de entender la situación, pero creo que el tema esta en la consulta, si queres obtener solo la primera descripcion podrias agregar un LIMIT 1 al final de la consulta sql, quedando asi:

Código PHP:
$sql="SELECT * FROM articulos INNER JOIN rubros ON articulos.rubro = rubros.rub_id LIMIT 1"
  #6 (permalink)  
Antiguo 06/12/2010, 07:21
 
Fecha de Ingreso: octubre-2010
Mensajes: 233
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: problema con while

Hola como estas gracias por responder
Ya lo probe pero sigue sin funcionar, me sigue trayendo todos los registros que tengo en el campo descripcion
Saludos
  #7 (permalink)  
Antiguo 06/12/2010, 07:26
 
Fecha de Ingreso: diciembre-2010
Ubicación: Rosario, Santa Fe
Mensajes: 326
Antigüedad: 13 años, 4 meses
Puntos: 13
Respuesta: problema con while

Nos tendrías que pasar la lista de campos que tienen las tablas y decirnos cuales deben ser las condiciones así podemos armar correctamente la consulta SQL, porque ese debe ser el error.
  #8 (permalink)  
Antiguo 06/12/2010, 07:26
 
Fecha de Ingreso: octubre-2010
Mensajes: 233
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: problema con while

Hola como estas gracias por responder
Ya lo probe pero sigue sin funcionar, me sigue trayendo todos los registros que tengo en el campo descripcion
Saludos
  #9 (permalink)  
Antiguo 06/12/2010, 07:35
 
Fecha de Ingreso: octubre-2010
Mensajes: 233
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: problema con while

la lista de campos de articulos es esta:
arti_id articulo_id rubro subrubro descripcion detalle moneda
25 45 3 45 mother wifi u$S

y la lista de campos de rubros es esta:

rub_id rubro_id descripcion
3 23 mothers
lo que necesito es si la tabla articulos tiene en el campo rubro el 3 por ejemplo
cuando hago la consulta se compare con la tabla rubros y el campo rub_id y si coincide que me muestre la descripcion en la tabla rubros
en este ejemplo seria mothers
MUchas gracias por su atencion
  #10 (permalink)  
Antiguo 06/12/2010, 07:39
 
Fecha de Ingreso: octubre-2010
Mensajes: 233
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: problema con while

intente poner el campo y abajo el texo pero no se entiende bien , disculpen
arti_id || articulo_id || rubro || subrubro || descripcion || detalle || moneda
25 ||45 || 3 || 45 || mother ||wifi ||u$S

rub_id || rubro_id|| descripcion
3 ||23 ||mothers
  #11 (permalink)  
Antiguo 06/12/2010, 07:46
 
Fecha de Ingreso: diciembre-2010
Ubicación: Rosario, Santa Fe
Mensajes: 326
Antigüedad: 13 años, 4 meses
Puntos: 13
Respuesta: problema con while

proba con esta consulta:

Código:
SELECT rubros.descripcion FROM articulos, rubros WHERE rubros.rub_ir = articulos.rubro;
y en vez del while, con un if comprobas si tiene un rubro

Código PHP:
if($reg=mysql_fetch_assoc($res)){
   echo 
$reg ["descripcion"] ;
}else{
   echo 
"Sin descripcion";

  #12 (permalink)  
Antiguo 06/12/2010, 07:56
 
Fecha de Ingreso: octubre-2010
Mensajes: 233
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: problema con while

efectivamente me esta devolviendo un solo registo , pero siempre me devuelve el mismo por mas que cambie de articulo
  #13 (permalink)  
Antiguo 06/12/2010, 08:01
 
Fecha de Ingreso: diciembre-2010
Ubicación: Rosario, Santa Fe
Mensajes: 326
Antigüedad: 13 años, 4 meses
Puntos: 13
Respuesta: problema con while

¿Cuál descripción es la que quieres?
La sentencia que puse yo retorna la del rubro, si la que quieres es la del articulo prueba con esta:

Código PHP:
SELECT articulos.descripcion FROM articulosrubros WHERE articulos.rubro rubros.rub_ir
  #14 (permalink)  
Antiguo 06/12/2010, 08:08
 
Fecha de Ingreso: octubre-2010
Mensajes: 233
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: problema con while

ya se cual es el error pero no se como solucionarlo paso a explicar
las sentencias estan bien junto con el while, me esta retornando todos los registros de rubros.descripcion porque no le estoy diciendo de que articulo quiero que me traiga el registro
entonces tendria que pasarle a la bd ademas de la sentencia anterior tambien el articulo_id del articulo que necesito que me muestre a que rubro pertenece ,
espero haberme explicado bien y gracias por tu atencion y tu tiempo
  #15 (permalink)  
Antiguo 06/12/2010, 08:13
 
Fecha de Ingreso: diciembre-2010
Ubicación: Rosario, Santa Fe
Mensajes: 326
Antigüedad: 13 años, 4 meses
Puntos: 13
Respuesta: problema con while

Cita:
Iniciado por Death_Empire Ver Mensaje
te falta el WHERE en la consulta para solo limitarlo al registro que quieres
algo asi
$sql="SELECT * FROM articulos INNER JOIN rubros ON articulos.rubro = rubros.rub_id WHERE articulos.id = '$id' "
Te pasaste por alto este comentario por eso, jaja, pero bueno a ver la cosa seria exactamente como dice Death_Empire, en $id deberas tener el id del articulo y fijate si ese id es numerico no lleva esas comillas simples.
  #16 (permalink)  
Antiguo 06/12/2010, 08:39
 
Fecha de Ingreso: octubre-2010
Mensajes: 233
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: problema con while

buenisimo me faltaba lo que escribio Death_Empire
Muchas gracias por todo
espero algun dia aportar yo tambien
Saludos a TODOS
  #17 (permalink)  
Antiguo 06/12/2010, 08:43
 
Fecha de Ingreso: diciembre-2010
Ubicación: Rosario, Santa Fe
Mensajes: 326
Antigüedad: 13 años, 4 meses
Puntos: 13
Respuesta: problema con while

No olvides cerrar el hilo si está solucionado.
Saludos y me alegra haber sido de ayuda, aunque los créditos van para Death_Empire

Etiquetas: Ninguno
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:22.