Jump to content

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


Recommended Posts

Posted

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>';

}

?>

Posted

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
Posted

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...

Posted

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";

Posted

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

Posted

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>';

}

?>

Posted (edited)

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

Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Posted

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
Posted

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..

Posted

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>';

}

?>

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.