mysql_num_rows() expects parameter 1 to be resource

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Bart C

Bart C

17/11/2012 10:32:30
Quote Anchor link
Hoi,

ik ben druk in de weer met het maken van een afsprakenkalender zoals deze hier:
http://www.huisartsenpraktijkmontaigne-vromman.be/nl/stap-2?personid=3

Ik heb voorlopig 2 tabellen gemaakt

tblHourList[ID(tinyint), StartTime(varchar), EndTime(varchar)]
tblClosed[ID(tinyint), PeriodStart(date), PeriodEnd(date), Weekday(tinyint), StartTime(tinyint), EndTime(tinyint)]

Ik bouw dus rijen op waarvan de eerste kolom de StartTijd weergeeft vanuit tblHourList en vul dan de volgende 7 kolommen op met een controle in de tabel tblClosed.
Als de weekdag en de start- en eindtijd erin voorkomen dan moet de class van de cell op 'unavailable' komen.
(StartPeriod en EndPeriod heb ik er voorlopig nog uitgelaten)

Toch krijg ik de volgende foutmelding: Warning: mysql_num_rows() expects parameter 1 to be resource

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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
//huidige dag
$current_date = date("d-M-Y");
//start, einde en week ophalen
$week_start_end = week_start_end($current_date);
    $startday = date("d-M-Y", $week_start_end['start']);
    $endday = date("d-M-Y", $week_start_end['end']);
    $weeknumber = $week_start_end['number'];
              
$query_hours = "SELECT * FROM tblHourList";
$result_hours = mysql_query($query_hours);

while ($row = mysql_fetch_array($result_hours))
{

    echo "<tr>";
    echo "<td class=\"hour\">";
    echo $row['StartTime'];
    echo "</td>";
    $moment = strtotime($startday);
    while ($moment <= strtotime($endday))
    {

        //Kijken of de praktijk op dat moment gesloten is
        $query_closed = "SELECT * FROM tblClosed
            INNER JOIN tblHourList ON tblHourList.ID = tblClosed.StartTime
            INNER JOIN tblHourList ON tblHourList.ID = tblClosed.EndTime
            WHERE tblClosed.Weekday = "
.strftime(date("w", $moment))."
                AND tblHourList.StartTime = '"
.$row['StartTime']."'
                    AND tblHourList.EndTime = '"
.$row['EndTime']."'";

        $result_closed = mysql_query($query_closed);

        if (mysql_num_rows($result_closed) > 0)
        {

            $class = "class=\"unavailable\"";
        }

        else
        {
            $class = "class=\"normal\"";
        }


        echo "<td onselectstart=\"return false;\" ".$class.">&nbsp;</td>";
        $moment = strtotime('+1 day', $moment);
    }

    echo "</tr>";
}
              
?>


Waar faalt mijn query?
Gewijzigd op 17/11/2012 10:50:15 door Bart C
 
PHP hulp

PHP hulp

22/12/2024 20:15:38
 
Nick Dijkstra

Nick Dijkstra

17/11/2012 11:46:17
Quote Anchor link
Bouw eens een foutafhandeling in voor je query, lijkt dat die niet goed gaat.

Tip: Gebruik single quotes voor je php en double quotes voor je html
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    $class
= 'class="unavailable"';
?>
Gewijzigd op 17/11/2012 11:48:36 door Nick Dijkstra
 
Obelix Idefix

Obelix Idefix

17/11/2012 12:12:12
Quote Anchor link
Bart C op 17/11/2012 10:32:30:
StartTime(varchar), EndTime(varchar)]
Weekday(tinyint), StartTime(tinyint), EndTime(tinyint)]

StartTime en Endtime: waarom twee verschillende types? En waarom tijd niet als zodanig opslaan?
Weekday; dat kun je toch ook in een query ophalen/bepalen?
 
Bart C

Bart C

17/11/2012 14:14:41
Quote Anchor link
Nick Dijkstra op 17/11/2012 11:46:17:
Bouw eens een foutafhandeling in voor je query, lijkt dat die niet goed gaat.

Tip: Gebruik single quotes voor je php en double quotes voor je html
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    $class
= 'class="unavailable"';
?>


Dag Nick, zal ik idd doen en bedankt voor de tijd. Moet ik dan geen " meer escapen?

Obelix en Idefix op 17/11/2012 12:12:12:
StartTime en Endtime: waarom twee verschillende types? En waarom tijd niet als zodanig opslaan?
Weekday; dat kun je toch ook in een query ophalen/bepalen?


in tblClosed zou ik ze beter StartTime_ID en EndTime_ID noemen. Die hebben dan een relatie met de ID in tblHourList.
Ik heb ervoor gekozen om de tijd niet op te slaan als Time omdat ik er ook niet mee moet gaan rekenen. Het is een vaste lijst van tijdstippen.

Wat Weekday betreft: de bedoeling is om een vast schema op te bouwen waar bv de praktijk elke dinsdag (weekday=2) open is op tijdstippen met StartTime_ID 10,11 en 12. Daarom heb ik geen datum opgeslagen waar ik dan de weekday uithaal.

Maar ik kijk het toch even na of het niet interessanter is om het anders te doen.


Toevoeging op 17/11/2012 15:04:35:

Er zat inderdaad een stommiteit in de db.

tblHourList [ID, STartTime, EndTime] de endtime en starttime heb ik als varchar gelaten omdat ik er toch niet meer reken

tblClose [ID, PeriodStart, PeriodEnd, Weekday, HourList_ID]
 
Reshad F

Reshad F

17/11/2012 19:59:29
Quote Anchor link
Je hoeft dan inderdaad niet te escapen.

Het lijkt wel of je er van uit gaat dat je queries altijd goed gaan. Ik zou daar niet op vertrouwen en foutafhandeling inbouwen. ook zou ik geen * in je query zetten maar velden benoemen.

dus SELECT veldnaam, veldnaam FROM .. etc etc
 
Bart C

Bart C

18/11/2012 20:36:45
Quote Anchor link
Wat betreft het opslaan van een datum: is opslaan van een timestamp als varchar of int een goeie optie of geeft dat beperkingen?
 
- SanThe -

- SanThe -

18/11/2012 21:45:18
Quote Anchor link
DATE of DATETIME of TIMESTAMP.
Nooit een VARCHAR.
 



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.