[Livro PHP e MySQL] Dúvidas em geral

php-mysql

#63

Olá, @AVenciguerra,

Em uma aplicação em produção o servidor do banco de dados provavelmente vai estar separado do servidor da aplicação PHP. Um dos capítulos do livro é sobre come hospedar a aplicação online e esses assuntos são discutidos :slight_smile:

Abraços


#64

Tinha colocado uma dúvida aqui, mas era um erro de digitação meu. Apaguei pois não valia a pena, não é a dúvida de outros usuários. Obrigado a todos!


#65

Ok, legal que você encontrou o problema, @claudineyjr. Muitas vezes isso acontece. Um simples erro de digitação que nos tira do sério :slight_smile:


#67

boa tarde, gostaria de saber se a resposta para os desafios se encontra em algum lugar??


#68

Olá, @mateuscaldas. Não as respostas não estão publicadas. Pode ser que alguém tenha publicado, mas não tenho essa informação. Aqui no fórum tem algumas discussões sobre as soluções.


#69

Bom dia @evaldojuniorbento , O meu código de conexão com o banco está igual o do livro, porém ao executar ele só está mostrando na tabela os dados numéricos, ou seja a prioridade e a coluna concluida, os que contém texto ele da o seguinte erro:
Notice: Undefined index: txtNome in C:\xampp\htdocs\tarefas\template.php on line 66
Como resolver?


#70

Verifique se os campos no banco são os mesmos que você está acessando no código.

Você consegue ver os dados direto no PHPMyAdmin?


#71

Era isso mesmo… Eu havia mantido o igual ao name, dos inputs… Obrigado pela ajuda :blush:


#72

Boa Tarde @evaldojuniorbento, Apereceu o seguinte erro no meu arquivo template_tarefa, estou no final do capítulo 10.
Warning: Illegal string offset ‘nome’

O que poderia ser isso?


#73

Oi, @FernancoCendretti. Parece que você está tentando acessar uma string como se fosse um array. Confere a variável.


#74

Problemas com FOREACH
Citar
Notice: Undefined variable: lista_tarefas in C:\xampp\htdocs\tarefas\template.php on line 25
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\tarefas\template.php on line 25

<?php

session_start();
if(isset($_GET['nome'])){
	$_SESSION['lista_tarefas'][]=$_GET['nome'];
}
$lista_tarefas = array();
if(isset($_SESSION['lista_tarefas'])){
	$lista_tarefas = $_SESSION['lista_tarefas']; 
	 //<!-- echo "Nome informado: ". $_GET['nome']; -->
} else{
	$lista_tarefas = array();
}
 include "template.php";

?>

------------ TEMPLATE

Gerenciador de Tarefas

Gerenciador de Tarefas

Nova Tarefa Tarefa: <?php foreach ( $lista_tarefas as $tarefa): ?> <?php endforeach; ?>
Tarefas:
<?php echo $tarefa; ?>
Descrição (Opcional) Prazo (Opicional) Prioridade: Baixa Média Alta

#76

@evaldojuniorbento, o que na realidade faltava era a colchetes na função de buscar os anexos, Obrigado pela ajuda


#77

Como faço para acrescentar a porta do servidor do banco de dados??
Assim:

$bdServidor = ‘localhost’;
$bdPorta = 8889;
$bdUsuario = ‘sistematerefas’;
$bdSenha = ‘sistema’;
$bdBanco = ‘tarefas’;

$conexao = mysqli_real_connect($link, $bdServidor, $bdPorta, $bdUsuario, $bdSenha, $bdBanco);


#78

Olá, @maraiva.

Veja a sequencia dos parametros em http://php.net/manual/pt_BR/mysqli.real-connect.php :slight_smile:


#79

Olá, @evaldojuniorbento,

Esse problema eu consegui resolver. Agora estou com outro problema.
Não estou conseguindo trazer os dados do banco. Já estou com a função buscar_tarefas pronta e parece q a variável $lista_tarefas não está recebendo os dados do banco. Já tentei de tudo para tentar resolver e não consegui solucionar. Pode me ajudar??

Códigos: https://github.com/InFog/phpmysql/issues/2


#80

Olá @evaldojuniorbento, estou com problemas no capítulo 6, o foreach dentro do arquivo tamplate.php
não está reconhecendo a variável $lista_tarefas que está no arquivo tarefas.php.

Na página HTML aparece a seguinte mensagem de erro:

Undefined variable: lista_tarefas in C:\wamp\www\DesenvolvimentoWebComPHPeMySQL\capitulo5\template.php on line 63

Warning: Invalid argument supplied for foreach() in C:\wamp\www\DesenvolvimentoWebComPHPeMySQL\capitulo5\template.php on line 63

Vi que algumas pessoas do fórum também passaram por isso e resolveram com a dica que você deu.
Que seria adicionar o código:

if (isset($_SESSION[‘lista_tarefas’])) {
$lista_tarefas = $_SESSION[‘lista_tarefas’];
} else {
$lista_tarefas = array();
}

No meu caso mesmo fazendo isso não resolve.


Segue o código de tarefas.php

<?php
session_start();
		
if (array_key_exists('nome', $_GET) && $_GET['nome'] != '') {
	$tarefa = [];

	$tarefa['nome'] = $_GET['nome'];

	if (array_key_exists('descricao', $_GET)) {
		$tarefa['descricao'] = $_GET['descricao'];
	} else {
		$tarefa['descricao'] = '';
	}

	if (array_key_exists('prazo', $_GET)) {
		$tarefa['prazo'] = $_GET['prazo'];
	} else {
		$tarefa['prazo'] = '';
	}

	$tarefa['prioridade'] = $_GET['prioridade'];

	if (array_key_exists('concluida', $_GET)) {
		$tarefa['concluida'] = $_GET['concluida'];
	} else {
		$tarefa['concluida'] = '';
	}

	$_SESSION['lista_tarefas'][] = $tarefa;
}

if (isset($_SESSION['lista_tarefas'])) {
	$lista_tarefas = $_SESSION['lista_tarefas'];
} else {
	$lista_tarefas = array();
}

include "template.php";
?>

Obs.: Já testei declarando $lista_tarefas antes do primeiro e o último if, mas não funcionou.


Segue o código de template.php

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<link rel="stylesheet" type="text/css" href="./CSS/tarefas.css">
		<title>Gerenciador de Tarefas - Capítulo 5</title>
	</head>
	<body>
	<h1>Gerenciador de Tarefas</h1>

	<form>
		<fieldset>
			<legend>Nova Tarefa</legend>
			<label>
				Tarefa: <input type="text" name="nome" />
			</label>

			<label>
				Descrição (opcional): <textarea name="descricao"></textarea>
			</label>

			<label>
				Prazo (opcional):
				<input type="text" name="prazo" />
			</label>

			<fieldset>
				<legend>Prioridade:</legend>
				<label>
					<input type="radio" name="prioridade" value="baixa" checked /> Baixa
					<input type="radio" name="prioridade" value="media" /> Média
					<input type="radio" name="prioridade" value="alta"  /> Alta
				</label>
			</fieldset>

			<label>
				Tarefa concluída:
				<input type="checkbox" name="concluida" value="sim" />
			</label>

			<input type="submit" value="Cadastrar" />
		</fieldset>
	</form>

	<table>
		<tr>
			<th>Tarefas</th>
			<th>Descrição</th>
			<th>Prazo</th>
			<th>Prioridade</th>
		</tr>
		<?php foreach ($lista_tarefas as $tarefa) : ?>
			<tr>
				<td><?php echo $tarefa['nome']; ?></td>
				<td><?php echo $tarefa['descricao']; ?></td>
				<td><?php echo $tarefa['prazo']; ?></td>
				<td><?php echo $tarefa['prioridade']; ?></td>
				<td><?php echo $tarefa['concluida']; ?></td>
			</tr>
		<?php endforeach; ?>
	</table>
	</body>
</html>

Desde já agraço a ajuda.
Abraço.