Thanks. Zat allemaal moeilijk te doen met die array's vergelijken, maar dat werkte allemaal niet.quote:Op dinsdag 6 oktober 2009 13:58 schreef Light het volgende:
Aangenomen dat je subqueries kunt gebruiken:
[ code verwijderd ]
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 47 48 49 50 51 52 53 54 55 56 57 58 | ( [1] => 2 [2] => 2 [3] => 0 [6] => 1 [8] => 1 [10] => 0 [11] => 1 [12] => 4 [13] => 2 [14] => 1 [27] => 1 [28] => 1 [33] => 1 ) gisteren:Array ( [1] => 2 [2] => 0 [3] => 0 [5] => 1 [6] => 2 [7] => 1 [8] => 1 [9] => 1 [11] => 0 [12] => 4 [13] => 3 [14] => 1 ) totaal:Array ( [12] => 8 [13] => 5 [1] => 4 [6] => 3 [14] => 2 [8] => 2 [2] => 2 [9] => 1 [5] => 1 [7] => 1 [11] => 1 [26] => 0 [27] => 0 [28] => 0 [33] => 0 [17] => 0 [16] => 0 [3] => 0 [4] => 0 [10] => 0 [15] => 0 ) geen hits SQL: SELECT * FROM `linkpartners` WHERE ID NOT in(1, 2, 3, 6, 8, 11, 12, 13, 14, 5, 7, 9) |
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 | $totaal = array(); foreach(array_keys($hitsArray) as $key) { if(isset($hitsArrayYesterday[$key])) { $totaal[$key] = $hitsArray[$key] + $hitsArrayYesterday[$key]; } } foreach(array_keys($hitsArrayYesterday) as $key) { if(!isset($totaal[$key])) { $totaal[$key] = $hitsArrayYesterday[$key]; } } $SQLnohits = "SELECT * FROM `linkpartners` WHERE ID NOT in("; foreach(array_keys($totaal) as $key) { $SQLnohits .= $key .", "; } $SQLnohits = substr($SQLnohits, 0, -2) .")"; $querynohits = mysql_query($SQLnohits); while($row = mysql_fetch_object($querynohits)) { $totaal[$row->ID] = 0; } arsort($totaal); ?> |
Laat je niet een komma teveel genereren?quote:Op dinsdag 6 oktober 2009 15:28 schreef pc-fr34k het volgende:
Ik had al eerder hier hulp gevraagd voor dit probleem, dacht dat het goed was maar blijkbaar nog niet. Ik heb dus 3 arrays in totaal. $hitsArray staan de hits per partner van vandaag en in $hitsArrayYesterday staan die van gisteren. Die worden samengevoegd in $totaal, waarna de overige partners zonder hits worden binnengehaalt.
Arrays:
[ code verwijderd ]
Code:
[ code verwijderd ]
Wie o wie heeft door wat er nou fout is?
Bedankt. .
Daar is dit stuk voorquote:Op dinsdag 6 oktober 2009 15:55 schreef Lantashh het volgende:
[..]
Laat je niet een komma teveel genereren?
1 2 3 | $SQLnohits = substr($SQLnohits, 0, -2) .")"; ?> |
Dat gaat goed tot je een keer een array met maar 1 element hebt.quote:Op dinsdag 6 oktober 2009 16:36 schreef pc-fr34k het volgende:
[..]
Daar is dit stuk voor
[ code verwijderd ]
Als je kijkt naar die uiteindelijke query zie je ook dat het klopt.(onderaan die array's in dat eerste stuk)
1 2 3 | $keys = implode(', ', array_keys($totaal)); ?> |
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 | error_reporting(E_ALL); class main { function test() { echo 'main:test()<br />'; } } class sub extends main { function test() { echo 'main:submodule:test()<br /'; parent::test(); } public function test2() { echo 'main:submodule:test2()<br />'; $this->test(); } } $x = new main(); $x->test(); $x->test2(); ?> |
1 |
gebruik GREATEST(0, aantal-2)quote:Op woensdag 7 oktober 2009 20:45 schreef Swetsenegger het volgende:
[ code verwijderd ]
Hoe voorkom ik nou dat aantal op -1 komt te staan als er onverhoopt maar 1 aantal was voor de query?
Wat de copulatie doet dit??quote:
1 |
1 |
Tnx, ik dacht dat het via een de hoofdclass overgenomen zou worden (denk net andersom blijkbaar).quote:Op woensdag 7 oktober 2009 20:45 schreef GlowMouse het volgende:
je moet ook new sub(); doen, anders gebruik je de eerste class.
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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | error_reporting(E_ALL); class main { public function test() { echo 'main:test()<br />'; } } class db extends main { var $secret = 123; function set() { $this->secret = true; } function abc() { echo 'abc'; echo $this->secret; } } class sub extends main { public function test() { echo 'main:submodule:test()<br />'; parent::test(); } public function test2() { echo 'main:submodule:test2()<br />'; $this->test(); } public function start() { db::set(); } public function woei() { db::abc(); } } $x = new sub; $x->woei(); echo '<hr>'; $x->test2(); ?> |
. Ik kende implode al, had er alleen raar genoeg niet aan gedacht.quote:Op dinsdag 6 oktober 2009 18:58 schreef Light het volgende:
[..]
Dat gaat goed tot je een keer een array met maar 1 element hebt.
Het kan veel overzichtelijker en korter:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 | foreach(array_keys($hitsArray) as $key) { if(!isset($totaal[$key])) { $totaal[$key] = $hitsArray[$key]; } } ?> |
1 2 3 4 5 6 7 8 9 | foreach(array_keys($hitsArrayYesterday) as $key) { if(!isset($totaal[$key])) { $totaal[$key] = $hitsArrayYesterday[$key]; } } ?> |
1 2 3 4 5 | unset($_SESSION['cardid']); // Stop de kaart in een sessie. $_SESSION['cardid'] = $_POST['cardid']; ?> |
omdat hij dat niet doet. dat is juist het probleemquote:Op donderdag 8 oktober 2009 18:28 schreef slacker_nl het volgende:
$_SESSION['cardid'] = $_POST['cardid']; overwrite het toch gewoon, dus waarom unsetten?
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 | $directory="Icons"; $results = array(); $handler = opendir($directory); while ($file = readdir($handler)) { if ($file != '.' && $file != '..' && $file != "robots.txt" && $file != ".htaccess"){ $currentModified = filectime($directory."/".$file); $file_names[] = $file; $file_dates[] = $currentModified; } } closedir($handler); arsort($file_dates); //Match file_names array to file_dates array $file_names_Array = array_keys($file_dates); foreach ($file_names_Array as $idx => $name) $name=$file_names[$name]; $file_dates = array_merge($file_dates); $i = 0; //Loop through dates array and then echo the list foreach ($file_dates as $$file_dates){ $j = $file_names_Array[$i]; $file = $file_names[$j]; $i++; echo "Latest icons: $file<br/>"; } ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |