$usuarios= "SELECT * FROM usuarios";
$query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
$usuario = mysqli_fetch_array($query);
Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
Tenho uma function que precisa receber 02 argumentos.
Ela funciona se eu aplicar num select qualquer. Mas se eu aplicar num select dinâmico, ocorre erro.
Veja trecho do meu select.
...
SET @sql = @sql +', dbo.retornaIco_ItemBloq((SELECT COUNT(*) FROM dbo.tab AS TT2 WHERE TT2.codCategTreina = CTT.id),'+@title+') AS ''resp'''
...
No caso, o primeiro argumento da function dbo.retornaIco_ItemBloq é um SELECT COUNT.
O segundo argumento é uma variável (que está devidamente declarada e definida).
O erro ocorre porque ao executar (chamando EXEC(@sql) ), o SQL entende que o segundo argumento é uma coluna da consulta principal, pois existe uma vírgula antes da variável @title (que é o segundo argumento da function).
Repito. Se eu aplicar essa function num select normal, funciona normalmente. Porém, preciso que funcione num SQL dinâmico porque é esse é o padrão que estou adotando para o sistema todo.
A function dbo.retornaIco_ItemBloq faz o seguinte:
1) Recebe o valor do COUNT e da variável @title
2) Se o COUNT for maior que Zero, cria uma tag HTML (uma SPAN), define sua title com o valor da variável @title e passa para uma variável
3) Retorna o HTML que será exibido no resultado da consulta principal
É super simples.
Olá, estou a um tempo tentando acrescentar um codigo na coluna do SQL na qual seria VARBINARY
A Coluna atual contém o seguinte codigo binary: Código (01)
0x020009004C0101434D0101465C0101485D0101499801014B8401014E8501014F86010150D00009017A0014247D0014257B0014261600090201000903F9001420FA0014229F000923F8001427DF000128730014297600142A7E00142BFB00142CA3010147E000142DE100142EA40101443900120424001405C40101457400142F770014307F0001317C001232E6000421780001332C010A522F0108533A010354380103553001085637010357A5010166A6010167
No codigo acima eu gostaria de acrescentar o seguinte codigo: Código (02)
0xCC010120CD010121CE010122CF010123
no caso eu quero criar uma procedure que ao executar a função ele adicione o codigo 02 no código 01. no caso o codigo ficaria desta forma:
Preciso corrigir o erro "Somente uma expressão pode ser especificada na lista de seleção quando a subconsulta não é introduzida com EXISTS." da minha consulta.
SELECT
TA.titulo AS 'Trilha'
, (SELECT
CAST(ROUND((Comportamental * 100.0) / (Comportamental + Técnico), 2) AS DECIMAL(5,1)) AS Comportamental
,CAST(ROUND((Técnico * 100.0) / (Comportamental + Técnico), 2) AS DECIMAL(5,1)) AS Técnico
FROM (
SELECT
SUM(CASE WHEN dbo.tabB.enfoque = '1' THEN 1 ELSE 0 END) AS Comportamental,
SUM(CASE WHEN dbo.tabB.enfoque = '2' THEN 1 ELSE 0 END) AS Técnico,
COUNT(*) AS Total
FROM dbo.tabB
) tab
)
FROM dbo.tabA AS TA
Nessa consulta, preciso trazer o título (da tabA) e o resultado de um cálculo feito na subconsulta, nos campos Comportamental e Técnico.
Seguinte,
Eu tenho uma página de atualização de lista de faixas que estão agrupados por álbum, com os dados vindo através de parâmetros na url como o albumID e detalhes e são retornados dentro de um while.
O que eu queria é que ele atualizasse todos os campos que fossem editados se eles fossem modificados, mas o que o ocorre é que apenas o último registro é atualizado.
E este é o código que uso pra fazer o UPDATE no banco de dados:
<?php
require_once "../db/albuns.php";
if(isset($_POST['update'])){
$trackNumero = $_POST['trackNumero'];
$trackTitulo = mysqli_real_escape_string($conecta2, $_POST['trackTitulo']);
$trackTraducao = $_POST['trackTraducao'];
$trackID = $_POST['trackID'];
$albumID = $_POST['albumID'];
$sqlUpdate = "UPDATE `faixas` SET `trackTitulo` = '$trackTitulo', `trackNumero` = '$trackNumero', `trackTraducao` = '$trackTraducao' WHERE `albumID` = $albumID AND `trackID` = $trackID";
if($atualizaDados = mysqli_query($conecta2, $sqlUpdate) == true){
var_dump($sqlUpdate);
//header("location: ../../albuns.php?update=sucesso");
} else {
//header("location: ../../albuns.php?update=erro");
}
}
?>
Como eu faria para que cada linha fosse atualizada individualmente? Já tentei diversos métodos, mas o resultado continua sendo a atualização apenas do último registro no banco, ignorando o restante das atualizações.