0

Acessando o MySQL com PHP-GTK

criado por Bruno Rodrigues Silva em 28/08/2002 9:15pm
Abra seu editor favorito e vamos ao trabalho. O código da aplicação PHP-GTK está abaixo com os devidos comentários.

<?php
// carrega a extenssão PHP-GTK, de acordo com sistema operacional utilizado
if (strtoupper(substr(PHP_OS, 0, 3))=='WIN') {
    dl('php_gtk.dll');
} else {
    dl('php_gtk.so');
}

// essa função é chamada quando o usuário clica 
// no botão fechar ( X ) da janela  principal
function destroy()
{
    Gtk::main_quit(); //Fecha a aplicação
}

// essa função é chamada toda vez que é inserido 
// algo no banco de dados - serve como confirmação
function nova_janela()
{
    $janela = &new GtkWindow; //Instancia a classe GtkWindow e cria o objeto $janela
    $janela->set_title('Aviso'); //Seta um título para a janela secundária
    $janela->set_default_size(250,95); //Define o tamanho da janela
    $janela->set_position (GTK_WIN_POS_CENTER); //Define a posição da janela, quando criada
    $texto= &new GtkLabel('Sucesso no insert'); //Define um texto para a janela
    $janela->add($texto); //Adiciona o objeto texto ao objeto janela
    $janela->show_all(); //Mostra o objeto janela e seu conteúdo
}

// essa função é chamada para armazena 
// o registro no banco de dados
function armazena ()
{
    global $entrada; // reaproveita o objeto $entrada do programa principal;
    global $entrada2; // reaproveita o objeto $entrada2 do programa principal;

    $v1 = $entrada->get_text(); // captura o valor do primeiro campo
    $v2 = $entrada2->get_text();  // captura o valor do segundo campo

    $sql = "INSERT INTO produtos (descricao, preco) values ('$v1', '$v2')";  //Cria a query sql
    $con = mysql_connect("localhost", "root", "123456") or print mysql_error();  // cria uma conexão com o banco de dados. Substitua localhost, root e 123456, pelas configurações de acesso do seu banco de dados.
    $db = mysql_select_db("apl1_gtk", $con); // seleciona o banco de dados
    $exec = mysql_query($sql, $con); // executa o query sql
    mysql_close($con); // fecha a conexão
    $entrada->set_text(''); // esvazia o campo
    $entrada2->set_text(''); // esvazia o campo
    nova_janela(); // chama a função de confirmação
}

$janela = &new GtkWindow; // instancia a classe GtkWindow e cria o objeto $janela
$janela->set_title('Aplicação GTK acessando banco de dados'); // define o título da janela principal
$janela->set_default_size(500,150); // define o tamanho da janela principal
$janela->set_position (GTK_WIN_POS_CENTER); // define a posição da janela principal
$janela->connect_object('destroy', 'destroy'); // chama a função destroy, quando o evento destroy é aberto.

$tabela = &new GtkTable(6,4); // cria uma tabela com 6 linhas e 4 colunas
$janela->add($tabela); // adiciona o objeto tabela ao objeto janela

$botao = &new GtkButton('Armazenar'); // cria o objeto botão
$botao->connect_object ("clicked", "armazena"); // chama a função armazena quando o evento clicked é aberto

$entrada = &new GtkEntry (); // cria o objeto caixa de texto

$entrada2 = &new GtkEntry (); // cria a segunda caixa de texto

$texto1 = &new GtkLabel ('Descrição'); // cria um objeto label

$texto2 = &new GtkLabel ('Preço'); // cria um segundo label

// define a posição dos objeto (Labels, caixa de textos e botão) dentro da tabela
$tabela->attach($texto1, 0, 1, 0, 1);
$tabela->attach($texto2, 0, 1, 2, 3);
$tabela->attach($entrada2, 2, 3, 2, 3);
$tabela->attach($entrada, 2, 3, 0, 1);
$tabela->attach($botao, 2, 3, 4, 5);
$janela->show_all(); // mostra a janela e seu conteúdo

Gtk::main(); // entra em loop para mostrar a aplicação
?>

Comentários:

Mostrando 1 - 5 de 5 comentários
Renato Santos disse:
Olá!
Já consegui fazer várias coisas com o PHP-GTK! Ja criei uma janela gráfica utilizando o glade fazendo um calculo de tribonacci.

Estou começando agora e os desafios vão começando a chegar
=D
Como eu sou programador em php estou tendo muita facilidade.

porém o problema que estou tendo é ao tentar conectar ao mysql, o que é uma coisa simples, ele retorna erro na linha de código que tem justamente o mysql_connect();

precisa habilitar alguma coisa em algum arquivo .ini? ou ele deveria funcionar corretamente??

o erro que ele retorna é esse
"Fatal error: Call to undefined function mysql_connect() in <endereco do programa> on line <linha>"

Alguem sabe como me ajudar
estou usando o netbeans para compilar

desde já agradeço
um abraço!
24/05/2012 9:15am (~6 anos atrás)

Neto disse:
Eu criei um compo preço no banco de dados (float (8,2)), a idéia seria Ex: R$ 12,23 só que os 2 últimos numreos são ignorados e no banco dados é gravado somente 12.00.

Alguem poderia me dar uma ajuda de como eu poderia configurar?

Eu estou usando dreamweaver.
Agradeço muito.
12/05/2010 10:49am (~8 anos atrás)

Olha eu tou criando um programinha e para acessar à base de dados basei-me no código acima, mas tá dando erro
na função armazena
Erro: CALL TO A MEMBER FUNCTION ON A NON OBJECT ....ON LINE 275

gtk::solutions
http://onidesk.sytes.net
27/05/2005 12:53am (~13 anos atrás)

Este erro me parece ser problema de instalação do PHP-GTK.
Reveja a instalação.
02/09/2002 12:38pm (~16 anos atrás)

Os aplicativos feitos em PHP-GTK não são compilados. Precisam ter o interpretados instalado na máquina. (Assim como o JAVA). Mas têm vantagens sobre por exemplo a QT (Que requer enormes dll's e so's instalados no sistema para poder executar o aplicativo).
02/09/2002 12:36pm (~16 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)