Ir para conteúdo

POWERED BY:

Arquivado

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

Bad - Lucas

Array em dados no banco de dados

Recommended Posts

Eu tenho uma tabela que com os números dos carro..

 

Eles são registrados com alguns valores aleatórios, são escritos 15 números aleatórios.. e eu preciso pegar esses números, colocá-los dentro de um array, e depois eu quero exprimir os valores que eu quero..

 

se eu estiver dando echo em um valor do array utilizando in_array, eu quero pegar o próximo valor e o valor anterior..

 

tem como fazer isso?

 

 

$numbers = mysql_query("SELECT number_value,name_car FROM cars");

$number_value = array();

while($number = mysql_fetch_assoc($numbers))
{
     $number_v[] = $number['number_value'];

if(in_array($number_v[$i++],"i121zUxg8sx54cG")){
echo $number['name_car'];
}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bad - Lucas, seja bem vindo ao fórum.

 

Para uma melhor participação, sugiro que leia as orientações para uma boa participação, dando ênfase especial às normas de conduta.

 

Seu post foi excluído em função de desrespeitar a norma 05.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bad - Lucas,

 

Ficou bastante confuso o que você está querendo exatamente, coloque aqui um exemplo dos dados da sua tabela e uma demonstração do que você quer fazer. Assim ficará mais fácil te ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu quero pegar o anterior e próximo valor da array

CREATE TABLE `cars` (
 `id` int(11) NOT NULL auto_increment,
 `number_value` int(11) NOT NULL default '0',
 `name_car` text NOT NULL,
 PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

 

 

Me disseram no msn que eu deveria utilizar next() e prev() pra fazer isso.. mas como e onde eu coloco esses códigos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bad - Lucas,

 

Veja:

 

$itens = array( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 );
$atual = 7;

echo 'O item atual é ' , $itens[ $atual ];

if ( $atual - 1 > 0 ) echo PHP_EOL , 'O item anterior é ' , $itens[ $atual - 1 ];
if ( $atual + 1 < count( $itens ) ) echo PHP_EOL , 'O próximo item é ' , $itens[ $atual + 1 ];

 

Veja também: current(), next(), prev()

Compartilhar este post


Link para o post
Compartilhar em outros sites

João, mas não tem como do jeito que eu quero não?

 

pegando valores do banco de dados..

 

pq o jeito q eu estou tentando está dando erro:

 

Warning: prev() [function.prev]: Passed variable is not an array or object in C:\AppServ\www\loja\carros.php on line 317

 

Eu queria pegar os valores utilizando array, e dando next e prev.. não tem como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Warning: prev() [function.prev]: Passed variable is not an array or object in C:\AppServ\www\loja\carros.php on line 317

 

Eu queria pegar os valores utilizando array, e dando next e prev.. não tem como?

 

Claro que tem, mas veja a mensagem de erro, você precisa passar para as funções prev ou next uma matriz e você passou alguma outra coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei assim:

 


$numbers = mysql_query("SELECT number_value,name_car FROM cars");

$number_value = array();

while($number = mysql_fetch_assoc($numbers))
{
     $number_v[] = $number['number_value'];
     $numbers = $number_v[$i++];

if(in_array($number_v[$i++],"i121zUxg8sx54cG")){
echo $number['name_car'];
}

}

echo prev($numbers);

 

é desse jeito q tá dando erro..

Compartilhar este post


Link para o post
Compartilhar em outros sites

$numbers = mysql_query("SELECT number_value,name_car FROM cars");
echo prev($numbers);

é desse jeito q tá dando erro..

 

Vai dar erro mesmo, a função mysql_query não retorna uma matriz, ela retorna um recurso, veja: http://br2.php.net/manual/en/function.mysql-query.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

while($number = mysql_fetch_assoc($numbers))
{
     $number_v[] = $number['number_value'];
     $numbe = $number_v[$i++];

if(in_array($number_v[$i++],"i121zUxg8sx54cG")){
echo $number['name_car'];
}

}

echo prev($numbe);

 

E ainda continuou com o erro!

Compartilhar este post


Link para o post
Compartilhar em outros sites

echo prev($numbe);

E ainda continuou com o erro!

 

Sim, por dois motivos:

 

1. $numbe está escrito errado, sua variável chama-se $number

2. Só vai funcionar dentro do while, fora do while a variável $number está com valor false porque já terminou todos os resultados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não cara, vou colocar comentários pra você ver..

 

$numbers = mysql_query("SELECT number_value,name_car FROM cars");
//Pega os valores no BD, você já sabe ¬¬

$number_value = array();
// Cria array, você tbm já sabe..

while($number = mysql_fetch_assoc($numbers))
{
//Cria o laço, você tbm já sabe..

     $number_v[] = $number['number_value'];
     //Não sei o que faz, só sei q tem que fazer assim..

     $numbe = $number_v[$i++];
     //Retorna todos os números, eu dei um echo e saiu todos..

     echo prev($numbe);
     //Eu devo colocar isso dentro do while? Pq me retornou umas 10 vezes o erro que eu mostrei


if(in_array($number_v[$i++],"i121zUxg8sx54cG")){
echo $number['name_car'];
}
//Verifica se o número está no array!

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

$number_v[] = $number['number_value'];
$numbe = $number_v[$i++];

Bad - Lucas, veja só

 

Você tem duas variáveis ai, uma delas é a matriz e a outra contém um item da matriz.

 

$number_v http://forum.imasters.com.br/public/style_emoticons/default/seta.gif matriz

$numbe http://forum.imasters.com.br/public/style_emoticons/default/seta.gif item da matriz

 

Tente dar o echo na matriz e veja qual será a saída.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei o echo assim:

echo $number_v;
E apareceu arrayarrayarray...

 

E dei outro echo assim:

echo $number_v[0];

E apareceu o número: 54sr1cs61z6e81a

 

Mas como eu farei pra dar o next, prev..?

 

ainda não entendi..

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza.. eu colqouei dentro do while e retornou todos os números anteriores ao que estava.. eu coloquei next e não retornou nada...

 

aí eu tirei o código do while e coloquei prev e não me retornou nada, depois eu coloquei next e me retornou apenas um número, ao qual seria o primeiro número do array..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se é mais ou menos isso que você precisa:

 

<?php 
$numbers = mysql_query( 'SELECT number_value,name_car FROM cars' );
$number_v = array();

while ( ( $number = mysql_fetch_assoc( $numbers ) ) !== false )
$number_v[] = array( 'number_value' => $number[ 'number_value' ] , 'name_car' => $number['name_car'] );

for ( $i = 0 , $t = count( $number_v ) ; $i < $t ; ++$i ){
if ( in_array( $number_v[ $i ][ 'number_value' ] , 'i121zUxg8sx54cG' ) ){
	echo 'O registro atual é ' , $number_v[ $i ][ 'name_car' ];

	if ( $i > 0 ) echo '<br />O registro anterior é ' , $number_v[ $i - 1 ][ 'name_car' ];
	if ( $i + 1 < $t ) echo '<br />O próximo registro é ' , $number_v[ $i + 1 ][ 'name_car' ];
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, não..

 

eu queria assim:

 

<a href="link.php?number_value....">O próximo registro é XXXXXXXXX</a>
<a href="link.php?number_value....">O registro anterior é XXXXXXXXX</a>

 

Aí eu queria apenas esses 2 links mostrando qual o próximo e anterior..

 

//////////////

o código desse ser colocado fora do while né?

 

vlw, foi quase isso.. só que não apareceu os números corretos..

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.