PHP Próximo MySQL Row - Como mover o ponteiro até que a função verifique true?

StackOverflow https://stackoverflow.com/questions/2542248

  •  23-09-2019
  •  | 
  •  

Pergunta

Eu tenho um script PHP que leva um valor de uma linha no meu banco de dados MySQL, o executa através de uma função e, se determinar, é verdade que retorna um valor e, se for falso, precisará ir para o próximo valor no banco de dados e Verifique esse até que eventualmente retorne a verdade. Eu acho que preciso usar mysql_fetch_assoc, mas não tenho muita certeza de que maneira de usá -lo ... eu gostaria de postar meu código para ser mais específico, mas é muito código e a maioria não tem influência esse assunto...

Nenhuma solução correta

Outras dicas

A "função" é algo que você poderia fazer no banco de dados? É realmente ineficiente processar todas as linhas da tabela para verificar se há algum tipo de condição. É exatamente nisso que os bancos de dados são bons, a saber, processar consultas com eficiência e obter respostas para você rapidamente.

Então, eu recomendo analisar como fazer tudo isso no lado do banco de dados, para que seu código PHP esteja apenas buscando o resultado final (ou seja, linhas filtradas pela função). Talvez se você fornecer mais detalhes sobre o que sua "função" está fazendo, uma resposta mais específica poderá ser fornecida.

Você pode usar o mysql_fetch_array e basta pular os valores buscados usando $ row [id] e não $ row ['nome']. Digamos que sua função retorne true, você apenas usaria o $ Row [LastId+1].

Se o ID não estiver incremental, isso pode funcionar:

$qry_result = mysql_query($qry) or die(mysql_error());
while ($row = mysql_fetch_array($qry_result)) {
    $result = yourfunction($row['whatever');
    if ($result != false)
         break;
}

Também há uma função PHP a seguir () que avança um ponteiro para o próximo elemento da matriz. Na sua função, você pode implementar um construtor de matrizes e depois pedalar entre os elementos com isso. Depende do que sua função realmente faz ou é o objetivo do script. Isso pode levar a alguma carga se houver muitos resultados.

  1. Você não deve verificar o banco de dados dessa maneira, como mencionado acima. O banco de dados tem uma pequena diferença em relação ao arquivo de texto simples.
  2. Você não deve ter um campo no seu banco de dados que tenha vários valores separados por Value1: Value2 | Value1: Value2 | Value1: Value2. Deve ser campos separados. O banco de dados tem uma pequena diferença do arquivo de texto sem formatação e é melhor aprender.

Você poderia tentar algo assim:

SELECT *
FROM table
WHERE field NOT LIKE '%$sessionvar:%';

Eu acho que é isso que você procura?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top