Foros del Web » Programando para Internet » PHP »

Inconvenientes con mysql

Estas en el tema de Inconvenientes con mysql en el foro de PHP en Foros del Web. Tomo un listado desde la base de datos. y ese listado me queda asi (es una base de datos de funciones q tengo, ahi guardo ...
  #1 (permalink)  
Antiguo 15/01/2010, 10:32
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
Pregunta Inconvenientes con mysql

Tomo un listado desde la base de datos. y ese listado me queda asi (es una base de datos de funciones q tengo, ahi guardo todo tipo de cosas q encuentro relacionado con determinada funcion de php).

id_listado -------- id_manejo -------- nombre
0 -------------- 0
1 ---------------1---------- basename
2 -------------- 1---------- chgrp
3 -------------- 1----------- chmod
4 ---------------1 ---------- chown
5 ---------------1 ---------- clearstatcache
6 --------------- 1 ---------- copy

Lo que no me funciona es lo siguiente. Alguien puede decirme porque?
Código PHP:
<?php
$host 
'localhost';
$usuario 'root'
$password 'root';
$base 'base_defunciones';

$conexion mysql_connect("$host""$usuario""$password") or die("Error en la conexion");
$base mysql_select_db("$base") or die("Error en la conexion");

$sql "select * from `listado_funcion` WHERE `id_manejo`= '1' order by nombre asc"
$res mysql_query($sql);


while (
$myrow mysql_fetch_array($res)) {                          
       if (
$myrow[nombre] == 'basename') {
        echo 
'coincide';
    }
}
?>
S e supone q deberia COINCIDIR AL MENOS 1 VEZ

0 -------------- 0
1 ---------------1---------- basename
2 -------------- 1---------- chgrp
3 -------------- 1----------- chmod
4 ---------------1 ---------- chown
5 ---------------1 ---------- clearstatcache
6 --------------- 1 ---------- copy

PERO NO ME COINCIDE NUNCA XD SALVO CUANDO LO COMPARO CON EL ULTIMO VALOR XD. OSEA SI YO HAGO ESTO
Código PHP:
      if ($myrow[nombre] == 'copy') { // copy es el ultimo registro cargado
              
echo 'coincide';
        } 
ANDA :S jaja no entiendo porque.
  #2 (permalink)  
Antiguo 15/01/2010, 10:40
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Inconvenientes con mysql

Debes tener en cuenta que estás filtrando por `id_manejo`, ¿qué tienes en ese campo? ¿haz probado a hacer un print_r a $myrow en cada paso del bucle?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 15/01/2010, 10:48
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
Pregunta Respuesta: Inconvenientes con mysql

Yo estoy seleccionado todos los campos, no seleccino especificamente una columna pero lo podria hacer. En fin yo tomo todo:
$sql = "select * from `listado_funcion` WHERE `id_manejo`= '1' order by nombre asc";
$res = mysql_query($sql);

por ende el resultado da esto:
id_listado -------- id_manejo -------- nombre
0 -------------- 0
1 ---------------1---------- basename
2 -------------- 1---------- chgrp
3 -------------- 1----------- chmod
4 ---------------1 ---------- chown
5 ---------------1 ---------- clearstatcache
6 --------------- 1 ---------- copy

Luego recorro esos resultados
while ($myrow = mysql_fetch_array($res)) {
if ($myrow[nombre] == 'basename') {
echo 'coincide';
}
}

Y CUANDO QUIERO COMPARAR (como veras con $myrow[nombre], q es una de las tablas q devuelve la consulta)
if ($myrow[nombre] == 'basename'
NO ME ANDA. PERO SIN EMBARGO, SI YO HAGO ESTA COMPARACION
if ($myrow[nombre] == 'copy'
OSEA LO COMPARO CON EL ULTIMO REGISTRO CARGADO EN LA BASE DE DATOS. SI FUNCIONA PODES PROBARLO PARA Q OBSERVES LO Q QUIERO HACER:s
  #4 (permalink)  
Antiguo 15/01/2010, 10:50
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: Inconvenientes con mysql

No le veo error a tu código, intenta especificando la DB al momento de hacer la query y coloca comillas a la llave de $myrow al momento de hacer tu comprobación.

Código PHP:
<?php
$host 
'localhost';
$usuario 'root'
$password 'root';
$base 'base_defunciones';

$conexion mysql_connect($host$usuario$password) or die("Error en la conexion");
$base mysql_select_db("$base") or die("Error en la conexion");

$sql "select * from `listado_funcion` WHERE `id_manejo`= '1' order by `nombre` asc"
$res mysql_query($sql,$db);


while (
$myrow mysql_fetch_array($res)) {                          
       if (
$myrow["nombre"] == 'basename') {
        echo 
'coincide';
    }
}
?>
  #5 (permalink)  
Antiguo 15/01/2010, 10:53
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
Pregunta Respuesta: Inconvenientes con mysql

Ya hice esto y tampoco anda, como veras el codigo no tiene error, pero no anda la comparacion en el IF:S. sera porque estoy comparando con una funcion de php nose:S no deberia dar error porque es una comparacion entre 2 string:S
  #6 (permalink)  
Antiguo 15/01/2010, 11:01
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: Inconvenientes con mysql

Cuando esto me sucede, trato de ver a que me estoy enfrentando, en este caso prueba lo siguiente:


Código PHP:
 if ($myrow["nombre"] == 'basename') {
        echo 
'coincide';
    }
else
 {
echo (
"No coincide: ".$myrow["nombre"]."<br/>");

  #7 (permalink)  
Antiguo 15/01/2010, 11:03
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
Pregunta Respuesta: Inconvenientes con mysql

YA HICE ESTO OBVIO. INCREIBLEMENTE SALE ESTO
No coincide: basename
No coincide: chgrp
No coincide: chmod
No coincide: chown
No coincide: clearstatcache
No coincide: copy
No coincide: delete

XDDDDD. como veras es algo de locos. me esta diciendo q no COINCIDE, PERO ESTA basename como respuestaXD. entendes? deberia coincidir pero no lo hace nose porque:S este comportamiento extraño
  #8 (permalink)  
Antiguo 15/01/2010, 11:19
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: Inconvenientes con mysql

Ok, eso significa que nada tiene que ver con tu sentencia, ahora comprueba que en tu base de datos esos nombres no tienen caracteres invisibles al inicio o al fin, ya sean espacios, tabulaciones o saltos de línea.
  #9 (permalink)  
Antiguo 15/01/2010, 11:26
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
De acuerdo Respuesta: Inconvenientes con mysql

xddddd LE METI LA FUNCION trim q quita espacios atras y adelante, y auduvo:S
NO ENTIENDO PORQUE PERO EN LA BASE DE DATOS TODOS LOS CAMPOS TIENEN UN SALTO DE LINEA:s NOSE PORQUE NO DEBERIA TENER Eso
  #10 (permalink)  
Antiguo 15/01/2010, 11:35
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: Inconvenientes con mysql

jejje, a veces pasa.

Etiquetas: mysql
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 20:31.