(SQL) count bij join van meerdere tabellen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Advanced Mendix Developer Order Management Systeme

Advanced Mendix Developer Order Management Systemen (NL) Den Haag HBO/WO IT Professional "Als Advanced Mendix Developer impact maken op de groeiende e-commerce markt? Je doet dit bij PostNL door met je DevOps team onze Mendix applicaties verder te ontwikkelen, waarbij je complexe logistieke business processen vertaalt naar applicaties die ons primaire proces ondersteunen". Wat ga je doen? PostNL wordt een postal tech company We nemen de ontwikkeling van onze IT applicaties in eigen hand door onze eigen software-ontwikkel-capability op te zetten. Als Advanced Mendix Developer ben je onderdeel van een multidisciplinair, agile werkend Business-IT-team. Samen met dit team bouw je onze logistieke IT-applicaties verder

Bekijk vacature »

Backend / full stack PHP developer met ervaring

Backend / full stack PHP developer met ervaring Wie wij zoeken Wij zoeken een ervaren PHP backend / full stack developerdie zelfstandig en gestructureerd werkt. Wat doen wij? Alflex Technologies ontwikkelt en produceert maatwerkelektronica (hardware en embedded software), mobiele apps, web- en PC-applicaties voor een hele brede markt (BtB). Unieke producten met functies als legionellabestrijding, corrosiebestrijding, smart building/ lightning, (medicijn)verpakkingsmachines, sensoring en nog veel meer. Deze producten worden steeds vaker voorzien van connectiviteit met behulp van LoRa, NB-IoT, LTE-M en zijn daarmee verbonden met het Internet (IoT). Dit stelt weer extra eisen op het gebied van dataverzameling, -ontsluiting en -presentatie

Bekijk vacature »

Marco V

Marco V

07/01/2011 11:17:54
Quote Anchor link
Hallo,

Ik krijg het volgende maar niet aan de praat, weet iemand hoe ik dit zou moeten doen;

Bij het tonen van zoekresultaten wil ik het totaal aantal gevonden regels tellen (ten behoeve van navigatie), maar het volgende script geeft een fout!?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
        // Count how many rows there are in the table
        $countrows = "SELECT count(ARTIKELEN.* , ARTIKELSOORTEN.NAAM as ART_SOORT , ARTIKELEN_LEVERANCIERS.LEVID, ARTIKELEN_LEVERANCIERS.LEVREFERENTIE) FROM ARTIKELEN INNER JOIN
(ARTIKELSOORTEN
        INNER JOIN
            ARTIKELEN_LEVERANCIERS
        ON
               ARTIKELSOORTEN.ID = ARTIKELEN_LEVERANCIERS.ARTIKELID)
        ON ARTIKELEN.SOORT=ARTIKELSOORTEN.ID "
.$where." ORDER BY SOORT, NAAM";
        $count = mysql_fetch_row(mysql_query($countrows));
?>


Het script werkt wel zonder een join (zie onderstaande script), dus de fout zit naar mijn idee in de "count() opdracht" van de query!?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
// Count how many rows there are in the table
        $countrows = "SELECT count(*) FROM ARTIKELEN ".$where." ORDER BY SOORT, NAAM";
        $count = mysql_fetch_row(mysql_query($countrows));
?>
 
PHP hulp

PHP hulp

01/03/2021 04:38:45
 
Tikkes C

Tikkes C

07/01/2011 11:24:31
Quote Anchor link
wat doen die () in je sql?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
        // Count how many rows there are in the table
        $countrows = "SELECT
count(ARTIKELEN.* , ARTIKELSOORTEN.NAAM as ART_SOORT , ARTIKELEN_LEVERANCIERS.LEVID, ARTIKELEN_LEVERANCIERS.LEVREFERENTIE) FROM ARTIKELEN INNER JOIN
ARTIKELSOORTEN
ON ARTIKELEN.SOORT=ARTIKELSOORTEN.ID
INNER JOIN
ARTIKELEN_LEVERANCIERS
ON ARTIKELSOORTEN.ID = ARTIKELEN_LEVERANCIERS.ARTIKELID
"
.$where."
ORDER BY SOORT, NAAM"
;

$count = mysql_fetch_row(mysql_query($countrows));

?>


en wat doe je juist met die count? over alles?
 
Marco V

Marco V

07/01/2011 13:26:16
Quote Anchor link
Met behulp van het resultaat van "count" bepaal ik de huidige positie in het totaal van de zoekresultaten.

Ik kreeg (en krijg nogsteeds!) een foutmelding (Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given) op de volgende regel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$count
= mysql_fetch_row(mysql_query($countrows));
?>


De waarde van $where (WHERE ARTIKELEN.BLOCK = 'N') is gelijk aan de variant zonder de join, daar kan het naar mijn idee niet aan liggen. De haakjes in de sql zorgen ervoor er toch voor een join wordt gedaan op het resultaat van de join (tussen de haakjes)?

Ik zoek nog even verder... doch tips zijn welkom! :-)

Toevoeging op 07/01/2011 13:55:50:

Ik heb de oplossing gevonden... de juiste query moest zijn:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$countrows
= "SELECT count(*) FROM ARTIKELEN INNER JOIN (ARTIKELSOORTEN INNER JOIN ARTIKELEN_LEVERANCIERS ON ARTIKELSOORTEN.ID = ARTIKELEN_LEVERANCIERS.ARTIKELID) ON ARTIKELEN.SOORT=ARTIKELSOORTEN.ID ".$where." ORDER BY ARTIKELEN.SOORT, ARTIKELEN.NAAM";
?>


In elk geval dank voor je reactie!
Gewijzigd op 07/01/2011 13:46:01 door Marco V
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.