Kan het ook zo?

  • Hallo cpers.


    PHP
    $dbres		= mysql_query("SELECT *,UNIX_TIMESTAMP(`time`) AS `time` FROM `Jail` WHERE `name`='{$data['name']}'");
    $num		= mysql_num_rows($dbres);
    $myself		= mysql_fetch_assoc($dbres);


    Om te laten zien dat je in de gevangenis zit doe je dit.


    PHP
    if (!$myself) {
    	echo "Je zit niet in de gevangenis.";
    	exit;
    }


    Maar als ik nou is dit doe


    PHP
    if ($num = 0) {
    	echo "Je zit niet in de gevangenis.";
    	exit;
    }


    Geef hij dan ook aan dat je in de gevangenis zit?


    Weet iemand of het werkt?

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Citaat

    Dit is echt de domste vraag die ik hier gezien heb... ik zou zeggen PROBEER HET EENS?


    Bij langer na niet, ik zie dat iemand zich wilt verdiepen in de mogelijkheden van PHP en MySQL, geweldig!


    mysql_num_rows kijkt hoeveel resultaten (rows) de query heeft opgeleverd. Dus dit kan wel, echter, moet je dan niet selecteren of hij in de gevangenis zit, maar als voorwaarden stellen, of hij in de gevangenis zit. De query wordt dan als volgt:


    SELECT 1 FROM `Jail` WHERE `name`='{$data['name']}' AND UNIX_TIMESTAMP(`time`) > NOW()


    Iets in die richting, weet niet de precieze betekenis van je time column.

  • Db-maffia
    Als je het zelf wist dan had je het zelf wel gezegt, kijk nou dus hoe dom je bent (c).


    @Killingdevil
    Oke dankje ikga het ff verder uitzoeken.


    Wat is er bij dit stukje fout?


    PHP
    mysql_query("UPDATE `Jail` SET `penalty`='{$penalty}', `bo`+1, `time`=FROM_UNIXTIME($myself['time'] + 50) WHERE `name`='{$data['name']}'");


    De error is:


    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in

  • Je maakt al 2 grote fouten:
    je roept bij de eerste code assoc op dit moet je op de volgende manier doen:

    PHP
    if (!$myself['id']) {
        echo "Je zit niet in de gevangenis.";
        exit;
    }


    en bij numrows vergeet je een =, dus dan word hij:

    PHP
    if ($num == 0) {
        echo "Je zit niet in de gevangenis.";
        exit;
    }

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.


    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML


    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • NielsB, je eerste "oplossing" is fout... Op de manier van de TS kan het ook, doe maar eens var_dump($myself), als er al iets in zit, dan is het true.


    Reactie op hieronder, Darsstar: Ik bedoelde meer in die if-statement :)

  • NielsB
    mysql_fetch_* functies returnen FALSE als er geen (meer) rij gevonden is...
    Als het niet zo was zou je een oneindige loop krijgen wanneer je het in een while stopt :p

    Citaat van "php.net"

    Returns an associative array of strings that corresponds to the fetched row, or FALSE if there are no more rows.


    Jannick
    var_dump($myself) zal of FALSE of een array laten zien, maar geen TRUE :p



    YVMdesign
    Als je een parse error krijgt en je ziet de fout niet op de regel zelf (wat ik nu heb), dan zou ik eens naar de regel er boven kijken...
    Het is daarom ook vaak handig om iets van 5 regels te geven en aan te geven welke regel volgens PHP de fout bevat...

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!