[PHP][MYSQL] Tabellen missen?

Pagina: 1
Acties:
  • 100 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 20-09 02:48
Ik gebruik de volgende query om de subcategorieen in een hoogdcategorie te selecteren en daarbij ook het aantal producten te tellen.

PHP:
1
2
3
4
5
6
7
8
    $subcategoryq = mysql_query("SELECT s.id,s.name,s.description,p.stock, COUNT(p.id) as num
                                 FROM shop_subcategory AS s
                                    LEFT JOIN shop_products AS p
                                        ON(p.id_subcategory = s.id)
                                 WHERE s.id_category='".$category['id']."'
                                 AND p.stock >= 0
                                 GROUP BY s.id,s.name,s.description
                                 ORDER BY id") or die(mysql_error());


De query werkt goed, op 1 ding na.
Wanneer er geen producten in een subcategorie zijn geplaatst wordt de subcategorie niet meegenomen.
Het probleem doet zich niet voor als ik de regel "AND p.stock >= 0" weghaal. (Regel 6)
Als een product als stock status -1 heeft, mag het niet meer worden weergegeven.

Op de volgende pagina heb ik een voorbeeld.

http://www.heuvellandcatering.nl/nieuw/?pid=shop/home
De categorie "koud buffet -> luxe schalen" bevat 3 producten waarvan er 1 als stock -1 heeft.
Wie kan me helpen ?

[ Voor 14% gewijzigd door GewoonNico op 26-02-2005 10:52 ]


Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 16:08

pistole

Frutter

Het probleem doet zich niet voor als ik de regel "AND p.stock >= 0" weghaal. (Regel 6)
Ik vermoed dat er een null staat, of dat er dan geen records is in de rechter tabel (p) ?

Dat zou je kunnen oplossen met ISNULL(p.stock, 0) >= 0

Maar dat is Transact-SQL (MS-SQL) dus wellicht moet je MySQL's equivalent even opzoeken

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 20-09 02:48
Euhmm met functie ISNULL werkt het ook niet helemaal. Dan worden namelijk ook de producten geteld die als stock -1 hebben

[ Voor 131% gewijzigd door GewoonNico op 26-02-2005 11:07 ]


Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 16:08

pistole

Frutter

partypas schreef op zaterdag 26 februari 2005 @ 11:05:
WOW! Je bent geweldig

dit de mijn query uiteindelijk
(8>
Verstand (of ervaring) komt met de jaren he ;)
Maar zou je niet liever >=1 willen doen, of je hyperlink verwijderen als stock==0 ?
edit:

grrr je post editen terwijl ik aan het quoten ben

[ Voor 15% gewijzigd door pistole op 26-02-2005 11:08 ]

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 20-09 02:48
Nou, in het cms kun je aangeven of je een product wilt verwijderen. Dus, niet meer wilt verkopen
Maar als je dit doet dan klopt de administratie niet meer dus dat heb ik eruit gelaten. Ik heb het opgelost door stock op -1 te zetten.

offtopic:
Sorry dat ik dacht dat t opgelost was terwijl dat niet zo was hihi

[ Voor 17% gewijzigd door GewoonNico op 26-02-2005 11:09 ]


Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 16:08

pistole

Frutter

wat gaat er nu nog fout dan?

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 20-09 02:48
De producten die als 'stock -1 ' hebben, worden ook geteld.

[ Voor 17% gewijzigd door GewoonNico op 26-02-2005 11:31 ]


Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 16:08

pistole

Frutter

het lijkt me dat je where clause dan nog niet goed is.... wellicht zou je iets met <> -1 moeten doen, of ...whatever.
Misschien is het ook handiger om je queries te testen in MySQL Query Browser oid ?

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 20-09 02:48
De query werkt wel goed, wanneer ik AND p.stock >= 0 gebruik.
Maar, dan worden de subcategorieen zonder producten niet weergegeven.
Pagina: 1