• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ricardo_1977

Duvida

25 mensagens neste tópico

Boa tarde,

eu quero fazer algo do tipo:

"introduza o valor".o utilizador introduz o valor e depois se esse valor existir numa base de dados ja criada devolve toda a informacao relativa a esse valor.

não sei como fazer isso.

alguém me pode ajudar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu ja tenho um codigo para listar mas nao me faz nada(tambem nao me da erro).

aqui vai o codigo se alguem puder ajudar agradeço.

<html>
<head>
<title> inserir na base de dados</title>

<meta http-equiv="Content-Type" content = "text/html; charset=iso-8859-1">
</head>
<body>
<?php
//conecta á base de dados
include("conectbd.php");

//executa a query
$query = "select * from produto";
$res = mysql_query("$query");

//conta o numero de registos
$num_reg = mysql_num_rows($res);

//monta uma tabela para organizar os dados
echo "<table border ='0' cellpadding='1' cellspacing='1'>";

//cria 1 ciclo for para a exebição dos dados
for($i=0;$i<$num_reg;$i++) {

//formata resultado para exibicao
$mostra = mysql_fetch_array($res);
echo"<tr>";

//exibe os resultados
echo "<td> $mostra[$n_serie] </td>";
echo "<td> $mostra[$n_peca] </td>";
echo "</tr>";
}


//encerra a tabela
echo "</table>";

//encerrar a conexao
mysql_close($db);

?>
</body>
</html>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Se tens esse código num ficheiro html, o php nunca vai ser interpretado, em condições normais. Têm de estar num .php

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas,

desculpa mas enganei-me.

o codigo esta em php.

tenho que lhe tirar a parte de html?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não. O php precisa de estar num ficheiro php ou semelhante para ser interpretado. O html é interpretado num ficheiro php sem problemas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas nao me funciona.

ele insere sem problemas mas nao consigo listar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
        echo "<td> $mostra['n_serie'] </td>";
        echo "<td> $mostra['n_peca'] </td>";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

antes tinha posto dessa forma mas da-me este erro:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\xampp\htdocs\mygi\listar.php on line 30

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

variáveis php devem ser concatenadas.

        echo "<td>".$mostra['n_serie']."</td>";
        echo "<td>".$mostra['n_peca']."</td>";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

agora nao da erro mas nao mostra nada.

não percebo pk

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O problema está no array, como está feita a tabela produto? Quantas colunas tem?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

a tabela produto so tem 2 colunas(n_serie e n_peca).

sao ambas do tipo texto sendo o n_serie primary key

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O mysql_fetch_array() esta a carregar sempre a mesma linha, tenta assim

<?php
        //conecta á base de dados
        include("conectbd.php");

        //executa a query
        $query = "select * from produto";
        $res = mysql_query("$query");

        //conta o numero de registos
        $num_reg = mysql_num_rows($res);

        //monta uma tabela para organizar os dados
        echo "<table border ='0' cellpadding='1' cellspacing='1'>";

        //cria 1 ciclo for para a exebição dos dados
        while($mostra = mysql_fetch_array($res)) {

        echo"<tr>";

        //exibe os resultados
        echo "<td> ".$mostra[$n_serie]." </td>";
        echo "<td> ".$mostra[$n_peca]." </td>";
        echo "</tr>";
        }
       

        //encerra a tabela
        echo "</table>";

?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

continua a nao dar nada.

eu tenho no mesmo formulario(html) o inserir e o listar(php).

será que é por causa disso?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

se não dá nada é porque a tabela não tem nada, se tiver alguma coisa tem que fazer output.

posta ai o ficheiro completo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

a tabela ja tem valores.alias eu faço o inserir primeiro e da ok e depois o listar e nao da nada.

aqui vai o meu codigo:

inserir

<html>
<head>
<title> inserir na base de dados</title>

<meta http-equiv="Content-Type" content = "text/html; charset=iso-8859-1">
</head>
<body>
<?
require("conectbd.php");
$sqlinsert = "INSERT INTO produto(n_serie,n_peca)
        values('".$_POST['n_serie']."','".$_POST['n_peca']."')";
mysql_query($sqlinsert) or die ("Numero de Série já existe!!!");
echo "<a href = 'javascript:history.back() '> VOLTAR</a>";
//encerrar a conexao
mysql_close($db);


?>
</body>>
</html>

listar

<html>
<head>
<title> inserir na base de dados</title>

<meta http-equiv="Content-Type" content = "text/html; charset=iso-8859-1">
</head>
<body>
<?php
//conecta á base de dados
include("conectbd.php");

//executa a query
$query = "select * from produto";
$res = mysql_query("$query");

//conta o numero de registos
$num_reg = mysql_num_rows($res);

//monta uma tabela para organizar os dados
echo "<table border ='0' cellpadding='1' cellspacing='1'>";

//cria 1 ciclo for para a exebição dos dados
while($mostra = mysql_fetch_array($res)) {
echo"<tr>";

//exibe os resultados
echo "<td>" .$mostra[$n_serie]. "</td>";
echo "<td>" .$mostra[$n_peca]. "</td>";
echo "</tr>";
}


//encerra a tabela
echo "</table>";

//encerrar a conexao
mysql_close($db);

?>
</body>

conectbd

<?php
$hostname = 'localhost';
$username = 'root';
$senha = '';
$banco = 'myg';
$db = mysql_connect($hostname,$username,$senha);
mysql_select_db($banco,$db);
?>

formulario

<html>
<head>
<title> Formulario para inserir na bd </title>
<meta http-equiv = "Content-Type" content = "text/html; charset = iso-8859-1">
</head>
<body BGCOLOR = "#CDCDCD">
<form action = "inserir.php" method = "post" name = "Produto" id = "Produto">
<table width = "450" border = "0" cellspacing = "0" cellpadding = "3">
<tr>
<td width = "111"><div align = "right"> N Serie:</div></td>
<td width = "339"> <input name = "n_serie" type = "text" id = "n_serie" size = "30"></td>
</tr>
<tr>
<td width = "111"><div align = "right"> N Peça:</div></td>
<td width = "339"> <input name = "n_peca" type = "text" id = "n_peca" size = "30"></td>
</tr>
<tr>
<td height = "29" colspan = "2" valign = "top"><div align = "center"> 
<input type = "submit" name = "Submit" value = "inserir na base de dados">
</div>
</td>
</tr>
</table>
</form>
<form action = "listar.php" method = "get" name = "Produto" id = "Produto">
<td height = "29" colspan = "2" valign = "top"><div align = "center"> 
<input type = "submit" name = "Submit" value = "Ver dados">
</div>
</td>
</form>
<body>
<html>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<html>
<head>
<title> inserir na base de dados</title>

<meta http-equiv="Content-Type" content = "text/html; charset=iso-8859-1">
</head>
<body>
<?php
        //conecta á base de dados
        include("conectbd.php");

        //executa a query
        $query = "select * from produto";
        $res = mysql_query($query);

        //conta o numero de registos
        $num_reg = mysql_num_rows($res);
        //TESTE PARA SABER SE TRAZ RESULTADOS
       echo '<script type="text/javascript">alert(\'Linhas na Base de Dados '.$num_reg.'\');</script>';

        //monta uma tabela para organizar os dados
        echo "<table border ='0' cellpadding='1' cellspacing='1'>";

        //cria 1 ciclo for para a exebição dos dados
        while($mostra = mysql_fetch_array($res)) {
        echo"<tr>";

        //exibe os resultados
        echo "<td>" .$mostra[$n_serie]. "</td>";
        echo "<td>" .$mostra[$n_peca]. "</td>";
        echo "</tr>";
        }
       

        //encerra a tabela
        echo "</table>";

        //encerrar a conexao
        mysql_close($db);

?>
</body>

experimenta assim

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

aparece-me o warning do windows  a dizer linhas da base de dados ,faço OK e depois não mostra nada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ele da-me no warning o numero de linhas correcto.

depois poe-me algo do tipo:

... ...

... ...

... ...

cada tres pontos representa uma variavel

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol o warning do Windows fui eu que lá pus para não passar despercebido.

não sei se tem alguma coisa a ver mas no echo da tabela inverte as aspas.

passarias a ter

echo '<table boder="0" cellpadding="1" cellspacing="1">';

e depois vê o código o código html que é inpresso no browser, pode ter a ver com o encoding

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

é igual. a unica coisa que aparece é isto:

.. ..  .. 

.. ..  .. 

mas da-me a mensagem correcta(tem 2 linhas).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

desculpa mas nao li a parte do browser:

aparece isto:http://localhost/mygi/listar.php?Submit=Ver+dados

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

no teu browser clica com o botão direito do rato e depois clica em ver código fonte

copia o código e posta aqui

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

aqui vai:

<html>
<head>
<title> listar a base de dados</title>

<meta http-equiv="Content-Type" content = "text/html; charset=iso-8859-1">
</head>
<body>
<script type="text/javascript">alert('Linhas na Base de Dados 2');</script><table boder="0" cellpadding="1" cellspacing="1"><tr><td>..</td><td> .. </td><td> .. </td></tr><tr><td>..</td><td> .. </td><td> .. </td></tr></table><a href = 'javascript:history.back() '> VOLTAR</a></body>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nova correcção

<html>
<head>
<title> inserir na base de dados</title>

<meta http-equiv="Content-Type" content = "text/html; charset=iso-8859-1">
</head>
<body>
<?php
        //conecta á base de dados
        include("conectbd.php");

        //executa a query
        $query = "select * from produto";
        $res = mysql_query($query);

        //conta o numero de registos
        $num_reg = mysql_num_rows($res);
        //TESTE PARA SABER SE TRAZ RESULTADOS
       echo '<script type="text/javascript">alert(\'Linhas na Base de Dados '.$num_reg.'\');</script>';

        //monta uma tabela para organizar os dados
        echo "<table border ='0' cellpadding='1' cellspacing='1'>";

        //cria 1 ciclo for para a exebição dos dados
        while($mostra = mysql_fetch_array($res)) {
        echo"<tr>";

        //exibe os resultados
        echo "<td>" .$mostra['n_serie']. "</td>";
        echo "<td>" .$mostra['n_peca']. "</td>";
        echo "</tr>";
        }
       

        //encerra a tabela
        echo "</table>";

        //encerrar a conexao
        mysql_close($db);

?>
</body>

passou de isto

        while($mostra = mysql_fetch_array($res)) {
        echo"<tr>";

        //exibe os resultados
        echo "<td>" .$mostra[$n_serie]. "</td>";
        echo "<td>" .$mostra[$n_peca]. "</td>";
        echo "</tr>";
        }

para isto

        while($mostra = mysql_fetch_array($res)) {
        echo"<tr>";

        //exibe os resultados
        echo "<td>" .$mostra['n_serie']. "</td>";
        echo "<td>" .$mostra['n_peca']. "</td>";
        echo "</tr>";
        }

no array mostra estavamos a usar uma variavel para o index

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora