Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda no PHP


Guedesll

Pergunta

Olá Pessoal!

Então, este é o meu primeiro tópico aqui no scriptBrasil, estou precisando de uma ajudinha de vocês.

Estou iniciando no PHP (Sei que vocês já leram muito isso ... rsss...) E como todo novato

tenho minhas dúvidas e dificuldades ...

Não consigo identificar onde estou errando. Quando coloco em meu navegador (http://localhost/conexao.php)

A tela fica em branco. Eu desabilitei a mesagem de erro do IE8. Aí a tela fica em branco com status de concluído.

Não sei o que fazer. Em meu Mysql tenho um DB "test" com uma tabela "usuario1" com apenas 1 registro.

POR FAVOR ME AJUDEM!!!!!

<?php

$_con = @mysql_connect("localhost","root","LLgll123");

if($_con===FALSE) {

echo "Erro na conexao " . mysql.error();

exit();

}

mysql__select_db("test",$_con);

if($_con===FALSE) {

echo "Não foi possível conectar" . mysql_error();

}

$_sql = "SELECT * FROM usuario1";

$_res = mysql_query($_sql,$_con);

if($_res===FALSE) {

echo "erro na consulta " . mysql_error() . "<br/>";

} else {

$_nr = mysql_num_rows($_res);

echo "A consulta retornou " . (int) $_nr . " registro(s)<br/>";

if($_nr>0) {

echo "<table border=1 cellspacing=3 cellpadding=2>";

echo "<tr bgcolor='#f0f0f0'>";

for($_i=0;$_i<mysql_num_fields($_res);$_i++) {

echo "<td>" . mysql_field_name($_res,$_i) . "</td>";

}

echo "</tr>";

while($_row=mysql_fetch_assoc($_res)) {

$_t = mysql_fetch_lenghts($_res);

echo "<tr>";

$_i=0;

}

foreach($_row as $_k=>$_vlr) {

echo "<td>$_vlr ({$_t"[$_i]})</td>";

$_i++;

}

echo "</tr>";

}

echo "</table>";

}

mysql_close($_con);

?>

Editado por Guedesll
Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

Cara, encontrei vários erros primários, mas com exercício você aprender na boa.

Enfim, dei uma revisada no código e comentei onde encontrei erros.

<?php

$_con = mysql_connect("localhost","root",""); /*O @ não existe*/

if($_con===FALSE) {

echo "Erro na conexao " . mysql.error();

exit();

}

mysql_select_db("test",$_con); /*Aqui faça dessa forma mysql_select_db("test",$_con);*/

if($_con===FALSE) {

echo "Não foi possível conectar" . mysql_error();

}

$_sql = "SELECT * FROM usuario1";

$_res = mysql_query($_sql,$_con);

if($_res===FALSE) {

echo "erro na consulta " . mysql_error() . "<br/>";

} else {

$_nr = mysql_num_rows($_res);

echo "A consulta retornou " . (int) $_nr . " registro(s)<br/>";

if($_nr>0) {

echo "<table border=1 cellspacing=3 cellpadding=2>";

echo "<tr bgcolor='#f0f0f0'>";

for($_i=0;$_i<mysql_num_fields($_res);$_i++) {

echo "<td>" . mysql_field_name($_res,$_i) . "</td>";

}

echo "</tr>";

while($_row=mysql_fetch_assoc($_res)) {

$_t = mysql_fetch_lenghts($_res);

echo "<tr>";

$_i=0;

}

foreach($_row as $_k=>$_vlr) {

echo "<td>$_vlr ({$_t[$_i]})</td>"; /*Você colocou uma aspa onde não deveria ter, faça assim: echo "<td>$_vlr ({$_t[$_i]})</td>";*/

$_i++;

}

echo "</tr>";

}

echo "</table>";

}

mysql_close($_con);

?>

Espero ter ajudado.

Abraço!

Link para o comentário
Compartilhar em outros sites

  • 0
Cara, encontrei vários erros primários, mas com exercício você aprender na boa.

Enfim, dei uma revisada no código e comentei onde encontrei erros.

<?php

$_con = mysql_connect("localhost","root",""); /*O @ não existe*/

if($_con===FALSE) {

echo "Erro na conexao " . mysql.error();

exit();

}

mysql_select_db("test",$_con); /*Aqui faça dessa forma mysql_select_db("test",$_con);*/

if($_con===FALSE) {

echo "Não foi possível conectar" . mysql_error();

}

$_sql = "SELECT * FROM usuario1";

$_res = mysql_query($_sql,$_con);

if($_res===FALSE) {

echo "erro na consulta " . mysql_error() . "<br/>";

} else {

$_nr = mysql_num_rows($_res);

echo "A consulta retornou " . (int) $_nr . " registro(s)<br/>";

if($_nr>0) {

echo "<table border=1 cellspacing=3 cellpadding=2>";

echo "<tr bgcolor='#f0f0f0'>";

for($_i=0;$_i<mysql_num_fields($_res);$_i++) {

echo "<td>" . mysql_field_name($_res,$_i) . "</td>";

}

echo "</tr>";

while($_row=mysql_fetch_assoc($_res)) {

$_t = mysql_fetch_lenghts($_res);

echo "<tr>";

$_i=0;

}

foreach($_row as $_k=>$_vlr) {

echo "<td>$_vlr ({$_t[$_i]})</td>"; /*Você colocou uma aspa onde não deveria ter, faça assim: echo "<td>$_vlr ({$_t[$_i]})</td>";*/

$_i++;

}

echo "</tr>";

}

echo "</table>";

}

mysql_close($_con);

?>

Espero ter ajudado.

Abraço!

Então cara... qualquer ajuda sempre é bem vinda ... mais ainda sim não funcionou.

Corrigi onde você mostrou os erros. Mais ainda sim o navegador mostra tela em branco.

Provavelmente eu esteja errando em algo no código, pois meu apache funciona perfeitamente.

Tanto que, quando faço uma operação simples, como exibir data e hora no PHP, ele exibe normalmente.

Mais esta conexao estou apanhando para fazer.

Por favor... Se alguém mais puder me ajudar...

Link para o comentário
Compartilhar em outros sites

  • 0

Guedesll, você chegou a fazer o teste se o php está rodando perfeitamente no seu localhost ?!...

Peça para exibir as informações do seu php com o teste simples:

1- Crie um arquivo chamando phpinfo.php, e dentro dele insira o seguinte código:

<?

phpinfo();

?>

2- Salve o arquivo na raiz do seu localhost.

3- abra o seu navegador e execute o arquivo: http://localhost/phpinfo.php

4- Se exibir as configurações do PHP forem exibidas, seu servidor está funcionando perfeitamente, caso contrário, refaça a instalação e configuração do php em seu micro.

Link para o comentário
Compartilhar em outros sites

  • 0
Guedesll, você chegou a fazer o teste se o php está rodando perfeitamente no seu localhost ?!...

Peça para exibir as informações do seu php com o teste simples:

1- Crie um arquivo chamando phpinfo.php, e dentro dele insira o seguinte código:

<?

phpinfo();

?>

2- Salve o arquivo na raiz do seu localhost.

3- abra o seu navegador e execute o arquivo: http://localhost/phpinfo.php

4- Se exibir as configurações do PHP forem exibidas, seu servidor está funcionando perfeitamente, caso contrário, refaça a instalação e configuração do php em seu micro.

Então ... ele exibe sim! Fiz o teste que você pediu e deu certo.

Como eu disse, algo no meu código deve estar errado.

Aguardo ajuda!

Link para o comentário
Compartilhar em outros sites

  • 0
Vamos lá pessoal ... preciso da ajuda de vocês ...

Por favor... os mais experientes ... digam-me ...

Onde eu estou falhando???

Abraços!

olá siga as instruções e modifique a senha, banco, e local conforme sua necessidade até mais

<?php

class IPR{

var $local, $banco, $senha, $usuario;

function __construct($Tabela)

{

$Dados=$this->ExecutarConsultaCompleta($Tabela); //realizando a consulta

$NumeroC=count($Dados[campo]); //numeros de campos

// $NumeroR=count($Dados[dados]*$NumeroC); //numeros de elementos no campo 1 ]

echo "<font color=blue>Numeros de registros encontrados ".$Dados[Total]."</font>";

echo "<table name='Campos' id='Campos' align='center' width='100%' border=1>

<Tr>";

for($i=0; $i<$NumeroC; $i++)

{

echo "<Td>".$Dados[campo][$i]."</td>";

}

echo "</tr><tr>";

for($i=0; $i<count($Dados[dados]); $i++)

{

for($k=0; $k<$NumeroC; $k++)

{

echo "<Td>".$Dados[dados][$i][$k]."</td>";

}

echo "</tr><tr>";

}

echo "</tr></table>";

}

protected function Verificar($Array,$Quantidade) //funão para verificar se os elementos do array estão vazio ou não

{

for($i=0; $i<$Quantidade; $i++)

{

if (empty($Array[$i]))

{

echo "Elemento vazio $i de $Quantidade se encontra vazio\n";

exit;

}

}

}

function Conectar($local="localhost",$usuario="root",$banco="gerenciamento",$senha="") //função para conectar

{

// $this->Verificar(Array("$local","$banco","$usuario"),$Quantidade=3); //permitimos a senha como campo vazio

$conectar= mysql_connect($local,$usuario,$senha); //$conectar=mysql_connect("$local","$usuario","$senha"); //efetuando a conecxão

($conectar == false) ? ($retorno="Erro na conecxão ".mysql_error()) : $retorno=true;

$banco=mysql_select_db($banco);

( ($banco==false) and ($retorno=true) ) ? ($retorno="Erro no banco ".mysql_error()) : $retorno=true;

return $retorno;

}

function ExecutarConsultaCompleta($Tabela) //executa uma consulta completa retornando nomes dos campos e dados contidos neles em forma de matriz

{

// $this->Verificar(Array("$Tabela"),$Quantidade=1);

$con=$this->Conectar(); //conectando

if ($con != true) //caso a conecxao retorne falso para a execução e imprimi o erro

{

echo $con;

exit;

}

$sql=mysql_query("select * from $Tabela"); //executando a consulta

$NomeDosCampos[Total]=mysql_num_rows($sql);

for($i=0; $i<mysql_num_fields($sql); $i++)

{

$NomeDosCampos[campo][$i]=mysql_field_name($sql,$i); //pegando o nome dos campos

}

$sd=0;

while($s=mysql_fetch_object($sql))

{

for($l=0; $l<count($NomeDosCampos[campo]); $l++)

{

$NomeDosCampos[dados][$sd][$l]= $s->$NomeDosCampos[campo][$l];

}

$sd++;

}

return $NomeDosCampos;

}

}

//iniciando os elementos

/*modo de usar basta instaciar a classe ipr que será automaticamente executada

localize a linha que é aproximadamente 46

Conectar($local="localhost",$usuario="root",$banco="gerenciamento",$senha="")

e mude os dados de acordo com a sua necessidade até mais */

$Tabela="produtos";

$t=new IPR($Tabela);

?>

Link para o comentário
Compartilhar em outros sites

  • 0

Guedesll, cara se a sua intenção for apenas exibir os dados de uma tabela do banco esse código abaixo servirá. Por mim revisaria novamente o seu código, mas ando meio sem tempo. De qualquer maneira vou ver se tiro um tempo hoje a noite pra olhar com mais calma, isso se você já não tiver conseguido resolver daqui pra lá.

Mas fica um conselho, procura se informar mais das funções do Sql que você ta usando, e com os loops (for, while, foreach)

<?php

$_con = mysql_connect("localhost","root",""); /*O @ não existe*/

if($_con===FALSE) {

echo "Erro na conexao " . mysql.error();

exit();

}

mysql_select_db("test",$_con); /*Aqui faça dessa forma mysql_select_db("test",$_con);*/

if($_con===FALSE) {

echo "Não foi possível conectar" . mysql_error();

}

$sql = "SELECT * FROM usuario1";

$query = mysql_query($sql) or die (mysql_error());

while($recupera = mysql_fetch_array($query)){

echo "<tr>";

echo "<td>Nome: </>";

echo "<td>$recupera[0]</td>\n";

echo "<br />";

echo "<td>Idade: </td>";

echo "<td>$recupera[1]</td>\n";

echo "</tr>";

echo "<br />";

echo "<br />";

}

mysql_close($_con);

?>

Banco

Nome:test

Sql das tabelas

CREATE TABLE IF NOT EXISTS `usuario1` (

`Nome` text NOT NULL,

`Idade` int(11) NOT NULL

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--

-- Extraindo dados da tabela `usuario1`

--

INSERT INTO `usuario1` (`Nome`, `Idade`) VALUES

('Rafael', 22),

('Felipe', 20);

Espero ter ajudado de alguma forma, boa sorte = ]!

Editado por Rafael Rocha B.
Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado Pessoal... Ainda não consegui o que eu queria...

Mais abriu a minha mente ...

De fato... ninguém me respondeu o que está errado no código...

Mais com as informações que li neste fórum ... acabei aprendendo bastante ...

Agradeço muito por terem respondido ...

Preciso desenvolver e implantar um sistema de notícias interno na empresa.

Pensando em lógica de programação, não é difícil.

O meu maior problema está sendo o PHP, pois programava em C...

estou tentando migrar para o PHP.

Mais toda vez dá pau... não consigo resolver os erros ... e com isso vou perdendo tempo ...

Por isso que peço a ajuda de vocês...

Não quero que desenvolvam a ferramenta pra mim... mais quero que me ajudem quando

não conseguir resolver erros como este acima ...

De qualquer forma.... agradeço muito ajuda de vocês ... VLw mesmo!!!

Abraços a Todos!

Link para o comentário
Compartilhar em outros sites

  • 0
Obrigado Pessoal... Ainda não consegui o que eu queria...

Mais abriu a minha mente ...

De fato... ninguém me respondeu o que está errado no código...

Mais com as informações que li neste fórum ... acabei aprendendo bastante ...

Agradeço muito por terem respondido ...

Preciso desenvolver e implantar um sistema de notícias interno na empresa.

Pensando em lógica de programação, não é difícil.

O meu maior problema está sendo o PHP, pois programava em C...

estou tentando migrar para o PHP.

Mais toda vez dá pau... não consigo resolver os erros ... e com isso vou perdendo tempo ...

Por isso que peço a ajuda de vocês...

Não quero que desenvolvam a ferramenta pra mim... mais quero que me ajudem quando

não conseguir resolver erros como este acima ...

De qualquer forma.... agradeço muito ajuda de vocês ... VLw mesmo!!!

Abraços a Todos!

o codigo que postei está funcionando so precisa colocar a senha banco e usuario, o seu codigo mostrava os campos da tabela e os dados logo abaixo formando um quadro, pode utilizar o codigo que postei e qualquer erro é so postar

Link para o comentário
Compartilhar em outros sites

  • 0
Obrigado Pessoal... Ainda não consegui o que eu queria...

Mais abriu a minha mente ...

De fato... ninguém me respondeu o que está errado no código...

Mais com as informações que li neste fórum ... acabei aprendendo bastante ...

Agradeço muito por terem respondido ...

Preciso desenvolver e implantar um sistema de notícias interno na empresa.

Pensando em lógica de programação, não é difícil.

O meu maior problema está sendo o PHP, pois programava em C...

estou tentando migrar para o PHP.

Mais toda vez dá pau... não consigo resolver os erros ... e com isso vou perdendo tempo ...

Por isso que peço a ajuda de vocês...

Não quero que desenvolvam a ferramenta pra mim... mais quero que me ajudem quando

não conseguir resolver erros como este acima ...

De qualquer forma.... agradeço muito ajuda de vocês ... VLw mesmo!!!

Abraços a Todos!

respondendo sua pergunta segue seu codigo com algumas citações

<?php

$_con = @mysql_connect("localhost","root","LLgll123"); -> o @ oculta um provavel erro

if($_con===FALSE) { -> é mais indicado você usar o igual ao invés de indentico

echo "Erro na conexao " . mysql.error();

exit();

}

mysql__select_db("test",$_con);

if($_con===FALSE) { -> é mais indicado você usar o igual ao invés de indentico

echo "Não foi possível conectar" . mysql_error();

}

$_sql = "SELECT * FROM usuario1";

$_res = mysql_query($_sql,$_con); -> a não está errado não mas você poderia simplificar $co=mysql_query("select * from usuarios1");

if($_res===FALSE) { -> é mais indicado você usar o igual ao invés de indentico

echo "erro na consulta " . mysql_error() . "<br/>";

} else {

$_nr = mysql_num_rows($_res);

echo "A consulta retornou " . (int) $_nr . " registro(s)<br/>"; -> aqui não precisa indicar que é um inteiro ao contrario da c o php não precisa definir, basta colocar a variavel

->simplificando echo "A consulta retornou $_nr registro(s)<br/>";

if($_nr>0) {

echo "<table border=1 cellspacing=3 cellpadding=2>";

echo "<tr bgcolor='#f0f0f0'>";

for($_i=0;$_i<mysql_num_fields($_res);$_i++) { -> nesse trecho está tudo bem ele exibirá os campos da tabela

echo "<td>" . mysql_field_name($_res,$_i) . "</td>";

}

echo "</tr>";

while($_row=mysql_fetch_assoc($_res)) { -> esse trecho ficou inutil já que para ler os dados é necessario indicar o array dentro do while

$_t = mysql_fetch_lenghts($_res); -> nessa linha acredito que você estaria tentando pegar os dados entaria seria mais adequado utilizar uma das nativas mysql_fetch_array, mysql_fetch_assoc ou mysql_fetch_object

echo "<tr>";

$_i=0;

}

foreach($_row as $_k=>$_vlr) {

echo "<td>$_vlr ({$_t"[$_i]})</td>";

$_i++;

}

echo "</tr>";

}

echo "</table>";

}

mysql_close($_con);

nada foi corrigido somente explicado até mais

Link para o comentário
Compartilhar em outros sites

  • 0

Pode ser alguma incompatibilidade com Windows 7 ???

Meu SO é W7. Provavelmente não funciona por causa disso ...

Alguém sabe me dizer se estou certo ???

Por que se o problema é o SO terei que particionar meu HD para

Instalar o Windows XP. Somente para trabalhar com o PHP.

Se alguém puder responder minha pergunta eu agradeço.

Abraços!

Editado por Guedesll
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...