Professional Documents
Culture Documents
Programao Web I
Veronice de Freitas
05-PHP / MySQL
5
MATERIAL COMPLEMENTAR
Objetivo da Atividade:
Esta atividade visa revisar exemplos da teleaula 04 relacionados PHP e MYSQL.
Estrutura Cdigo:
01 Carrinho de compra ................................. pgina : 1
02 Upload de arquivo ................................... pgina: 10
03 Estrutura para o site ................................ pgina: 12
Orientaes:
Caro aluno, O cdigo dessa aplicao carrinho de compras apresentado nesse documento foi
publicado na revista: http://www.revistaphp.com.br. Supondo que um cliente seleciona os
produtos na figura 01, estes produtos vo sendo adicionados no carrinho de compra (figura 02). O
download do cdigo pode ser obtido no endereo: http://www.revistaphp.com.br/artigo.php?id=150.
Para testar dever descompactar o arquivo dentro da pasta htdocs (est pasta fica localizada
dentro da pasta XAMPP) onde instalou o pacote XAMPP.
<?php
$hostname_conn
$database_conn
$username_conn
$password_conn
=
=
=
=
"localhost";
"artigos";
"root";
"";
Incluir o arquivo de
<body>
configuraes
<div align="center">
<?php
include "Connections/conn.php";
//*********************************************************************
// CONFIGURAO DE BANCO DE DADOS
//*********************************************************************
$con = mysql_connect($hostname_conn,$username_conn,$password_conn);
$bd = mysql_select_db($database_conn);
?>
<table cellSpacing=1 cellPadding=0 width="50%" align=center border=0>
<tr>
<td>
<?PHP
//*********************************************************************
// GERA A INSTRUO SQL E CHAMA A FUNO PARA GERAR AS COLUNAS
//*********************************************************************
$sql = "SELECT * FROM tbl_produtos ORDER BY RAND() LIMIT 0,4";
GeraColunas(2, $sql)
?>
</td>
Nome da tabela de
</tr>
produtos
</table>
<?PHP
//*********************************************************************
// FUNO: GERACOLUNAS
// Parametros:
// $pNumColunas (int)
> Quant. de colunas para distribuio
// $pQuery
(string) > Query de registros
//*********************************************************************
function GeraColunas($pNumColunas, $pQuery) {
$resultado = mysql_query($pQuery);
echo ("<table width='100%' border='0'>\n");
for($i = 0; $i <= mysql_num_rows($resultado); ++$i) {
for ($intCont = 0; $intCont < $pNumColunas; $intCont++) {
$linha = mysql_fetch_array($resultado);
if ($i > $linha) {
if ( $intCont < $pNumColunas-1) echo "</tr>\n";
break;
}
$cod = $linha[0];
$nome = $linha[1];
$img = $linha[2];
$preco = number_format($linha[3],2,",",".");
Campos da tabela de
produtos
nome do produto
Logo abaixo apresenta o preo
72.
73.
echo "</tr>";
echo "</table>";
// Aqui o final do conteudo
echo "</td>";
if ( $intCont == $pNumColunas-1 ) {
echo "</tr>\n";
} else { $i++; }
} // final for $intCont
} final for $i
echo ('</table>');
} // final da funo
?>
</div>
</body>
</html>
numrica.
OBS: Temos que lembrar que mesmo atendendo os dois quesitos ainda temos que
verificar se esse produto j no est no carrinho e assim evitarmos incluir produtos
repetidos no carrinho, porem repare que usamos a condio abaixo.
Ao excluir
Nos 3 primeiros IF eu verifico se a ao excluir, se for passo para verificar se existe
algum contedo na varivel $cod que a varivel do nosso produto e verificamos se
do tipo numrico.
Aps fazermos as 2 verificaes acima, devemos ver se o produto a ser excluido existe
mesmo no nosso carrinho para a session_id() atual.
Se a varivel $totalRows_rs_car for maior do que zero, porque existe o produto a ser
excluido, ento excluimos o produto com o cdigo e session_id() definido.
Ao modificar
Antes de entrar em mais detalhes devemos reparar no cdigo HTML a linha abaixo,
pois se reparar definimos um nome igual a qtd que um array com os valores das
quantidades dos produtos que iremos modificar e como esse campo comum a todos
os produtos ento usamos um array com os campos chave dos produtos.
<input type"text" size="2"
name="qtd[<?=$row_rs_produto_carrinho['cod']?>]"
value="<?=$row_rs_produto_carrinho['qtd']?>" />
Armazenamos o contedo na varivel $quant e verificamos se um array e iniciamos a
linha abaixo para percorrer nosso array para modificarmos as quantidades dos
produtos caso os valores forem numricos.
foreach($quant as $cod => $qtd)
Aps a ao modificar simplesmente listamos os produtos do carrinho de compras
referente a session_id() atual e dentro do while temos a linha abaixo que pega o preo
do produto e multiplica pela quantidade desejada.
$soma_carrinho +=
($row_rs_produto_carrinho['preco']*$row_rs_produto_carrinho['qtd']);
<?php
// Iniciamos nossa sesso que vai indicar o usurio pela session_id
session_start();
include "Connections/conn.php";
// Recuperamos os valores passados por parametros
$acao = $_GET['acao'];
$cod = $_GET['cod'];
'$qt
2 UPLOAD DE ARQUIVOS
Fonte: http://www.w3schools.com/PHP/php_file_upload.asp (veja o artigo)
Arquivo: FormUpload.html
<html>
<body>
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">Arquivo:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
Arquivo: upload_file.php
<?php
// http://www.w3schools.com/PHP/php_file_upload.asp
Apresenta informaes
referente ao arquivo
}
else
{
echo "Invalid file";
}
?>
A estrutura possibilita
chamar as opes do
menu dentro dessa rea
da tabela (REA DE
CONTEDO).
1) <?php
2) /** ----------------------------------------------------------------------Disciplina - Desenvolvimento de Aplicaes Web
UNOPAR VIRTUAL - www.unoparvirtual.com.br
----------------------------------------------------------------------@name index.php
@abstract Pgina principal
@since 19/08/2010
@author Veronice de Freitas (veronice@jr.eti.br)
@package ComercioWeb
----------------------------------------------------------------------3) */
4)
5)
6)
7)
8)
9)
10)
11)
12)
13)
14)
15)
mysqlExemplo9Select.php
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
11)
12)
13)
14)
15)
16)
17)
18)
19)
20)
21)
22)
23)
24)
25)
26)
27)
28)
<?
include "include/cabecalho.php";
include "config/configuracoes.php";
include "conexao/conecta.php";
$resultado=mysql_query("SELECT * FROM categorias ORDER BY categoria ASC");
echo "<form action=\"index.php?opcao=ListaProdCategoria\" name=\"form\" method=\"post\">\n";
echo "</br>";
echo "Categoria: ";
echo "<select name=\"codigo\">\n";
while ($dados = mysql_fetch_array($resultado))
{
echo "<option value='" . $dados['codigo'] . "'>" . $dados['categoria'] . "</option>\n";
}
echo "</select>\n";
echo "<BR><BR>\n";
echo "<input class=\"button\" type=\"submit\" name=\"Consultar\" value=\"Consultar produtos\" />\n";
echo "</form>\n";
echo "</body></html>";
mysqlExemplo9Listar.php
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
11)
12)
13)
14)
15)
16)
17)
18)
19)
20)
21)
22)
23)
24)
25)
26)
27)
28)
29)
30)
31)
32)
33)
<?
include "include/cabecalho.php";
include "config/configuracoes.php";
include "conexao/conecta.php";
echo '<H3> Listagem de produtos por categoria</H3>';
$codigo = $_POST['codigo'];
$sql = "SELECT Codigo, Descricao, Preco, Observacao FROM produtos WHERE categoria = $codigo";
$resultado = mysql_query($sql)
or die (mysql_error());
echo '<table border = 0>';
echo '<TR>';
echo '<TH> Cdigo </TH>';
echo '<TH> Descrio </TH>';
echo '<TH> Observaes </TH>';
echo '<TH> Preo </TH>';
echo '</TR>';
while ($linha = mysql_fetch_array($resultado)) {
if ($nCor == 0) {
$nCor = 1;
$cCor = "zebraA";
}
else
{
$nCor = 0;
$cCor = "zebraB";
}
}
echo '</table>';
mysql_free_result($resultado);
mysql_close($rCon);
echo "<br><br>";
echo "<a class=\"button\" href=\"mysqlExemplo9Select.php\">Selecionar outra categoria</a>\n";
echo "</body></html>\n";
?>