Jump to content
JFernandesVR

listagens da bd nao ta funciona

Recommended Posts

JFernandesVR

boas pessoal.

estou a tentar fazer uma lista de artigos segundo as subfamilias

o $sql2 funciona na perfeição.

o que nao esta a funcionar é a $resultado2.

alguem me pode ajudar

<?php
//ligação a base de dados
mysql_connect("localhost","******","*********") or die ("Impossivel ligar a base de dados");

//liga a tabela artigos para ir buscar os artigos de acordo com o id da subfamilia
$sql2="SELECT * FROM artigos WHERE SubfamiliaPT  = (SELECT * FROM subfamilias WHERE ID = " .$_REQUEST['id'].") ORDER BY Referencia ASC";
if ($sql2)
{
echo" a sql ta a funcionar<br>";
}
$resultado2=mysql_db_query("********",$sql2);
if (!$resultado2)
{
echo "nao ta a funcionar o resultado";
}
if ($resultado2)
{
 echo "vai funcar <br>";
 print ("<p align=center><strong>Artigos</strong></p><br>");
 print ("Artigos da Familia= <strong>".$_REQUEST['famprincipal']."</strong>  e da SubFamilia= <strong>".$_REQUEST['nome']."</strong>");


 print ("<table width=100% align=center border=2>");
 print ("<tr bgcolor=#009900>
 <td align=center>Referencia</td>
 <td align=center>DescricaoPT</td>
 <td align=center>FamiliaPT</td>
 <td align=center>SubfamiliaPT</td>
 <td align=center>Marca</td>
 <td align=center>Imagem</td>
 <td align=center></td>
</tr>");

 while ($registo=mysql_fetch_array($resultado2))
  {
$ref=$registo['Referencia'];
$desc=$registo['DescricaoPT'];
$fampt=$registo['FamiliaPT'];
$subfampt=$registo['SubfamiliaPT'];
$marca=$registo['Marca'];
$img=$registo['Imagem'];

print ("<tr>
  <td align=center>$ref</td>
  <td align=center>$desc</td>
  <td align=center>$fampt</td>
  <td align=center>$subfampt</td>
  <td align=center>$marca</td>
  <td align=center>$img</td>
  <td align=center><a href=\"editarfamilia.php?id=$id&nome=$nome\">Editar | </a><a href=\"editarfamilia2.php?id=$id&nome=$nome\">  Ver Artigos</a></td></td>
 </tr>");
  }

 print ("</table>");
  }
mysql_close();
?>

Edited by JFernandesVR

Share this post


Link to post
Share on other sites
HappyHippyHippo

o " a sql ta a funcionar<br>", na realidade não está a funcionar.

isso é um SQL errado.

para perceberes melhor o que se está a passar faz:

$resultado2=mysql_db_query("********",$sql2);
if (!$resultado2)
{
echo "nao ta a funcionar o resultado : ".mysql_error();
}


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

Share this post


Link to post
Share on other sites
JFernandesVR

aparece me isto

a sql ta a funcionar

nao ta a funcionar o resultadoOperand should contain 1 column(s)

Edited by Rui Carlos

Share this post


Link to post
Share on other sites
NunoDinis

Parece-me ser da query.. imprime a variável sql2 e copia o resultado para o phpmyadmin para vermos se dá erro.


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
JFernandesVR

ja fiz isso

da erro

SELECT * FROM artigos WHERE SubfamiliaPT = (SELECT * FROM subfamilias WHERE ID = 692) ORDER BY ID ASC

SELECT * FROM artigos WHERE SubfamiliaPT = (SELECT * FROM subfamilias WHERE ID = 692) ORDER BY ID ASC

#1241 - Operand should contain 1 column(s)

o que pretendo é que faça uma listagem dos artigos de uma determinada subfamilia

basicamente sao 2 tabelas "artigos" e "subfamilas", e criei seleccionar da tabela artigos onde o campo subfamiliapt corresponde ao campo da tabela subfamilias seleccionado

Edited by JFernandesVR

Share this post


Link to post
Share on other sites
NunoDinis

SELECT artigos.*, subfamiliaPT.* FROM artigos, subfamiliaPT  WHERE artigos.id = subfamiliaPT.id ORDER BY artigos.id ASC

Não conheço a estrutura, mas penso que assim dará..


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
pikax

@NunoDinis e' preferivel usar LEFT JOIN


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
NunoDinis

@pikax, sim, eu sei..mas como aprendi assim a formular assim as querys é como faço :)


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
HappyHippyHippo
 SELECT *
   FROM artigos
  WHERE SubfamiliaPT = 692
ORDER BY ID ASC

sem tendo a informação completa, será algo como isto

Edited by HappyHippyHippo

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

Share this post


Link to post
Share on other sites
JFernandesVR

 SELECT *
FROM artigos
  WHERE SubfamiliaPT = 692
ORDER BY ID ASC

sem tendo a informação completa, será algo como isto

mas isso é so referente a uma tabele, certo?

o id tem que vir de outra tabela

Share this post


Link to post
Share on other sites
HappyHippyHippo

tens que usar o id do registo da outra tabela.

fazer a projecção com os registos dessa tabela é desnecessário


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

Share this post


Link to post
Share on other sites
JFernandesVR

ainda nao consegui desvendar este caso

<html>
<title>titulo</title>
<body>
<?php
//ligação a base de dados
mysql_connect("localhost","*******","*******") or die ("Impossivel ligar a base de dados");
//liga a tabela artigos para ir buscar os artigos
$sql2="SELECT * FROM artigos WHERE SubfamiliaPT  = (SELECT * FROM subfamilias WHERE ID = " .$_REQUEST['id'].") ORDER BY DescricaoPT ASC";
//se estiver a funcionar vai mostrar
if ($sql2)
{
 echo" a sql ta a funcionar $sql2<br>";
}
$resultado2=mysql_db_query("********",$sql2);
//se o resultado nao estiver a funcionar vai mostrar
if (!$resultado2)
{
 echo "nao ta a funcionar o resultado".mysql_error();
}
//se o resultado estiver a funcionar vai mostrar
if ($resultado2)
{
 echo "vai funcar <br>";
 print ("<p align=center><strong>Artigos</strong></p><br>");
 print ("Artigos da Familia= <strong>".$_REQUEST['famprincipal']."</strong>  e da SubFamilia= <strong>".$_REQUEST['nome']."</strong>");

 print ("<table width=100% align=center border=2>");
 print ("<tr bgcolor=#009900>
 <td align=center>Referencia</td>
 <td align=center>DescricaoPT</td>
 <td align=center>FamiliaPT</td>
 <td align=center>SubfamiliaPT</td>
 <td align=center>Marca</td>
 <td align=center>Imagem</td>
 <td align=center></td>
</tr>");

 while ($registo=mysql_fetch_array($resultado2))
  {
$ref=$registo['Referencia'];
$desc=$registo['DescricaoPT'];
$fampt=$registo['FamiliaPT'];
$subfampt=$registo['SubfamiliaPT'];
$marca=$registo['Marca'];
$img=$registo['Imagem'];

print ("<tr>
  <td align=center>$ref</td>
  <td align=center>$desc</td>
  <td align=center>$fampt</td>
  <td align=center>$subfampt</td>
  <td align=center>$marca</td>
  <td align=center>$img</td>
  <td align=center><a href=\"editarfamilia.php?id=$id&nome=$nome\">Editar | </a><a href=\"editarfamilia2.php?id=$id&nome=$nome\">  Ver Artigos</a></td></td>
 </tr>");
  }

  print ("</table>");
}

mysql_close();
?>
</body>
</html>

esta parte nao esta a funcionar

$resultado2=mysql_db_query("realoff_realoffice",$sql2);
//se o resultado nao estiver a funcionar vai mostrar
if (!$resultado2)
{
 echo "nao ta a funcionar o resultado".mysql_error();
}

aparece me este erro

Operand should contain 1 column(s)

Edited by JFernandesVR

Share this post


Link to post
Share on other sites
HappyHippyHippo

e que tal usares o SQL que te foi apresentado ?

 SELECT *
   FROM artigos
  WHERE SubfamiliaPT = 692
ORDER BY ID ASC

sem tendo a informação completa, será algo como isto


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

Share this post


Link to post
Share on other sites

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.