Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Preciso fazer uma busca de modo que me traga o registro que nao consta na tabela, parece estranho e é, pois na verdade foi meio que uma gambiarra que coloquei no código pois preciso que me exiba o profissional que nao está ocupado no momento, acho que fui claro.
NESTE TRECHO FAÇO O SELECT DE MODO QUE ME TRAGA OS PROFISSIONAIS QUE JA ESTAO AGENDADOS
$text = mysqli_query($conn, "SELECT a.id_prof_escolhido, u.niveis_acesso_id FROM agendamento AS a JOIN usuarios AS u ON u.id = a.id_prof_escolhido WHERE dia = '$diaAgendado' AND hora_inicio = '$hora1' GROUP BY a.id_prof_escolhido ");
$text2 = mysqli_fetch_array($text);
AQUI É O MESMO CÓDIGO SÓ QUE ME TRAZ DE FORMA DECRESCENTE, fiz dessa forma pois só com o código acima ele só enxergava o primeiro registro
$gambiarra = mysqli_query($conn, "SELECT a.id_prof_escolhido, u.niveis_acesso_id FROM agendamento AS a JOIN usuarios AS u ON u.id = a.id_prof_escolhido WHERE dia = '$diaAgendado' AND hora_inicio = '$hora1' GROUP BY a.id_prof_escolhido DESC ");
$gambiarra2 = mysqli_fetch_array($gambiarra);
O PROBLEMA AGORA É QUE ELE SÓ ENXERGA O PRIMEIRO E O ULTIMO, E NAO OS INTERMEDIARIOS
$nome = mysqli_query($conn, "SELECT id, nome, niveis_acesso_id, foto FROM usuarios WHERE id NOT IN('$text2[0]', '$gambiarra2[0]') AND niveis_acesso_id = '$escolhido' ");
AQUI FAÇO O SELECT DE MODO QUE NAO ME TRAGA QUEM JA ESTÁ SELECIONADO ACIMA, COM BASE EM UMA OUTRA TABELA.
GOSTARIA QUE ESTE NOT IN ME TROUXESSE QUEM ESTÁ DISPONIVEL, MAS QUE NAO CONSTE DOS SELECTS ANTERIORES, NAO SEI SE CONSEGUI SER CLARO.
ESPERO UMA SUGESTAO DOS COLÉGAS POIS TALVEZ SEJA ALGO SIMPLES MAS NAO SEI O QUE FAZER, PENSEI EM BETWEEN MAS TBÉM NAO VAI DAR CERTO. BOM.. ESPERO SUGESTOES.Tentei as duas sugestões, mas nenhuma deu certo, usando fetch_all sumiu tudo.
Tente assim:
**$text **= mysqli_query($conn, "SELECT a.id_prof_escolhido, u.niveis_acesso_id FROM agendamento AS a JOIN usuarios AS u ON u.id = a.id_prof_escolhido WHERE dia = '$diaAgendado' AND hora_inicio = '$hora1' GROUP BY a.id_prof_escolhido ");
$dados = mysqli_fetch_all(**$text**,MYSQLI_ASSOC);
echo '<pre>';
print_r($dados);
echo '</pre>';
die();
E diga o que aparece.Usei um LIMIT 10 OFFSET 1 e deu certo, talvez apresente outros problemas irei popular o BD e fazer mais uns testes, se nao der certo vou tentar a solução que você sugeriu, em breve informou o que ocorreu. Obrigado.
Bom testei com OFFSET deu problema, o que eu preciso é, tenho duas tabelas, a usuarios e a agendamentos, preciso exibir os usuarios que NÃO estão agendados. Tentei o seu código e simplesmente sumiu tudo, inclusive testei isoladamente e a página ficou em branco, pode dar mais alguma sugestao?
Olá!
No início do seu arquivo .php, ative a exibição de erros assim:
<?php
ini_set("display_errors", 1);
error_reporting(E_ALL);
Execute novamente o script com o fetch_all e veja se aparece alguma mensagem de erro no browserFiz o teste isoladamente e exibiu o erro : Fatal error: Call to undefined function mysqli_fetch_all() in /home/storage/f/7a/43/.....

Olá! Segundo o manual, pra usar o fetch_all do mysqli você precisa usar no mínimo o php 5.3:
http://php.net/manual/pt_BR/mysqli-result.fetch-all.php
mysqli_fetch_all
(PHP 5 >= 5.3.0, PHP 7)
mysqli_result::fetch_all -- mysqli_fetch_all — Fetches all result rows as an associative array, a numeric array, or both
Se não puder usar uma versão mais nova do php, faça o procedimento de iteração usando um while:
while ($row = mysqli_fetch_assoc($text)) {
$dados[] = $row;
}
echo '<pre>';print_r($dados);echo '</pre>';die();Fiz um teste pegando apenas uma tabela e deu certo, acho que por ser um JOIN nao é possivel fazer. Ficou mostrando vazio.

Olá!
mysqli_fetch_* só retorna um registro mesmo!
você precisa iterar o resultado usando um while ou então usar o fetch_all, veja: http://php.net/manual/pt_BR/mysqli-result.fetch-all.php