Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-08-2016
winckelman vera winckelman vera is offline
Registrado
NULL
 
Registrado: ago 2016
Posts: 1
Poder: 0
winckelman vera Va por buen camino
trabajare con SELECT

Buenas tardes, queridos internautas. Hace tiempo que queria participar de este foro. Quiero compartir un codigo de un sistema automatizado que estoy diseñando pero no logro que me corra el sistema.
Tengo una tabla llamada PRESTAMO DE LIBROS. El cual tiene entre otros campos: tipo de usuarios(INFANTIL y ADULTOS) y numero de consultas. Ahora, quiero hacer con un select que me sume el numero de consultas por adultos e infantil.
El codigo es el siguiente.
Código PHP:
<?php
$db = new mysqli(localhost"jesus""jesus""bibliotecas");


$res=mysql_query("SELECT prestamodelibros SUM numerodeconsulta WHERE tipodeusuario=infantil");
while (
$row=mysql_fetch_assoc($res))
{
$total=$total+$row['numerodeconsulta'];
}

echo 
$res;

Última edición por ecfisa fecha: 10-08-2016 a las 20:38:56. Razón: Agregar etiquetas [php][/php]
Responder Con Cita
  #2  
Antiguo 10-08-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Es posible que algo así:

Código SQL [-]
select tipodeusuario, sum(numerodeconsulta)
from prestamo de libro
group by tipodeusuario

De todas formas, es recomendable que estudies la sintaxis genaral del SELECT y de agrupaciones.

LineComment Saludos
Responder Con Cita
  #3  
Antiguo 11-08-2016
DANIEL JESUS DANIEL JESUS is offline
Registrado
NULL
 
Registrado: ago 2016
Posts: 5
Poder: 0
DANIEL JESUS Va por buen camino
Yo tengo el mismo problema. Creo que coincidimos.

Yo en tu lugar pondría lo siguiente:
<?php
@ $db = new mysqli(localhost, "jesus", "jesus", "bibliotecas");
if ($db->connect_error)
die('Error de Conexion ('.$db->connect_errno.')'.$db->connect_error);

$query =("SELECT SUM(numerodeconsulta) FROM prestamodelibros WHERE tipodeusuario = 'infantil'");

$result = $db -> query($query);

$numfilas = $result->num_rows;

echo "Consulta de obras sala infantil\n\n<br><br>".$numfilas."<br>";

$result->free();
$db->close();
?>
A mi me funciona, solo que el resultado no me satisface. Yo tengo en total 6 consultas infantiles, sin embargo el sistema me arroja como resultado 1. No se donde esta el error.
Responder Con Cita
  #4  
Antiguo 11-08-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración


Y recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #5  
Antiguo 11-08-2016
DANIEL JESUS DANIEL JESUS is offline
Registrado
NULL
 
Registrado: ago 2016
Posts: 5
Poder: 0
DANIEL JESUS Va por buen camino
Unhappy


Código PHP:
Sigo teniendo dificultades con el codigo. Con select no tengo problemas, pero cuando llego a esta parte el sistema no me permite sumar los registros.
este es el codigo que va a continuacion del select:

$result = $db -> query($query);

$numerodefilas = $result->num_rows;


echo "<H1>Consulta de obras  sala infantil\n\n<br></H1>".$numerodefilas."";

?>
siempre me da como resultado 1


ESTE ES EL CODIGO COMPLETO
<?php
$db = new mysqli(localhost"jesus""jesus""bibliotecas");
if (
$db->connect_error)
die(
'Error de Conexion ('.$db->connect_errno.')'.$db->connect_error);

$query =("SELECT  SUM(numerodeconsulta) FROM prestamodelibros WHERE tipodeusuario = 'infantil'");

$result $db -> query($query);

$numerodefilas $result->num_rows;


echo 
"<H1>Consulta de obras  sala infantil\n\n<br></H1>".$numerodefilas."";

?>
Responder Con Cita
  #6  
Antiguo 11-08-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Si haces una consulta como esta:

Código SQL [-]
SELECT SUM(numerodeconsulta) FROM prestamodelibros WHERE tipodeusuario = 'infantil'

el resultado es una sóla fila (row) y esta fila tiene una sóla columna (el valor de la suma). Entonces, num_rows siempre será 1, pues contiene el número de filas. Lo que debes hacer es, primero, extraer esa primera y única fila del resultado:

Código PHP:
$fila $result->fetch_row(); 
y, luego, extraer el valor de la primera y única columna (la columna cero):

Código PHP:
$suma $fila[0]; 
LineComment Saludos
Responder Con Cita
  #7  
Antiguo 12-08-2016
DANIEL JESUS DANIEL JESUS is offline
Registrado
NULL
 
Registrado: ago 2016
Posts: 5
Poder: 0
DANIEL JESUS Va por buen camino
Talking Otro Gancho Por El Estomago

Saludos, Román.
Hice tu sugerencia, sin embargo no logre el objetivo. Bajé el programa MYSQL QUERY BROWSER, y desde alli el SELECT me suma todos los registros perfectamente. Lo que no logro es que el codigo PHP realice la suma de los registros de dichos campos. (Para efecto del sistema automatizado)
Ya he probado con algunos script del código PHP y nada. Sin embargo te quiero mostrar uno de los codigos que si me funciona el PHP y es el siguiente:
Código PHP:
<?php
$db = new mysqli(localhost"jesus""jesus""bibliotecas");
if (
$db->connect_error)
die(
'Error de Conexion ('.$db->connect_errno.')'.$db->connect_error);

$query = ("SELECT * FROM  nuevousuario WHERE edad <= 12");

$result $db->query($query);

$numfilas $result->num_rows;
echo 
"Total mensual de nuevos inscritos ninos\n\n<br><br>".$numfilas."<br>";

$result->free();
$db->close();

?>

Última edición por Casimiro Notevi fecha: 12-08-2016 a las 09:36:29.
Responder Con Cita
  #8  
Antiguo 12-08-2016
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
A ver si ahora funciona...

Primero:
La instrucción siguiente te devuelve el número de registros que obtiene la consulta, en este caso ese resultado debe ser 1, que no es lo mismo que la suma de valores de un atributo.
Código PHP:
$numerodefilas $result->num_rows
Segundo: Como te indico Roman, debes obtener el valor que requieres con las instrucciones siguientes.
Código PHP:
$fila $result->fetch_row();  //Recupera el registro

$suma $fila[0];  //Recupera el valor de  SUM(numerodeconsulta) 
Tercero: Realizando los ajustes indicados en punto Segundo, el código debe quedar de la siguiente manera.
Código PHP:
<?php
$db = new mysqli(localhost"jesus""jesus""bibliotecas");
if (
$db->connect_error)
die(
'Error de Conexion ('.$db->connect_errno.')'.$db->connect_error);

$query =("SELECT  SUM(numerodeconsulta) FROM prestamodelibros WHERE tipodeusuario = 'infantil'");

$result $db -> query($query);

$fila $result->fetch_row();  //Recupera el registro

$numerodefilas $fila[0];  //Recupera el valor de  SUM(numerodeconsulta) 

echo "<H1>Consulta de obras  sala infantil\n\n<br></H1>".$numerodefilas."";

?>
Saludos cordiales
Responder Con Cita
  #9  
Antiguo 12-08-2016
DANIEL JESUS DANIEL JESUS is offline
Registrado
NULL
 
Registrado: ago 2016
Posts: 5
Poder: 0
DANIEL JESUS Va por buen camino
Talking El Sistema No Quiere Nada Conmigo

Aun el sistema no me quiere sumar.

Esta es la situacion:
tengo una tabla llamada PRESTAMODELIBROS. Esa tabla esta conformada por 11 campos:
cedula
nombre
apellido
edad
tipodeusuario
cota
autor
titulo
prestamolibros
fechadeprestamo y
fechade entrega.

Como lo mostre anteriormente, lo que quiero que el sistema me sume la cantidad de
prestamolibros por tipodeusurio, es decir, cuantos suman los infantiles y cuanto me suman los
adultos.

He intentado hacerlos con su esmerada ayuda pero no me resulta. Sin embargo, el SELECT me suma perfectamente
en el programa MYSQL QUERY BROWSER.
No se si me estare explicando bien lo que quiero.

Última edición por Casimiro Notevi fecha: 12-08-2016 a las 22:56:10.
Responder Con Cita
  #10  
Antiguo 13-08-2016
DANIEL JESUS DANIEL JESUS is offline
Registrado
NULL
 
Registrado: ago 2016
Posts: 5
Poder: 0
DANIEL JESUS Va por buen camino
Smile Por Resolvi El Codigo

Por fin pude corregir el cogigo. El que persevera vence.
Asi me quedo el codigo, ya lo probe y me funciono. Gracias a quienes colocaron su granito de arena para ayudarme.

Código SQL [-]

if (!$enlace) {
    die('No se pudo conectar: ' . mysql_error());
}
if (!mysql_select_db('bibliotecas')) {
    die('No se pudo seleccionar la base de datos: ' . mysql_error());
}
$resultado = mysql_query('SELECT COUNT(prestamolibros) FROM prestamodelibros WHERE tipodeusuario ="infantil"');
if (!$resultado) {
    die('No se pudo consultar:' . mysql_error());
}
echo "

PRESTAMO DE OBRAS INFANTIL\n\n

"; echo mysql_result($resultado, 0); // imprime el nombre del tercer empleado mysql_close($enlace); ?>
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Utilizar un valor de un Select dentro de otro Select gluglu SQL 6 15-04-2011 14:22:36
Problema conuna consulta select...not in (select ...) VRO Firebird e Interbase 2 11-08-2005 08:56:35
5 select de 5 tablas diferentes en un select solo sakuragi SQL 6 15-06-2005 18:57:06
Select anidado: Select from (select....) Malon SQL 2 14-10-2004 14:01:24
Select anidado ( Select from select ) Malon Firebird e Interbase 1 05-10-2004 04:14:38


La franja horaria es GMT +2. Ahora son las 01:59:00.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi