Ir para o conteúdo
AllieNNN

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in ....... on line 4

Mensagens Recomendadas

AllieNNN    0
AllieNNN

Boas,

Estou a tentar fazer com que ao carregar num botao, mostre só as subcategorias de cada categoria.

Mas dá me este erro : Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\balancascopia\conteudos\sub_categoria.php on line 4

Conseguem-me ajudar?

<?php

$query = "SELECT * from categoria INNER JOIN sub_categoria ON id_categoria ";

$result = mysql_query($query);

while($row = mysql_fetch_array($result)) {

echo '<div class="read1">

<div class="read1-img1"> '.$row['foto_subcategoria'] .' </div>

<h3>'.$row['nome_subcategoria'].'</h3>

<a href="index.php?p=produtos&id='.$row['nome_categoria'].'">VER MAIS</a>

</div>';

}

?>

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

como a mensagem de erro indica, o parâmetro da função mysql_fetch_array necessira que seja do tipo recurso

como o valor que estás a inserir como parâmetro dessa função é o resultado da chamada da função mysql_query, quer dizer simplesmente que essa função falhou, sendo de esperar que seja uma de duas razões:

- erro de ligação à base de dados

- erro no comando SQL executado

para isso, é necessário recorrer à função mysql_error para determinar exactamente quais dessas duas situações que ocorreu para se determinar que passos deverão ser tomados para resolver o problema.

ps : prepara-te para a torrente de post's a dizerem para não usares a família de funções mysql_* e passares a usar mysqli_* ou PDO


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
AllieNNN    0
AllieNNN

Aparece-me este erro agora ,

acrescentei o tal my sql error : while($row = mysql_fetch_array($result) or die(mysql_error()));

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\balancascopia\conteudos\sub_categoria.php on line 4

Column 'id_categoria' in on clause is ambiguous

Se não usasse essa familia qual usaria?

Sou novo em php...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

pensa nas duas tabelas que tens

se as duas tabelas possuem a mesma coluna (is_categoria), como achas que computador sabe de que tabela pertence a coluna denominada por id_categoria ?

isto porque na realidade o teu SLQ está mal construido:

https://dev.mysql.com/doc/refman/5.0/en/join.html


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
AllieNNN    0
AllieNNN

Mas então como faço para ligar as tabelas? não tem que ter algo em comum? basta mudar o id_categoria da tabela sub_categoria para idd_categoria por exemplo??

uso assim???

$query = "SELECT from categoria INNER JOIN sub_categoria ON categoria.id_categoria=sub_categoria.id_categoria";

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

vês como aprendes depressa ?

ps : nesse SQL falta só dizer que campos queres que o query retorne

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
AllieNNN    0
AllieNNN

Agora entendi, muito obrigado mas continua a dar erro de syntax

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\balancascopia\conteudos\sub_categoria.php on line 4

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from categoria INNER JOIN sub_categoria ON categoria.id_categoria=sub_categoria.' at line 1

<?php

$query = "SELECT from categoria INNER JOIN sub_categoria ON categoria.id_categoria=sub_categoria.id_categoria";

$result = mysql_query($query);

while($row = mysql_fetch_array($result) or die(mysql_error())); {

echo '<div class="read1">

<div class="read1-img1"> '.$row['foto_subcategoria'] .' </div>

<h3>'.$row['nome_subcategoria'].'</h3>

<a href="index.php?p=produtos&id='.$row['nome_categoria'].'">VER MAIS</a>

</div>';

}

?>

ps: Como assim? não estou a perceber onde tenho de definir

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
AllieNNN    0
AllieNNN

Peço desculpa mas não estou a chegar lá...

Estou baralhado..

$query = "SELECT table_references from categoria INNER JOIN sub_categoria ON (categoria.id_categoria=sub_categoria.id_categoria;

coloquei isso deu--me erro nisto:

Parse error: syntax error, unexpected 'read1' (T_STRING) in C:\xampp\htdocs\balancascopia\conteudos\sub_categoria.php on line 5

<?php

$query = "SELECT table_references from categoria INNER JOIN sub_categoria ON (categoria.id_categoria=sub_categoria.id_categoria;

$result = mysql_query($query);

while($row = mysql_fetch_array($result) or die(mysql_error())); {

echo '<div class="read1">

<div class="read1-img1"> '.$row['foto_subcategoria'] .' </div>

<h3>'.$row['nome_subcategoria'].'</h3>

<a href="index.php?p=produtos&id='.$row['nome_categoria'].'">VER MAIS</a>

</div>';

}

?>

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

não sei onde tiraste a ideia de enfiar um parêntesis logo a seguir à palavra reservada ON assim como retiraste o caracter terminador da string

vamos esquecer completametne isso e voltar atrás :

$query = "SELECT  from categoria INNER JOIN sub_categoria ON categoria.id_categoria=sub_categoria.id_categoria";

agora diz >> como indicas que campos queres obter da query ? a resposta está no link que te tinha fornecido : https://dev.mysql.com/doc/refman/5.0/en/select.html

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

ok ... foi então na escola que te ensinaram PHP e como interagir com um servidor SQL (era de supor) ...

nesse caso, o melhor é mesmo dizer o que deves fazer para teres a noção das coisas.

nota que não invalida teres de ler a documentação que te amostrei através dos links. é algo que tens de ler e perceber, custe o que custar

ok

o teu problema está aqui:

SELECT   from categoria INNER JOIN sub_categoria ON categoria.id_categoria=sub_categoria.id_categoria
      A
      |
que campos queres que o query retorne ?

tens de fazer pelo menos uma das seguintes coisas:

- listar os campos das tabelas que queres que o query retorne

- dizer que queres todos os campos de uma das tabelas usadas

- dizer que queres simplesmente todos os campos

exemplo (listar todos os campos da tabela categoria) :

SELECT categoria.* from categoria INNER JOIN sub_categoria ON categoria.id_categoria=sub_categoria.id_categoria


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
AllieNNN    0
AllieNNN

Eu tentei por só categoria mas não fez nada, faltava-me então por o " .* " neste momento nao estou no estágio mas mal chegue lá vou experimentar..

Agradeço-lhe imenso a paciência..

Eu sabia que era naquela zona que devia chamar, mas não estava a conseguir da maneira normal..

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
AllieNNN    0
AllieNNN

Agora o meu problema está na div que quero apresentar ....

Este código é o das categorias que me iriam aparecer

<?php

$query = "SELECT * from categoria";

$result = mysql_query($query);

while($row = mysql_fetch_array($result)) {

echo '<div class="read1">

<div class="read1-img1"> '.$row['foto_categoria'] .' </div>

<h3>'.$row['nome_categoria'].'</h3>

<a href="index.php?p=sub_categoria&id='.$row['id_categoria'].'">VER MAIS</a>

</div>';

}

?>

Neste é o codigo onde aparecem as subcategorias de cada categoria

<?php

$query = "SELECT categoria.* , sub_categoria.* from categoria INNER JOIN sub_categoria ON categoria.id_categoria=sub_categoria.id_categoria;

$result = mysql_query($query);

while($row = mysql_fetch_array($result) or die(mysql_error())); {

echo'<div class="read1">

<div class="read1-img1"> '.$row['foto_subcategoria'] .' </div>

<h3>'.$row['nome_subcategoria'].'</h3>

<a href="index.php?p=produtos&id='.$row['nome_categoria'].'">VER MAIS</a>

</div>';

}

?>

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
AllieNNN    0
AllieNNN

Parse error: syntax error, unexpected 'read1' (T_STRING) in C:\xampp\htdocs\balancascopia\conteudos\sub_categoria.php on line 6

é este e é no codigo das sub_categorias..

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

faltava-me as aspas no fim da query

achas mesmo que eu não sabia isso ?

a razão porque perguntei que editor usas é porque um bom editor de texto tem o que se chama de syntax highlighter que te diz imediatamente quando a string não se encontra terminada ao tornar as cores de todos os elementos trocada (porque o editor continua a "pensar" que faz parte da string.


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
AllieNNN    0
AllieNNN

Vou fazer download desse editor texto, mas será que tenho mais alguma coisa mal no código?? é que nao me mostra nada. e eu tenho 2 subcategorias feitas na bd

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
AllieNNN    0
AllieNNN

Apareceu, removi o mysql error e apareceu, mas porque?

e só me aparece o botao para ver mais, não me aparece o nome da sub_categoria nem nada..

Editado por AllieNNN

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.