Ir para conteúdo

POWERED BY:

Arquivado

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

Jurian Batista

Problema com UPDATE entre PHP e MYSQL

Recommended Posts

Olá to tentando programar um site sobre um time de Futebol.

 

Criei uma seção no site para cadastrar os jogadores.

 

já consegui Cadastrar e Excluir mas não tô conseguindo Editar será que alguem pode me ajudar?

 

a estrutura da tabela "elenco" é a seguinte:

CREATE TABLE IF NOT EXISTS `elenco` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `nome` varchar(100) CHARACTER SET utf8 NOT NULL,
  `camisa` char(20) CHARACTER SET utf8 NOT NULL,
  `posicao` char(20) CHARACTER SET utf8 NOT NULL,
  `data` date NOT NULL,
  `foto` varchar(150) CHARACTER SET utf8 NOT NULL DEFAULT 'semfoto.jpg',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
 
o código que uso para a página "atualizar-jogador.php" é:
<?php


require_once '../includes/admin.php';

    $jog_id = $_GET["jog_id"];
    $nome = $_POST["jog-nome-up"];
    $camisa = $_POST["jog-camisa-up"];
    $posicao = $_POST["jog-posicao-up"];
    $data = $_POST["jog-data-up"];
      
    mysql_query("UPDATE elenco SET nome=$nome, camisa=$camisa, posicao=$posicao, data=$data WHERE id=$jog_id");
    header("Location: ../alterar-jogador.php");

// Atualizar Imagem

$im_jog = $_FILES["jog-imgPerfil-up"];

if(!empty($im_jog['name'])){
    
$imNome = $im_jog['name'];
$deImg  = "../../elenco/".$imNome;

$SQL_IM = mysql_query("SELECT foto FROM elenco WHERE  id=$jog_id");

while($imP = mysql_fetch_array($SQL_IM)){
    $nmImP = $imP['foto'];
}

$dir = "../../elenco/".$nmImP;

if(file_exists($dir) && $nmImP != "semfoto.jpg"){
    unlink($dir);
}
    
move_uploaded_file($im_jog['tmp_name'], $deImg);

mysql_query("UPDATE elenco SET foto='$imNome' WHERE id=$jog_id");

header("Location: ../alterar-jogador.php");
    
}
    

?>

Com certeza o erro está nessa página...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o problema ? o que acontece de errado ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

fica tudo em branco a página e não está editando a tabela no banco de dados. Carrega todos os campos separados por ID de jogador e está selecionando cada um separadamente pra editar mas não faz a atualização quando clica no botão atualizar dados. que por sua vez faz ação em "atualizar-jogador.php"

img.jpg

o código para a página "alterar-jogador.php" é:

<?php 

require_once "includes/header.php";
	
?>
<meta charset="utf-8" />
	<main>
		<section id="wrapper">
			
			<section id="content">
            
            <section id="alterar-perfil">
            <h1>Alterar Jogador</h1>
            <?php 
				$jog_id  = $_GET["jog_id"];
                $SQL_E = mysql_query("SELECT * FROM elenco WHERE id=$jog_id");
                
                while($ln = mysql_fetch_assoc($SQL_E)){
                    $jog_id = $ln['id'];
                    $jog_no = $ln['nome'];
                    $jog_ca = $ln['camisa'];
                    $jog_po = $ln['posicao'];
					$jog_da = $ln['data'];
                    $im_jog = $ln['foto'];
                }
            ?>
            <form action="acoes/atualizar-jogador.php?jog_id=<?php echo $jog_id; ?>" method="POST" enctype="multipart/form-data">
            <table cellpadding="0" cellspacing="0" border="0">
               <tr>
                 <td>ID.:</td>
                 <td><?php echo $jog_id; ?></td>
               </tr>
			   <tr>
                 <td>Nome.:</td>
                 <td><input type="text" name="jog-nome-up" value="<?php echo $jog_no; ?>" /></td>
               </tr>
               <tr>
                 <td>Camisa.:</td>
                 <td><input type="text" name="jog-camisa-up" value="<?php echo $jog_ca; ?>" /></td>
               </tr>
                <tr>
                  <td>Posição.:</td>
                  <td><input type="text" name="jog-posicao-up" maxlength="10" value="<?php echo $jog_po; ?>" /></td>
                </tr>
                <tr>
                  <td>Data.:</td>
                  <td><input type="text" name="jog-data-up" maxlength="10" value="<?php echo $jog_da; ?>" /></td>
                </tr>
                <tr>
                  <td colspan="2" align="right"><input type="submit" value="Atualizar Dados" /></td>
                </tr>
            </table>
            <table id="imgPerfil">
            <tr>
              <td><img src="../elenco/<?php echo $im_jog; ?>" width="180" height="180" /></td>
            </tr>
            <tr>
               <td><input type="text" id="imagem-noticia-carregar" placeholder="Selecione uma imagem" />
				   <input type="file" hidden id="imagem-carregada" name="jog-imgPerfil-up" /></td>
            </tr>			
            </table>
            </form>
            </section>
			
			<section id="categorias-existentes">
            <h1 class="btm">Jogadores Cadastrados:</h1>
            <table border="0" cellpadding="0" cellspacing="0">
            	<tr>
					<td>ID</td>
                	<td>Nome do Jogador</td>
                    <td>N° da Camisa</td>
					<td>Posição</td>
					<td>Foto</td>
					<td>Editar</td>
                    <td>Excluir</td>
                </tr>
                <?php 
					$SQL_CT = mysql_query("SELECT * FROM elenco");
						while($CTN = mysql_fetch_array($SQL_CT)){
						 $jog_id = $CTN['id'];
						 $jog_no = $CTN['nome'];
						 $jog_ca = $CTN['camisa'];
						 $jog_po = $CTN['posicao'];
						 $im_jog = $CTN['foto'];
				?>
                <tr>
				<td><?php echo $jog_id; ?></td>
                <td><?php echo $jog_no; ?></td>
				<td><?php echo $jog_ca; ?></td>
				<td><?php echo $jog_po; ?></td>
				<td><img src="../elenco/<?php echo $im_jog; ?>" width="50"></td>
				<td><a href="alterar-jogador.php?jog_id=<?php echo $jog_id; ?>">Editar</a></td>
				<td><a href="excluir-jogador.php?jog_id=<?php echo $jog_id; ?>">Excluir</a></td>
                </tr>
                <?php } ?>
            </table>
            </section>
            
            </section> <!-- Content -->
				
		</section> <!-- Wrapper -->
		
	</main>

<?php require "includes/footer.php"; ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

troca:

   mysql_query("UPDATE elenco SET nome=$nome, camisa=$camisa, posicao=$posicao, data=$data WHERE id=$jog_id");
por

   mysql_query("UPDATE elenco SET nome=$nome, camisa=$camisa, posicao=$posicao, data=$data WHERE id=$jog_id") or die(mysql_error());
e corrija o erro que aparecer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

além das dicas acima, tente colocar as variaveis entre aspas simples; ex:

 

"UPDATE elenco SET nome='$nome', camisa='$camisa', posicao='$posicao', (...)

 

mas veja direito se declarou essas variaveis corretamente.

 

a proposito, só 1 curiosidade: pq tem 2 pgs "alterar-jogador" e "atualizar-jogador"?

Compartilhar este post


Link para o post
Compartilhar em outros sites

um mostra as informações pelo select e outro faz o update.

 

Agora tá dando estes erros:

 

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at K:\xampp\htdocs\projeto\clubes\saojorge\painel\acoes\atualizar-jogador.php:1) in K:\xampp\htdocs\projeto\clubes\saojorge\painel\acoes\atualizar-jogador.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at K:\xampp\htdocs\projeto\clubes\saojorge\painel\acoes\atualizar-jogador.php:1) in K:\xampp\htdocs\projeto\clubes\saojorge\painel\acoes\atualizar-jogador.php on line 15

 

 

"Vale lembrar que não sou Expert sei HTML, CSS mas em PHP sou iniciante principalmente na questão variáveis não consigo dar condições não sei quando precisa ou não apesar de já ter visto vários vídeos ainda não consigo programar sozinho sem olhar em outros códigos já prontos."

 

Se puderem me ajudar a simplificar tudo também ia ajudar lembrando que contem imagem de perfil e exibe ela na hora de editar. Desde já agradeço a todos que me ajudarem em meu projeto.

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.