Ir para conteúdo

Arquivado

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

Kelven

Salvar while em uma váriavel

Recommended Posts

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

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

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

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

é 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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.