Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

leandrohb

[Resolvido] erro ao utilizar string em functions

Recommended Posts

opa alguem poderia me ajudar o exemplo abaixo funciona normalmente se eu não utilizar function mas, como terei que repeti a instrução preciso utilizar a função:

 

function top($var1){
$sql = mysql_query("SELECT * FROM top WHERE plataforma ='".$var1."' ORDER BY id DESC LIMIT 6") or die(mysql_error());
$sql1 = mysql_fetch_array($sql);
}

 

 

chamada da função:
top(1);

 

 

se alguem puder da uma luz agradeço... lembrando que se eu não utilizar function o codigo não dá erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz um teste removendo a variável e colocando o valor que eu queria direto e também não funcionou...

 

não mostra nenhum erro na tela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está buscando um inteiro (INT) como uma STRING. Tome cuidado com isso. Mais detalhes nos comentários do código.

Use o LIMIT da seguinte forma: LIMIT (índice inicial), (quantidade de valores a partir do indice);

<?php

require_once 'sua_conecxao_banco_de_dados.php';

//Define uma função qualquer
function foo($valor){
//Prepara a query de consulta. Note que aqui $valor não está entre aspas pois será
//enviado como INT 1 e não como uma STRING "1" (o que voce estava fazendo em seu código)
$sql = "SELECT * FROM 'top' WHERE plataforma = $valor ORDER BY 'id' DESC LIMIT 0,6 ";
$retorno = mysql_query($sql) or die("Erro MySQL: ".mysql_error());

//Não é muito recomendável atribuir valores em variaveis em condições, isso não quer
//dizer que não é possível. Manual PHP fornece exemplos com esse uso, mas no futuro
//isso poderá causar algum problema quando o PHP alterar de versão. Até o momento OK.
while (@$row = mysql_fetch_array($retorno)){ // @ evita avisos sobre assign
	//monte seu output aqui
}
}

//Se receber uma chamada GET ou POST
if($_REQUEST['top']){
$top = $_REQUEST['top']; //define uma variavel para receber o valor de TOP
foo($top); //passa o valor de $top para a função 'foo' definida acima
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual a mensagem de erro? ou nenhum valor é retornado;.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está buscando um inteiro (INT) como uma STRING. Tome cuidado com isso. Mais detalhes nos comentários do código.

Use o LIMIT da seguinte forma: LIMIT (índice inicial), (quantidade de valores a partir do indice);

<?php

require_once 'sua_conecxao_banco_de_dados.php';

//Define uma função qualquer
function foo($valor){
//Prepara a query de consulta. Note que aqui $valor não está entre aspas pois será
//enviado como INT 1 e não como uma STRING "1" (o que voce estava fazendo em seu código)
$sql = "SELECT * FROM 'top' WHERE plataforma = $valor ORDER BY 'id' DESC LIMIT 0,6 ";
$retorno = mysql_query($sql) or die("Erro MySQL: ".mysql_error());

//Não é muito recomendável atribuir valores em variaveis em condições, isso não quer
//dizer que não é possível. Manual PHP fornece exemplos com esse uso, mas no futuro
//isso poderá causar algum problema quando o PHP alterar de versão. Até o momento OK.
while (@$row = mysql_fetch_array($retorno)){ // @ evita avisos sobre assign
	//monte seu output aqui
}
}

//Se receber uma chamada GET ou POST
if($_REQUEST['top']){
$top = $_REQUEST['top']; //define uma variavel para receber o valor de TOP
foo($top); //passa o valor de $top para a função 'foo' definida acima
}
?>

 

Obrigado! quando eu chegar em casa vou testar as dicas que você deu e respondo se funcionou :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.