Die van slacker_nl is denk ik beter:quote:Op zaterdag 1 november 2014 21:38 schreef xaban06 het volgende:
[..]
Deze zou wel eens kunnen werken. Thanks!
1 2 3 4 5 6 7 8 9 | SELECT `provincie`, `brandstof`, `gewichtStart`, `tarief` FROM `wegenbelasting` WHERE `brandstof` = 'diesel' AND `gewichtstart` = ( SELECT MAX(gewichtstart) FROM wegenbelasting WHERE gewichtstart < 1370 AND brandstof = 'diesel' ) |
Eigenlijk wil je dit doen:quote:Op zaterdag 1 november 2014 21:38 schreef xaban06 het volgende:
[..]
Zit nu mobiel, kan niet testen, maar ik wil de resultaat van ieder provincie. Dus niet alleen de duurste provincie.
quote:Op zaterdag 1 november 2014 21:46 schreef Rockfire het volgende:
[..]
Die van slacker_nl is denk ik beter:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class voorbeeld { public function test() { try { echo "lala"; } // Echoėt evt. foutmelding: catch(Exception $e) { echo "Functie test kon niet uitgevoerd worden: ". $e->getMessage(). "\n"; } } // Einde van scope test } |
throw gooit een exception naar de eerstvolgende errorhandler (een catch statement of een globale errorhandler). Zolang een exception niet gegooid wordt, zal er niks gevangen worden. Veel php function hebben de 'throw' ingebouwd. Mocht echo 'blah' een exception tegenkomen,creert deze een Exception() en throwt deze naar je catch statement. Jij hoeft dit niet expliciet te doen, tenzij je zelf de exception maakt:quote:Op zondag 9 november 2014 22:36 schreef Robuustheid het volgende:
Een vraag:
[ code verwijderd ]
Bij de exception ontbreekt de throw. Dan vraag ik mij af of de exception ook de string kan weergeven?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php class voorbeeld { public function test() { try { $exc = new Exception("lala wordt gewoon uitgevoerd, want deze exception wordt niet gegooid");//doet niks dus! echo "lala"; //wacht effe, hier gaat iets fout throw new Exception("klopt niet"); } // Echoėt evt. foutmelding: catch(Exception $e) { echo "Functie test kon niet uitgevoerd worden: ". $e->getMessage(). "\n"; } } // Einde van scope test } ?> |
1 2 3 4 5 | function AutoloadVoorbeeld($voorbeeld) { $callback = __DIR__.'/includes/php/'. $voorbeeld.'.php'; require_once($voorbeeld); } spl_autoload_register('AutoloadVoorbeeld'); |
1 2 3 4 | function AutoloadVariable($variable) { $variable = new $variable; } spl_autoload_register('AutoloadVariable'); |
Niet echt. Als je probeert te schrijven naar een variabele die niet bestaat, wordt de variabele aangemaakt. Als je een niet-bestaande variabele wilt lezen, wordt een E_NOTICE melding getriggerd (maar dat is afhankelijk van je error_reporting() instellingen). Als zo'n melding komt, kun je dat nog wel als nette melding naar de gebruiker tonen maar heb je geen kans meer om gewoon verder te gaan.quote:Op maandag 10 november 2014 12:55 schreef Robuustheid het volgende:
Ah, dat verklaart! Dank.
Zijn er evt. nog alternatieven, om een variable volgens bepaalde methode te declareren indien deze nog niet gedeclareerd is?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | CREATE TABLE `test` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `Val1` varchar(255) NOT NULL, `Val2` varchar(255) NOT NULL, `Updated` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`Val1`), KEY `ID` (`ID`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Gegevens worden uitgevoerd voor tabel `test` -- INSERT INTO `test` (`ID`, `Val1`, `Val2`, `Updated`) VALUES (1, 'a', '29191', '2014-11-12 19:39:31'); |
1 2 3 | $sql = "INSERT INTO test (Val1, Val2) VALUES ('a','a') ON DUPLICATE KEY UPDATE Val2 = '".rand()."'"; $query = mysqli_query($con, $sql); echo mysqli_affected_rows($con); |
1 2 3 | $sql = "UPDATE test SET Val2 = '".rand()."' WHERE ID=1"; $query = mysqli_query($con, $sql); echo mysqli_affected_rows($con); |
Ah, de comments had ik niet bekeken. Thanks!quote:Op woensdag 12 november 2014 19:51 schreef mstx het volgende:
On duplicate key update geeft 2 terug als een waarde is geupdate, zie manual.
http://php.net/manual/en/mysqli.affected-rows.php
1e comment
1 2 3 4 | <?php $sql = "UPDATE test SET val1='a', val2='b', val3='c', val4='c' (etc) WHERE ID=0"; mysqli_query($con, $sql); ?> |
Tip: Maak de id-kolom unsigned. Dan kun je er 2 keer zoveel records in kwijt (een auto-increment levert altijd positieve getallen op). Niet dat ik verwacht dat je in de buurt van de grens van een signed kolom komt, maar tochquote:
Ik denk niet dat ik boven de 2147483647 id's uitkom jaquote:Op woensdag 12 november 2014 23:10 schreef Light het volgende:
[..]
Tip: Maak de id-kolom unsigned. Dan kun je er 2 keer zoveel records in kwijt (een auto-increment levert altijd positieve getallen op). Niet dat ik verwacht dat je in de buurt van de grens van een signed kolom komt, maar toch
Je zou het ID veld misschien ook wel compleet kunnen verwijderen.quote:Op woensdag 12 november 2014 23:23 schreef qu63 het volgende:
[..]
Ik denk niet dat ik boven de 2147483647 id's uitkom ja
Teller staat nu op 10.733 en zal niet veel meer stijgen
In dit voorbeeld wel jaquote:Op donderdag 13 november 2014 13:28 schreef TwenteFC het volgende:
[..]
Je zou het ID veld misschien ook wel compleet kunnen verwijderen.
quote:Op woensdag 12 november 2014 22:57 schreef qu63 het volgende:
Hoe kan ik beste achterhalen welke van de onderstaande kolommen een nieuwe waarde hebben gekregen door deze query?
[ code verwijderd ]
De wijzigingen kunnen alle kolommen beslaan, of juist geen. En alles er tussenin.
quote:Op woensdag 12 november 2014 22:57 schreef qu63 het volgende:
Hoe kan ik beste achterhalen welke van de onderstaande kolommen een nieuwe waarde hebben gekregen door deze query?
[ code verwijderd ]
De wijzigingen kunnen alle kolommen beslaan, of juist geen. En alles er tussenin.
1 | SELECT `val1` != 'a' AS val1_changed, `val2` != 'b' AS val2_changed |
En deze uitvoeren voor de UPDATE neem ik aan?quote:
Dan ga ik daar even mee puzzelenquote:
quote:
1 2 3 4 5 | <?php $sql = "SELECT `Val1` != 'a' AS Val1_changed, `Val2` != 'a' AS Val2_changed, `Val3` != 'b' AS Val3_changed, `Val4` != 'a' AS Val4_changed, `Val5` != 'a' AS Val5_changed, `Val6` != '' AS Val6_changed FROM `test` WHERE `ID`='1'" $result = mysqli_query($con, $sql); $test = mysqli_fetch_all($result); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | Array ( [0] => Array ( [0] => 0 [1] => 0 [2] => 1 [3] => 0 [4] => 0 [5] => 1 ) ) |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |