Kelven 1 Denunciar post Postado Janeiro 24, 2015 Olá, Pessoal é o seguinte eu preciso criar um arquivo .txt com todos os resultados de uma consulta de um banco de dados por exemplo, o meu código é esse: <?php $id = $_GET["id_album"]; $sql_ok = "UPDATE albuns SET selecionadas = 'ok' WHERE id = $id"; $query_ok = mysql_query($sql_ok); if($_POST['enviar']) { $check = $_POST['selecionar']; //esse foreach é o que eu preciso gravar dentro do arquivo foreach($check as $ch) { $sql = "UPDATE fotos SET escolhida = 'sim' WHERE id = '$ch'"; $query = mysql_query($sql); echo "<script type='text/javascript'>"; echo "document.location.href = '../../cliente'"; echo "</script>"; } } ?> esse foreach é o que eu preciso gravar dentro do arquivo, eu tinha feito de um jeito só que ele estava criando um arquivo .txt pra cada linha do banco de dados, mas eu preciso é de appenas um arquivo .txt para todas as linhas do banco de dados. alguém sabe como eu posso estar fazendo isso??? Compartilhar este post Link para o post Compartilhar em outros sites
WictorP 9 Denunciar post Postado Janeiro 24, 2015 http://www.samuelcorradi.com.br/manipulando_arquivos_php.html Compartilhar este post Link para o post Compartilhar em outros sites
Kelven 1 Denunciar post Postado Janeiro 24, 2015 a função de criar arquivos eu já conheço, o problema mesmo é salvar todos as linhas do banco de dados em uma variável só, tipo isso olha: $todoORetorno = while($mostrar = mysql_fetch_array($query)) {echo $mostrar["nome"]}; só que isso ai não dá certo Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 24, 2015 Você pode concatenar: $str = ''; while (...) { $str .= 'outro valor'; } echo $str; Porém, se usar o IN no seu SELECT, não precisará disso. Veja o problema 1 que aponto abaixo. Alguns problemas do seu script: 1. Query dentro de loop. Leia sobre o "Problema do N+1" [url=http://stackoverflow.com/questions/97197/what-is-the-n1-selects-issue]aqui[/ur] e aqui[/ur] 2. funções mysql_* estão obsoletas a desde o PHP 5.5. Prefira usar MySQLi ou PDO. Veja mais aqui: ://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql Compartilhar este post Link para o post Compartilhar em outros sites
Electronic 124 Denunciar post Postado Janeiro 24, 2015 salvar todos as linhas do banco de dados em uma variável só se voce usar mysqli nao precisa de while: $todoORetorno = mysqli_fetch_all($query)); OU faça assim $todoORetorno = array(); while($row = mysql_fetch_array($query)){ $todoORetorno[] = $row; } var_dump($todoORetorno); $todoORetorno é um array com tudo da tebela Compartilhar este post Link para o post Compartilhar em outros sites
Kelven 1 Denunciar post Postado Janeiro 24, 2015 é tipo assim o código que modifiquei agora, só que só tá salvando no arquivo txt o último checkbox marcado include("../set_cookie.php"); $id = $_GET["id_album"]; $sql_ok = "UPDATE albuns SET selecionadas = 'ok' WHERE id = $id"; $query_ok = mysql_query($sql_ok); $sql_pasta ="SELECT * FROM albuns WHERE id = '$id'"; $query_pasta = mysql_query($sql_pasta); $mostrar = mysql_fetch_array($query_pasta); $pasta = $mostrar["pasta"]; $selecao = ""; if($_POST['enviar']) { $check = $_POST['selecionar']; foreach($check as $ch) { $sql = "UPDATE fotos SET escolhida = 'sim' WHERE id = '$ch'"; $query = mysql_query($sql); $selecao = $ch; } $arquivo = fopen("../../img/albuns/$pasta/selecao.txt", "w"); $texto = $selecao; fwrite ($arquivo, $texto); fclose($arquivo); } O que eu posso está fazendo errado? Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Janeiro 24, 2015 Basta ler o manual, referente ao fpen: http://php.net/manual/pt_BR/function.fopen.php w - Abre somente para escrita; coloca o ponteiro do arquivo no começo do arquivo e reduz o comprimento do arquivo para zero. Se o arquivo não existir, tenta criá-lo. Ou seja, o problema é o parâmetro, troque pelo a ou r+ de acordo com o modo como você deseja salvar. Compartilhar este post Link para o post Compartilhar em outros sites
Kelven 1 Denunciar post Postado Janeiro 29, 2015 eu fiz uns testes aqui com esse código e ele só ta mostrando o último valor, só que eu queria que mostrasse todos os valores da consulta. $sql = "SELECT * FROM teste ORDER BY id"; $query = mysql_query($sql); $teste = ""; while($mostrar = mysql_fetch_array($query)) { $teste = $mostrar["nome"]; } echo $teste; Compartilhar este post Link para o post Compartilhar em outros sites
Maykel-ctba 233 Denunciar post Postado Janeiro 29, 2015 $sql = "SELECT * FROM teste ORDER BY id"; $query = mysql_query($sql); $teste = ""; while($mostrar = mysql_fetch_array($query)) { echo $mostrar["nome"]."<br />"; } Compartilhar este post Link para o post Compartilhar em outros sites
Kelven 1 Denunciar post Postado Janeiro 29, 2015 não é assim que eu preciso, eu preciso salvar todos os valores do while em uma variável para usar em uma função para criar o arquivo .txt Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Janeiro 29, 2015 é só concatenar $teste = ''; while($mostrar = mysql_fetch_array($query)) { $teste .= $mostrar["nome"]; } echo $teste; Compartilhar este post Link para o post Compartilhar em outros sites
Kelven 1 Denunciar post Postado Janeiro 29, 2015 aaaaaa agora saquei o que eu estava errando, era o ponto antes do = agora deu certo, muuuuito obrigado galera :D Compartilhar este post Link para o post Compartilhar em outros sites
Maykel-ctba 233 Denunciar post Postado Janeiro 29, 2015 Marque como resolvido seu tópico! ;-) Compartilhar este post Link para o post Compartilhar em outros sites