Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema consulta sql en PHP

Estas en el tema de Problema consulta sql en PHP en el foro de PHP en Foros del Web. Hola a todos, me estoy encontrando en un aprieto del cual recurro a uds para ver si me pueden ayudar, bueno les explico un poco... ...
  #1 (permalink)  
Antiguo 18/02/2013, 09:36
 
Fecha de Ingreso: julio-2011
Ubicación: Santiago, Chile.
Mensajes: 95
Antigüedad: 12 años, 9 meses
Puntos: 4
Pregunta Problema consulta sql en PHP

Hola a todos, me estoy encontrando en un aprieto del cual recurro a uds para ver si me pueden ayudar, bueno les explico un poco... Yo utilizo actualmente en mi trabajo PHP con SQLSERVER y anteriormente nunca he tenido problemas con las consultas (hasta ahora), a mi parecer puede ser algo pequeño pero no logro encontrar la solucion, bueno voy al grano, tengo una consulta la cual es la siguiente :

Código PHP:
<? 
$conexion
=mssql_connect("servidor","admin","1111");
mssql_select_db("gBD",$conexion)or die("No se puede realizar la conexion a la Base de datos");
         
        
$con=" SELECT COUNT(*) FROM TB_Web WHERE id_cliente=618 AND motivo_obj='DESCONOCIDO EN EL Nº' "
        
$res=mssql_query($con,$conexion);
        while(
$row=mssql_fetch_array($res))
        {
            
$p=$row[0];

        }
echo 
$p;
?>
la raiz del problema es que esa consulta en SQLSERVER me arroja un valor que en este caso es 63 y al ejecutarlo en pantalla me arroja un 0 , lo cual me provoca un problema ya que estoy haciendo unos datos estadisticos y los valores correctos es lo primordial. si alguien me puede ayudar o ir orientando se los agradece enormemente.

un saludo.
  #2 (permalink)  
Antiguo 18/02/2013, 10:46
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 12 años, 11 meses
Puntos: 5
Respuesta: Problema consulta sql en PHP

pero tu estas contando el registro del cliente identificado con id 618 y que tenga motivo de observacion DESCONOCIDO EN EL Nº .. viste que valor tiene ese cliente en la primera celda de la bd ??
  #3 (permalink)  
Antiguo 18/02/2013, 10:50
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 12 años, 11 meses
Puntos: 5
Respuesta: Problema consulta sql en PHP

hola lo que pasa que tu con los valores que entregas estas haciendo una suma al cliente 618 con observacion 'DESCONOCIDO EN EL Nº' y despues estas mostrando el 1er valor de la tabla

prueba esto por favor

SELECT COUNT(*) AS NumberOfOrders FROM TB_Web WHERE id_cliente=618 AND motivo_obj='DESCONOCIDO EN EL Nº' ";
while($row=mssql_fetch_array($res))
{
$p=$row['NumberOfOrders'];

}
echo $p;
  #4 (permalink)  
Antiguo 18/02/2013, 10:52
 
Fecha de Ingreso: diciembre-2012
Ubicación: Argentina
Mensajes: 20
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Problema consulta sql en PHP

El problema puede ser que está en la siguiente linea:

Código PHP:
 $con=" SELECT COUNT(*) FROM TB_Web WHERE id_cliente=618 AND motivo_obj='DESCONOCIDO EN EL Nº' "
Fijate que a lo ultimo no le haz puesto la $conexion y tampoco el mysql_query ._. . Las query las hago asi:
Código PHP:
 $sel=mysql_query("SELECT USER,PW FROM registro WHERE USER='$_POST[user]'",$con); 
Fijate que tengo encerrado todo en parentesis () y "" y a lo ultimo de las comillas la conexion ($con).

Para que te funcione, prueba asi:

Código PHP:
 $con=mysql_query("SELECT COUNT(*) FROM TB_Web WHERE id_cliente=618 AND motivo_obj='DESCONOCIDO EN EL Nº'",$conexion); 
Espero habertelo solucionado.
  #5 (permalink)  
Antiguo 18/02/2013, 11:59
 
Fecha de Ingreso: julio-2011
Ubicación: Santiago, Chile.
Mensajes: 95
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Problema consulta sql en PHP

Cita:
Iniciado por evolutionrgm Ver Mensaje
hola lo que pasa que tu con los valores que entregas estas haciendo una suma al cliente 618 con observacion 'DESCONOCIDO EN EL Nº' y despues estas mostrando el 1er valor de la tabla

prueba esto por favor

SELECT COUNT(*) AS NumberOfOrders FROM TB_Web WHERE id_cliente=618 AND motivo_obj='DESCONOCIDO EN EL Nº' ";
while($row=mssql_fetch_array($res))
{
$p=$row['NumberOfOrders'];

}
echo $p;
Realizé esta operacion pero aun asi me sigue dando como resultado cero, ya que aqui lo unico que agregamos fue como un titulo al registro, lo que me parece raro es que si agarro solamente la consulta ..
Código:
SELECT COUNT(*) AS NumberOfOrders FROM TB_Web WHERE id_cliente=618 AND motivo_obj='DESCONOCIDO EN EL Nº'
en el sql server funciona sin problemas.
  #6 (permalink)  
Antiguo 18/02/2013, 12:01
 
Fecha de Ingreso: julio-2011
Ubicación: Santiago, Chile.
Mensajes: 95
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Problema consulta sql en PHP

Cita:
Iniciado por neurotoxina Ver Mensaje
El problema puede ser que está en la siguiente linea:

Código PHP:
 $con=" SELECT COUNT(*) FROM TB_Web WHERE id_cliente=618 AND motivo_obj='DESCONOCIDO EN EL Nº' "
Fijate que a lo ultimo no le haz puesto la $conexion y tampoco el mysql_query ._. . Las query las hago asi:
Código PHP:
 $sel=mysql_query("SELECT USER,PW FROM registro WHERE USER='$_POST[user]'",$con); 
Fijate que tengo encerrado todo en parentesis () y "" y a lo ultimo de las comillas la conexion ($con).

Para que te funcione, prueba asi:

Código PHP:
 $con=mysql_query("SELECT COUNT(*) FROM TB_Web WHERE id_cliente=618 AND motivo_obj='DESCONOCIDO EN EL Nº'",$conexion); 
Espero habertelo solucionado.

exacto yo tambien pensé que el error podria pasar por esta linea de codigo
Código PHP:
 $con=" SELECT COUNT(*) FROM TB_Web WHERE id_cliente=618 AND motivo_obj='DESCONOCIDO EN EL Nº' "
pero lo extraño como dije anteriormente es que si agarro la query y la ejecuto en sql server me entrega el resultado correcto, no asi cuando lo hago por php.

con respecto a lo que me indicaste, ya lo realicé y no me entrego resultado, me aparecio el 0 nuevamente.

Gracias por al ayuda que me brindas ;)
  #7 (permalink)  
Antiguo 18/02/2013, 12:36
 
Fecha de Ingreso: febrero-2013
Mensajes: 65
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Problema consulta sql en PHP

Por qué realizas una iteración?
while($row=mssql_fetch_array($res))
{
$p=$row[0];

}
???
Si lo único que debes traerte es un solo registro??
  #8 (permalink)  
Antiguo 18/02/2013, 12:42
 
Fecha de Ingreso: julio-2011
Ubicación: Santiago, Chile.
Mensajes: 95
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Problema consulta sql en PHP

Cita:
Iniciado por tomibolo Ver Mensaje
Por qué realizas una iteración?
while($row=mssql_fetch_array($res))
{
$p=$row[0];

}
???
Si lo único que debes traerte es un solo registro??
porque generalmente con la iteracion siempre he traido los resultados de una consulta , mas por costumbre, como me aconsejas tu que traiga solo un dato?????
  #9 (permalink)  
Antiguo 18/02/2013, 12:55
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 12 años, 11 meses
Puntos: 5
Respuesta: Problema consulta sql en PHP

$con = "SELECT COUNT(*) FROM TB_Web WHERE id_cliente=618 AND motivo_obj='DESCONOCIDO EN EL Nº'";
$re= mysql_query ($con);
$registro = mysql_fetch_assoc ($re);
$registro =$registro['nombre_registro_quieres_mostrar'];
echo $registro // aca deberias mostrar para rutear
  #10 (permalink)  
Antiguo 18/02/2013, 12:57
 
Fecha de Ingreso: febrero-2013
Mensajes: 65
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Problema consulta sql en PHP

Cita:
Iniciado por evolutionrgm Ver Mensaje
$con = "SELECT COUNT(*) FROM TB_Web WHERE id_cliente=618 AND motivo_obj='DESCONOCIDO EN EL Nº'";
$re= mysql_query ($con);
$registro = mysql_fetch_assoc ($re);
$registro =$registro['nombre_registro_quieres_mostrar'];
echo $registro // aca deberias mostrar para rutear
Exacto.. EL COUNT(*) no genera nombre de registro, por lo que en la consulta te recomiendo ponerle lo sigueinte
SELECT COUNT(*) AS NOMBRE_QUE_QUIERAS_SIN_ESPACIOS FROM ....
  #11 (permalink)  
Antiguo 18/02/2013, 13:02
 
Fecha de Ingreso: julio-2011
Ubicación: Santiago, Chile.
Mensajes: 95
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Problema consulta sql en PHP

Cita:
Iniciado por tomibolo Ver Mensaje
Exacto.. EL COUNT(*) no genera nombre de registro, por lo que en la consulta te recomiendo ponerle lo sigueinte
SELECT COUNT(*) AS NOMBRE_QUE_QUIERAS_SIN_ESPACIOS FROM ....
exacto me lo imagine jeje , sabes que deje solo esa consulta ya que no tengo nada mas en una pagina que llame consulta.php para realizar la prueba ... pero me sigue
enviando como resultado un 0 :/
  #12 (permalink)  
Antiguo 18/02/2013, 13:02
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 12 años, 11 meses
Puntos: 5
Respuesta: Problema consulta sql en PHP

como decia tomibolo aca la dejo mas completa

$con = "SELECT COUNT(*) AS resultado FROM TB_Web WHERE id_cliente=618 AND motivo_obj='DESCONOCIDO EN EL Nº'";
$re= mysql_query ($con);
$registro = mysql_fetch_assoc ($re);
$reg =$registro['resultado'];
echo $reg // aca deberias mostrar para rutear
  #13 (permalink)  
Antiguo 18/02/2013, 13:05
 
Fecha de Ingreso: febrero-2013
Mensajes: 65
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Problema consulta sql en PHP

Realmente estas seguro que si ejecutas la consulta en SQL te devuelve otro resultado?? Estas apuntando a la Base correcta?? (Conexión)
  #14 (permalink)  
Antiguo 18/02/2013, 13:17
 
Fecha de Ingreso: julio-2011
Ubicación: Santiago, Chile.
Mensajes: 95
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Problema consulta sql en PHP

Cita:
Iniciado por tomibolo Ver Mensaje
Realmente estas seguro que si ejecutas la consulta en SQL te devuelve otro resultado?? Estas apuntando a la Base correcta?? (Conexión)
claro que si, mira te dejare una imagen de las cosas que estoy haciendo.

SQL EN EL SERVIDOR :



CODIGO EN DREAMWEAVER (PAGINA):



RESULTADO EN BROWSER :





ahy esta todo lo que estoy haciendo para que puedan ver mas graficamente a lo que me refiero
  #15 (permalink)  
Antiguo 18/02/2013, 13:21
 
Fecha de Ingreso: febrero-2013
Mensajes: 65
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Problema consulta sql en PHP

Quita el while! no digo que ese sea el problema, pero no tiene sentido en ponerlo!
  #16 (permalink)  
Antiguo 18/02/2013, 13:26
 
Fecha de Ingreso: julio-2011
Ubicación: Santiago, Chile.
Mensajes: 95
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Problema consulta sql en PHP

Cita:
Iniciado por tomibolo Ver Mensaje
Realmente estas seguro que si ejecutas la consulta en SQL te devuelve otro resultado?? Estas apuntando a la Base correcta?? (Conexión)
claro que si, mira te dejare una imagen de las cosas que estoy haciendo.

SQL EN EL SERVIDOR :




CODIGO EN DREAMWEAVER (PAGINA):




RESULTADO EN BROWSER :






ahy esta todo lo que estoy haciendo para que puedan ver mas graficamente a lo que me refiero ... (AHORA SE VEN LAS IMAGENES.).



Cita:
Iniciado por tomibolo Ver Mensaje
Quita el while! no digo que ese sea el problema, pero no tiene sentido en ponerlo!
es que como te digo ya lo quite y me sigue apareciendo un cero :(
  #17 (permalink)  
Antiguo 18/02/2013, 13:30
 
Fecha de Ingreso: febrero-2013
Mensajes: 65
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Problema consulta sql en PHP

Aplica var_dump($row) y fijate el resultado que trae!
  #18 (permalink)  
Antiguo 18/02/2013, 13:44
 
Fecha de Ingreso: julio-2011
Ubicación: Santiago, Chile.
Mensajes: 95
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Problema consulta sql en PHP

Cita:
Iniciado por tomibolo Ver Mensaje
Aplica var_dump($row) y fijate el resultado que trae!
ya amigo! hice lo que me indicastes y los resultados fueron los siguientes :


Código PHP:
array(4) { [0]=> int(0) ["reg"]=> int(0) [1]=> NULL ["motivo_obj"]=> NULL 
array(
4) { [0]=> int(4833) ["reg"]=> int(4833) [1]=> string(1" " ["motivo_obj"]=> string(1" " 
array(
4) { [0]=> int(9) ["reg"]=> int(9) [1]=> string(16"CASA DESHABITADA" ["motivo_obj"]=> string(16"CASA DESHABITADA" 
array(
4) { [0]=> int(63) ["reg"]=> int(63) [1]=> string(20"DESCONOCIDO EN EL Nº" ["motivo_obj"]=> string(20"DESCONOCIDO EN EL Nº" 
array(
4) { [0]=> int(203) ["reg"]=> int(203) [1]=> string(22"DIRECCION INSUFICIENTE" ["motivo_obj"]=> string(22"DIRECCION INSUFICIENTE" 
array(
4) { [0]=> int(1) ["reg"]=> int(1) [1]=> string(17"LUGAR DESHABITADO" ["motivo_obj"]=> string(17"LUGAR DESHABITADO" 
array(
4) { [0]=> int(65) ["reg"]=> int(65) [1]=> string(9"NO HAY Nº" ["motivo_obj"]=> string(9"NO HAY Nº" 
array(
4) { [0]=> int(81) ["reg"]=> int(81) [1]=> string(19"NO HAY QUIEN RECIBA" ["motivo_obj"]=> string(19"NO HAY QUIEN RECIBA" 
array(
4) { [0]=> int(19) ["reg"]=> int(19) [1]=> string(17"NUMERO NO UBICADO" ["motivo_obj"]=> string(17"NUMERO NO UBICADO" 
array(
4) { [0]=> int(30) ["reg"]=> int(30) [1]=> string(8"REHUSADO" ["motivo_obj"]=> string(8"REHUSADO" 
array(
4) { [0]=> int(214) ["reg"]=> int(214) [1]=> string(9"SE CAMBIO" ["motivo_obj"]=> string(9"SE CAMBIO" 
ahy me aparecen los datos que necesito por ejemplo desconocido en el numero tiene el valor 63....

Última edición por lkriss; 18/02/2013 a las 13:44 Razón: olvide algo
  #19 (permalink)  
Antiguo 18/02/2013, 14:01
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 12 años, 11 meses
Puntos: 5
Respuesta: Problema consulta sql en PHP

estas utilizando el fetch_array .. utiliza $row[0] y me cuentas como te fue
  #20 (permalink)  
Antiguo 18/02/2013, 14:11
 
Fecha de Ingreso: julio-2011
Ubicación: Santiago, Chile.
Mensajes: 95
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Problema consulta sql en PHP

si utilizo :

Código PHP:

while($row=mssql_fetch_array($res))
        {
        
                 
$p=$row[0];
        
                 echo 
"<br>";
        
        } 
echo 
$p
me entrega en pantalla el valor 0 , lo extraño es que si saco esta parte de la consulta:
AND motivo_obj = 'DESCONOCIDO EN EL Nº'


$consulta="SELECT COUNT(*) AS REG FROM TB_Web WHERE id_cliente=618 AND motivo_obj = 'DESCONOCIDO EN EL Nº'";
$res=mssql_query($consulta,$conexion);


si me entrega resultados.
  #21 (permalink)  
Antiguo 18/02/2013, 15:02
 
Fecha de Ingreso: julio-2011
Ubicación: Santiago, Chile.
Mensajes: 95
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Problema consulta sql en PHP

Ya esta resuelto , efectivamente me di cuenta que el problema que estaba ocurriendo era directamente en la consulta, ya que lo demas estaba todo correcto :

Código PHP:
$con=" SELECT COUNT(*) FROM TB_Web WHERE id_cliente=618 AND motivo_obj='DESCONOCIDO EN EL Nº' "
en esta consulta el problema principalmente me lo estaba dando el simbolo "º" ya que al poner otro motivo sin ningun simbolo como "DIRECCION INSUFICIENTE" efectivamente los datos me los devolvia correctamente, a lo cual cambie la sentencia omitiendo el simbolo... o sea la consulta la deje de esta forma :

Código PHP:
$con=" SELECT COUNT(*) FROM TB_Web WHERE id_cliente=618 AND motivo_obj LIKE '%DESCONOCIDO EN EL N%' "
y me devolvio el resultado correcto.

Muchas gracias a "evolutionrgm" y "tomibolo" por su ayuda :D

Etiquetas: distinto, query, valor
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 00:03.