Hulp gevraagd bij SELECT query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marco ----

Marco ----

14/11/2012 13:41:42
Quote Anchor link
Hallo allemaal,

Bestellingen via onze website kunnen op een bepaalde dag en tijdsblok worden afgehaald.

Dit is geregeld met twee drop down menu's; afhaaldag en tijdsblok. De tijdsblokken kunnen per dag anders zijn, afhankelijk van het aantal klanten die de voorkeur opgeven voor één en hetzelfde tijdsblok. Per blok mogen er 10 personen zijn ingeschreven. Daarna mag het tijdsblok bij de betreffende dag niet meer worden opgehaald, maar nog wel bij de andere dagen.

Met behulp van javascript vul ik het drop down menu van de tijdsblokken:

function setOptions(chosen) {
var selbox = document.myform.zone_id;

selbox.options.length = 0;
if (chosen == " ") {
selbox.options[selbox.options.length] = new Option('Kies eerst een dag a.u.b.',' ');

}
// Vrijdag 28 december
if (chosen == "1") {

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    $select_blok
= "SELECT afhaalblokid, afhaalblok FROM afhaalblok ORDER BY afhaalblokid ASC";
    $result = mysql_query($select_blok);
    
    while($row = mysql_fetch_array($result))
    {

        echo "selbox.options[selbox.options.length] = new Option('".$row['afhaalblok']."','".$row['afhaalblokid']."');";
    }

    ?>

}

// Zaterdag 29 december
if (chosen == "2") {

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    $select_blok
= "SELECT afhaalblokid, afhaalblok FROM afhaalblok WHERE afhaalblokid BETWEEN 6 AND 21 ORDER BY afhaalblokid ASC";
    $result = mysql_query($select_blok);
    
    while($row = mysql_fetch_array($result))
    {

        echo "selbox.options[selbox.options.length] = new Option('".$row['afhaalblok']."','".$row['afhaalblokid']."');";
    }

    ?>

}

// Maandag 31 december
if (chosen == "3") {
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    $select_blok
= "SELECT afhaalblokid, afhaalblok FROM afhaalblok WHERE afhaalblokid BETWEEN 6 AND 14 ORDER BY afhaalblokid ASC";
    $result = mysql_query($select_blok);
    
    while($row = mysql_fetch_array($result))
    {

        echo "selbox.options[selbox.options.length] = new Option('".$row['afhaalblok']."','".$row['afhaalblokid']."');";
    }

    ?>


}
}

Ik heb een bestellingentabel waar de de afhaaldag en het afhaalblok in afzonderlijke velden worden opgeslagen met een id (aparte tabel voor de dagen en nog een tabel voor de tijdsblokken).

Nu heb ik drie queries gebruikt om de tijdsblokken op te halen voor de drie dagen waarop een bestelling afgehaald kan worden. Als één combinatie van afhaaldagid en afhaalblokid 10 keer voorkomt wil ik dat betreffende blok niet ophalen uit de tabel zodat dit blok niet meer zichtbaar is op de website. Ik weet even niet hoe ik dit aan moet pakken. Kan iemand mij hier bij helpen?
Gewijzigd op 14/11/2012 13:44:14 door Marco ----
 
PHP hulp

PHP hulp

10/05/2024 16:45:21
 
Tim S

Tim S

14/11/2012 15:38:57
Quote Anchor link
Misschien denk ik te simpel, maar ik dacht aan if($result>10) zoiets is volgens mij ook in de query te doen
 
Stefan WM

Stefan WM

14/11/2012 15:49:58
Quote Anchor link
je kan een count in je query verwerken
 
Marco ----

Marco ----

14/11/2012 15:53:21
Quote Anchor link
Met een count gaat het volgens mij niet. Als dat kon had ik dat al lang gedaan.
Als ik er naast zit zie ik graag een voorbeeld.
 
Stefan WM

Stefan WM

14/11/2012 15:55:58
Quote Anchor link
http://www.tizag.com/mysqlTutorial/mysqlcount.php

Zo kun je ook een count(*) doen, vervolgens een if($aantal > 10) en dat zou het moeten zijn.
 
Marco ----

Marco ----

14/11/2012 16:00:02
Quote Anchor link
Bedankt voor je reactie.

Ik snap hoe een count werkt. Het gaat hier echter om twee waarden (id's) en daar de combinatie van.

afhaaldagid kunnen er drie zijn, de blokken kunnen er ongeveer 30 zijn en daarmee 90 combinaties.

Dan moet ik dus weten welke combinatie ik dan heb en hoe ik dan voorkom dat die waarde wordt opgehaald.
 
Erwin van Hoof

Erwin van Hoof

14/11/2012 16:52:22
Quote Anchor link
Kun je meer inzicht geven in je tabellen (door een voorbeeld te geven van je data en tabel structuur).

Denk namelijk dat het wel in een query te vangen is.

Groet,

Erwin van Hoof
SiteOn
 
Bart van der Veen

Bart van der Veen

14/11/2012 21:35:39
Quote Anchor link
even uit mijn hoofd, kan het niet matchen met jou database structuur

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
SELECT  afhaalblok.afhaalblokid, afhaalblok.afhaalblok,
(
SELECT  COUNT(bestellingen.userid)
                FROM    bestellingen
                WHERE   bestellingen.afhaalblokid = afhaalblok.afhaalblokid
        )       AS      'afhaalblokLimiet'
FROM    afhaalblok
WHERE   where afhaalblokid BETWEEN 6 AND 14 && afhaalbloklimiet =< 10
ORDER BY afhaalblok.afhaalblokid ASC
?>


nog een aantal dingen.
- je tabellen dezelde naam geven als je kolom is niet bijzonder handig, als leidraard werk met enkel en meervoud.
- je doet drie keer bijna het zelfde in je query voor alle drie de dagen => function()?
 



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.