Ir para conteúdo

POWERED BY:

Arquivado

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

bigcheat

[Resolvido] Backup De Várias Linhas Da Tabela Por Entry

Recommended Posts

Estou tentando fazer uma espécie de backup de vários itens de uma tabela sem precisar fazer muito esforço, só que o código nunca pega as linhas da forma que eu quero, na ordem certa, ele sempre repete um ou dois itens. Alguém sabe o que deve ser e o que eu posso fazer para corrigir isso? Logo abaixo está os arquivos que o script compõe. Aguardo uma resposta.

 

config.php

<?php

$SERVIDOR = "localhost";
$USUARIO = "root";
$SENHA = "";
$DATABASE_W = "world";
$DATABASE_C = "characters";
$DATABASE_B = "bigcheat";

$CONEXAO_W = mysql_connect (
$SERVIDOR,
$USUARIO,
$SENHA
);

$CONEXAO_C = mysql_connect (
$SERVIDOR,
$USUARIO,
$SENHA
);

$CONEXAO_B = mysql_connect (
$SERVIDOR,
$USUARIO,
$SENHA
);

$W = mysql_select_db ($DATABASE_W,$CONEXAO_W);
$C = mysql_select_db ($DATABASE_C,$CONEXAO_C);
$B = mysql_select_db ($DATABASE_B,$CONEXAO_B);

define('DEBUG',true);

?>

 

index.php

<?php

include "config.php";

$tipo_adc = 0;

$itens = "90000,90001,90002";
$itens = explode(",",$itens);

$table = "item_template";

$script = "";
$fields = "";
$fields_v = "";
$valors = "";

for($i=0;$i<count($itens);$i++)
{

$sql = mysql_query("SHOW COLUMNS FROM ".$DATABASE_W.".".$table);

if($tipo_adc == 1 || $tipo_adc == 0) $script .= "INSERT";
if($tipo_adc == 2) $script .= "REPLACE";
$script .= " INTO ".$table." (";
while($row = mysql_fetch_assoc($sql)){
	$fields .= $row['Field'].',';
}
$fields = substr_replace($fields,'',strlen($fields)-1,1);
$fields = explode(",",$fields);

for($ii=0;$ii<count($fields);$ii++)
{
	$fields_v .= $fields[$ii].',';
}

$fields_v = substr_replace($fields_v,'',strlen($fields_v)-1,1);

$script .= $fields_v;	
$script .= ") VALUES (";

$sql = mysql_query("SELECT * FROM ".$DATABASE_W.".".$table." WHERE entry='".$itens[$i]."'");
while($r = mysql_fetch_array($sql))
{
	//for($o=0;$o<count($fields);$o++)
	foreach ($fields as $o => $o)
	{
		global $r,$fields;

		if(is_string($r[$fields[$o]]))
		{
			$valors .= "'.$ item['".$fields[$o]."'].',";
		}elseif(is_numeric($r[$fields[$o]]))
		{
			$valors .= $r[$fields[$o]].",";
		}
	}
	unset($o);
	$valors = substr_replace($valors,'',strlen($valors)-1,1);

	$script .= $valors;
	$script .= ");

";
}

}

echo "<textarea>".$script."</textarea>";

?>

 

Abraços,

bigCheat.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Descobri o problema por sí só, as variáveis estavam continuando preenchidas por causa que só era determinadas antes do for, ou seja, enquanto eu não recomeçasse o script elas não se destruiriam para que eu podesse começar novamente o outro código do outro backup. Em fim, bastou dar um unset no fim do script, em cada variável. Espero que ajude a outros.

 

Abraços,

bigCheat. :)

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.