Ir para conteúdo

POWERED BY:

Arquivado

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

Marcel Sartori

[Resolvido] Exibir registro do Select pelo ìndice [n]

Recommended Posts

Fala galera, tudo bem?

 

Estou precisando mostrar um registro que veio de um SELECT do banco, mas preciso mostrá-lo pelo índice dele, por exemplo.

 

Explicando melhor:

Tenho um site de notícias, que tem 6 destaques principais.

Eles são formatados em 2 tipos diferentes, em 2 colunas: 2 maiores em cima, e 4 menores sob os maiores, como mostra o exemplo abaixo:

 

destaques.gif

 

É possível, após a consulta eu exibir o registro pelo índice dele? Por exemplo:

 

Consulta: $sql "SELECT * FROM destaques WHERE data_ativacao >= $data_atual ORDER BY data_ativacao LIMIT 0, 6"

 

Resultado: $sql['titulo'][0];

 

Alguém sabe como poderia fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade, o seu raciocínio está até correto, só a ordem inversa. Seria $resultado[$linha][$campo]. O problema é que mysql não retorna um "fetchAll".

 

Dá pra trabalhar assim:

 

$conn = mysql_connect('host','usr','pwd');
mysql_query('use NOMEDOBANCO;');

$query  = "select * from NOMEDATABELA";
$result = mysql_query($query);

// Imprime o valor
echo mysql_result($result, $linha, $coluna);

 

Mais informações e exemplos: http://br2.php.net/manual/en/function.mysql-result.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara da pra você fazer desse jeito tbm, acho mais viavel.

 

 


function select($query){
       $array = array("UPDATE", "INSERT", "DELETE");
       $erro = 0;
foreach($array as $v){
	if(stripos($query, $v)){
		$erro++;
	}
}
if(substr(strtoupper($query), 0, 6) != "SELECT" or $erro != 0){
	echo "Sua Query = " . $query . "<br />ISSO NÃO É UMA CONSULTA DE SELEÇÃO";
	return false;
}else{
	$re = mysql_query($query, $this -> link) or die(mysql_error());

	$data = array();
	$c = 0;

         	while($l = mysql_fetch_assoc($re)){
	foreach($l as $k => $v){
		$data[$c][$k] = $v; 
	}
	$c++;
}		
return $data;			
}


$query = "SELECT * FROM table";
$re = select($query);

echo $re[3]['coluna1']; //ele pega a coluna1 da linha 3; sendo que a linha 3 na verdade é a 4, pois a 1 é a 0;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara da pra você fazer desse jeito tbm, acho mais viavel.

 

 

 


function select($query){
       $array = array("UPDATE", "INSERT", "DELETE");
       $erro = 0;
foreach($array as $v){
	if(stripos($query, $v)){
		$erro++;
	}
}
if(substr(strtoupper($query), 0, 6) != "SELECT" or $erro != 0){
	echo "Sua Query = " . $query . "<br />ISSO NÃO É UMA CONSULTA DE SELEÇÃO";
	return false;
}else{
	$re = mysql_query($query, $this -> link) or die(mysql_error());

	$data = array();
	$c = 0;

         	while($l = mysql_fetch_assoc($re)){
	foreach($l as $k => $v){
		$data[$c][$k] = $v; 
	}
	$c++;
}		
return $data;			
}


$query = "SELECT * FROM table";
$re = select($query);

echo $re[3]['coluna1']; //ele pega a coluna1 da linha 3; sendo que a linha 3 na verdade é a 4, pois a 1 é a 0;

 

 

Falta um "}" do while ali. Não é performática. Não é coerente com as outras funções do driver.

Que tal assim?

 

define('MYSQL_FETCH_ARRAY', NULL);
define('MYSQL_FETCH_ASSOC', 1);
define('MYSQL_FETCH_OBJECT', 2);

function mysql_fetch_all($resource, $mode = MYSQL_FETCH_ARRAY)
{
   $fetch  = array('mysql_fetch_array','mysql_fetch_assoc','mysql_fetch_object');
   $func   = $fetch[$mode];
   $output = array();
   while (FALSE !== ($row = $func($resource)) {
       $output[] = $row;
   }
   return $output;
}

 

Se houver algum erro, ficará a cargo do PHP emití-lo. Se o recurso não possuir linhas, o retorno será um Array vazio, independente de ser um Insert ou um Select sem resultados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que tal assim :D

 

$stm = $pdo->query($sql);
$rows = $stm->fetchAll();

 

@braços e fiquem com Deus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que tal assim :D

 

$stm = $pdo->query($sql);
$rows = $stm->fetchAll();

 

@braços e fiquem com Deus!

 

Qual biblioteca você tá usando?? mysql, mysqli ou PDO?

 

 

Opa, Evandro tô usando MySql!

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.