-
Posts
24,573 -
Joined
-
Last visited
-
Days Won
824
Everything posted by Barand
-
Creating a database or... (CAR/TYRE guys take a look)
Barand replied to IamSuchANoob's topic in Application Design
to process a single line like that you can $str = 'Mark;;Mudel;;;Mootor;;;;;;;Laius Kõrgus ZR;;"R """;;LI;SI;XL e4txc4;;;;;;;;;;;;;;;;;;;;;;;;'; $data = array_filter(str_getcsv($str,';')); // ignore empty values echo '<pre>',print_r($data, true),'</pre>'; // view the data array which gives Array ( [0] => Mark [2] => Mudel [5] => Mootor [12] => Laius Kõrgus ZR [14] => R " [16] => LI [17] => SI [18] => XL e4txc4 ) To process the whole file you use fgetcsv, which is similar. -
We won't do your homework for you. Use meaningful topic titles in future
-
Need help with script that copies JPG to different quality settings
Barand replied to mreish's topic in PHP Coding Help
That is what you said you want to do. If you want to reduce the quality each time then don't hard-code the "50", put it in a variable and reduce the value in each loop -
Using date comparison in an if statement
Barand replied to ohboyatoytruck's topic in PHP Coding Help
You cannot compare dates correctly using that date format. Always use yyyy-mm-dd for date storage and comparisons. Format as required on final output. -
What should be a simple issue is making me nuts... Help please.
Barand replied to Johninbc's topic in PHP Coding Help
You need to pass 4 parameters when you connect, not just 1. Try $conn = "mysqli_connect(db_host, db_user, db_pass, db_name)"; and don't post db credentials. -
If we knew your input data, what you are getting and what you expect to get then maybe we'd have some ideas.
-
Only checked checkbox values are posted so you need to do something like this $captcha_reset_pass = isset($_POST['captcha_reset_pass'] ? 'yes' : 'no';
-
there are some conversion programs around http://lmgtfy.com/?q=php+html+to+pdf+conversion
-
Calculating Inbreeding on a 10 Generation Pedigree
Barand replied to Triple_Deuce's topic in PHP Coding Help
This my best attempt yet. Instead of counting I store the traversed path then eliminate duplicates. <?php // // ARRAY OF DOGS // id => [sire, dam, name] // $dogs = array ( 1 => array ( 0 => '2', 1 => '3', 2 => 'Nimh\'s Delorean', ), 2 => array ( 0 => '4', 1 => '9', 2 => 'Dog B', ), 3 => array ( 0 => '7', 1 => '8', 2 => 'Dog C', ), 4 => array ( 0 => '7', 1 => '9', 2 => 'Dog E', ), 5 => array ( 0 => '10', 1 => '11', 2 => 'Dog F', ), 7 => array ( 0 => '14', 1 => '15', 2 => 'Dog H', ), 8 => array ( 0 => '16', 1 => '17', 2 => 'Dog I', ), 9 => array ( 0 => '16', 1 => '17', 2 => 'Dog J', ), 10 => array ( 0 => '18', 1 => '19', 2 => 'Dog K', ), 11 => array ( 0 => '20', 1 => '21', 2 => 'Dog L', ), 14 => array ( 0 => '20', 1 => '17', 2 => 'Dog O', ), 15 => array ( 0 => '0', 1 => '0', 2 => 'Dog P', ), 16 => array ( 0 => '14', 1 => '17', 2 => 'Dog Q', ), 17 => array ( 0 => '0', 1 => '0', 2 => 'Dog R', ), 18 => array ( 0 => '0', 1 => '0', 2 => 'Dog S', ), 19 => array ( 0 => '0', 1 => '0', 2 => 'Dog T', ), 20 => array ( 0 => '0', 1 => '0', 2 => 'Dog U', ), 21 => array ( 0 => '0', 1 => '0', 2 => 'Dog V', ), 22 => array ( 0 => '0', 1 => '0', 2 => 'Dog W', ), 23 => array ( 0 => '0', 1 => '0', 2 => 'Dog X', ), 24 => array ( 0 => '25', 1 => '26', 2 => 'Cedric', ), 25 => array ( 0 => '27', 1 => '0', 2 => 'Phantom', ), 26 => array ( 0 => '27', 1 => '0', 2 => 'Walton Mare', ), 27 => array ( 0 => '0', 1 => '0', 2 => 'Walton', ), 28 => array ( 0 => '0', 1 => '0', 2 => 'A', ), 29 => array ( 0 => '0', 1 => '0', 2 => 'B', ), 30 => array ( 0 => '29', 1 => '28', 2 => 'C', ), 31 => array ( 0 => '29', 1 => '28', 2 => 'D', ), 32 => array ( 0 => '0', 1 => '30', 2 => 'E', ), 33 => array ( 0 => '0', 1 => '31', 2 => 'F', ), 34 => array ( 0 => '33', 1 => '32', 2 => 'I', ), 35 => array ( 0 => '0', 1 => '0', 2 => 'J', ), 36 => array ( 0 => '0', 1 => '0', 2 => 'K', ), 37 => array ( 0 => '0', 1 => '0', 2 => 'L', ), 38 => array ( 0 => '0', 1 => '0', 2 => 'M', ), 39 => array ( 0 => '0', 1 => '0', 2 => 'N', ), 40 => array ( 0 => '0', 1 => '0', 2 => 'Dog1', ), 41 => array ( 0 => '0', 1 => '0', 2 => 'Dog2', ), 42 => array ( 0 => '40', 1 => '41', 2 => 'Dog3', ), 43 => array ( 0 => '42', 1 => '41', 2 => 'Dog4', ), 44 => array ( 0 => '0', 1 => '0', 2 => 'O', ), 45 => array ( 0 => '0', 1 => '0', 2 => 'P', ), 46 => array ( 0 => '44', 1 => '45', 2 => 'Q', ), 47 => array ( 0 => '44', 1 => '45', 2 => 'R', ), 48 => array ( 0 => '46', 1 => '47', 2 => 'S', ), 49 => array ( 0 => '46', 1 => '47', 2 => 'T', ), 50 => array ( 0 => '48', 1 => '49', 2 => 'U', ), 51 => array ( 0 => '0', 1 => '0', 2 => 'A', ), 52 => array ( 0 => '0', 1 => '0', 2 => 'B', ), 53 => array ( 0 => '51', 1 => '52', 2 => 'C', ), 54 => array ( 0 => '51', 1 => '52', 2 => 'D', ), 55 => array ( 0 => '51', 1 => '52', 2 => 'E', ), 56 => array ( 0 => '51', 1 => '52', 2 => 'G', ), 57 => array ( 0 => '53', 1 => '54', 2 => 'H', ), 58 => array ( 0 => '55', 1 => '56', 2 => 'I', ), 59 => array ( 0 => '57', 1 => '58', 2 => 'J', ), 60 => array ( 0 => '59', 1 => '50', 2 => 'Z', ) ); // // CALCULATE INBREEDING COEFFICIENTS // $doglist = [4,9,34,50,59,60]; echo "<pre>\n"; foreach ($doglist as $dogid) { printf("%-20s (#%03d) COI : %0.4f<br>", $dogs[$dogid][2], $dogid, COI($dogid, $dogs)); } echo "</pre>\n"; // // FUNCTIONS // function getAncestors($id, &$dogs, &$ancests, $path) { if ($id==0) return; $ancests[$id][] = $path; if (isset($dogs[$id]) ) { getAncestors($dogs[$id][0], $dogs, $ancests, $path.$dogs[$id][0].','); getAncestors($dogs[$id][1], $dogs, $ancests, $path.$dogs[$id][1].','); } } function COI($id, &$dogs) { if ($id==0) return 0; $sires = $dams = []; getAncestors($dogs[$id][0], $dogs, $sires, ''); getAncestors($dogs[$id][1], $dogs, $dams, ''); $result=0; foreach ($sires as $did=>$dists) { if (isset($dams[$did])) { $distd = $dams[$did]; foreach ($dists as $paths) { foreach ($distd as $pathd) { $ds = count(explode(',', $paths)); $dd = count(explode(',', $pathd)); if ($paths==$pathd && $ds>2) continue; $sumd = $ds + $dd-1; $intermed = pow(0.5, $sumd) * (1 + COI($did, $dogs)); $result += $intermed; // printf("| %5s | %8.4f | %12s | %12s |\n", $dogs[$did][2], $intermed, $paths, $pathd); } } } } return $result; } Results Dog E (#004) COI : 0.1875 Dog J (#009) COI : 0.3750 I (#034) COI : 0.0625 U (#050) COI : 0.3750 J (#059) COI : 0.2500 Z (#060) COI : 0.0000- 40 replies
-
- inbreeding
- pedigree
-
(and 2 more)
Tagged with:
-
Update field but do nothing when field value equals
Barand replied to cobusbo's topic in PHP Coding Help
I agree with ginerjm, that's a terrible table design. Make it a datetime field with a value of '9999-12-31 23:59:59' for those that are permanent. Then your query works as it is now (except you would use NOW() instead of UNIX_TIMESTAMP() ) As it is now, are you saying you want to update the "kick" fields where kick < UNIX_TIMESTAMP() AND kick <> 'Permanently' ? -
Calculating Inbreeding on a 10 Generation Pedigree
Barand replied to Triple_Deuce's topic in PHP Coding Help
I'm struggling too. My method got U correct but not J. Using your nested foreach() method gets J correct but not U. Time for a new algorithm?- 40 replies
-
- inbreeding
- pedigree
-
(and 2 more)
Tagged with:
-
Calculating Inbreeding on a 10 Generation Pedigree
Barand replied to Triple_Deuce's topic in PHP Coding Help
Those results were from my own code. Yours almost agrees with mine in that we both get | 44 | A | 2,2| 2,2| but I interpret that as A | 0.03125 | 2 | 2 | A | 0.03125 | 2 | 2 | whereas you apparently have doubled it to A | 0.03125 | 2 | 2 | A | 0.03125 | 2 | 2 | A | 0.03125 | 2 | 2 | A | 0.03125 | 2 | 2 |- 40 replies
-
- inbreeding
- pedigree
-
(and 2 more)
Tagged with:
-
Calculating Inbreeding on a 10 Generation Pedigree
Barand replied to Triple_Deuce's topic in PHP Coding Help
I get these results, which look right to me DOG: J | A | 0.0312 | 2 | 2 | | A | 0.0312 | 2 | 2 | | B | 0.0312 | 2 | 2 | | B | 0.0312 | 2 | 2 | COI : 0.1250 DOG: U | Q | 0.1250 | 1 | 1 | | O | 0.0312 | 2 | 2 | | O | 0.0312 | 2 | 2 | | P | 0.0312 | 2 | 2 | | P | 0.0312 | 2 | 2 | | R | 0.1250 | 1 | 1 | COI : 0.3750 DOG: Z COI : 0.0000- 40 replies
-
- inbreeding
- pedigree
-
(and 2 more)
Tagged with:
-
Calculating Inbreeding on a 10 Generation Pedigree
Barand replied to Triple_Deuce's topic in PHP Coding Help
In the code I posted, A - J would be in the sires array and O - U would be in the dams array, which would produce no common ancestors- 40 replies
-
- inbreeding
- pedigree
-
(and 2 more)
Tagged with:
-
Calculating Inbreeding on a 10 Generation Pedigree
Barand replied to Triple_Deuce's topic in PHP Coding Help
I used your site page to generate the pedigree for Dog#4 then entered that in their calculator chart. There was no dog #20 in their results (only 14 and 17) and then I looked at what results would give their value for #17.- 40 replies
-
- inbreeding
- pedigree
-
(and 2 more)
Tagged with:
-
"It doesn't work" tells us sweet FA about the problem. We cannot see your screen. What is happening? What isn't happening?
-
Calculating Inbreeding on a 10 Generation Pedigree
Barand replied to Triple_Deuce's topic in PHP Coding Help
Looks like that site used REF SITE METHOD 3 | 14 | 0.0625 | 1 | 2 | | 17 | 0.0312 | 2 | 2 | | 17 | 0.0625 | 2 | 1 | Dog 4 COI : 0.1562 Dog #20 ignored, and only two of the three occurrences of #17 were used. So why?- 40 replies
-
- inbreeding
- pedigree
-
(and 2 more)
Tagged with:
-
I would think the "\r\n" is the cure. Let us know.
-
Calculating Inbreeding on a 10 Generation Pedigree
Barand replied to Triple_Deuce's topic in PHP Coding Help
So, which is correct for Dog #4? METHOD 1 | 14 | 0.0625 | 1 | 2 | | 20 | 0.0156 | 2 | 3 | | 17 | 0.0156 | 2 | 3 | | 17 | 0.0312 | 2 | 2 | | 17 | 0.0625 | 2 | 1 | Dog 4 COI : 0.1875 METHOD 2 | 14 | 0.0625 | 1 | 2 | | 20 | 0.0156 | 2 | 3 | | 17 | 0.0156 | 2 | 3 | | 17 | 0.1250 | 0 | 2 | | 17 | 0.2500 | 0 | 1 | Dog 4 COI : 0.4688- 40 replies
-
- inbreeding
- pedigree
-
(and 2 more)
Tagged with:
-
Calculating Inbreeding on a 10 Generation Pedigree
Barand replied to Triple_Deuce's topic in PHP Coding Help
For dog 4, you had this for common ancestor 17 sire dam | 17 | Dog R | 2| 3,2,1| so you processed it as 0.015625 | 2 | 3 | 0.03125 | 2 | 2 | 0.0625 | 2 | 1 | Shouldn't it have been 0.015625 | 2 | 3 | 0.125 | 0 | 2 | 0.25 | 0 | 1 |- 40 replies
-
- inbreeding
- pedigree
-
(and 2 more)
Tagged with:
-
PDO delete mysql records from multiple tables where the id is the same
Barand replied to cobusbo's topic in PHP Coding Help
I see, different in each table. Need to change the syntax DELETE table1, table2, table3 FROM table1 LEFT JOIN table2 ON Rooms.id = Room_users.Roomid LEFT JOIN table3 ON Rooms.id = Room_chats.roomid WHERE table1.time < UNIX_TIMESTAMP() -
PDO delete mysql records from multiple tables where the id is the same
Barand replied to cobusbo's topic in PHP Coding Help
Is it using caps in all tables? If not, why the inconsistency. (Why use caps at all?) -
PDO delete mysql records from multiple tables where the id is the same
Barand replied to cobusbo's topic in PHP Coding Help
your column names may be case-sensitive -
PDO delete mysql records from multiple tables where the id is the same
Barand replied to cobusbo's topic in PHP Coding Help
then DELETE table1, table2, table3 FROM table1 LEFT JOIN table2 USING (roomid) LEFT JOIN table3 USING (roomid) WHERE table1.time < UNIX_TIMESTAMP()