Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   trabajare con SELECT (https://www.clubdelphi.com/foros/showthread.php?t=90678)

winckelman vera 10-08-2016 19:47:38

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;


roman 10-08-2016 20:55:04

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

DANIEL JESUS 11-08-2016 05:47:29

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.

Casimiro Notevi 11-08-2016 09:28:57

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 :)

DANIEL JESUS 11-08-2016 18:52:02


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."";

?>


roman 11-08-2016 19:18:02

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

DANIEL JESUS 12-08-2016 05:42:13

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();

?>


cloayza 12-08-2016 15:55:00

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

DANIEL JESUS 12-08-2016 20:36:08

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.

DANIEL JESUS 13-08-2016 23:45:49

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); ?>


La franja horaria es GMT +2. Ahora son las 01:52:27.

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