Jump to content

ajoo

Members
  • Content Count

    777
  • Joined

  • Last visited

Community Reputation

0 Neutral

About ajoo

  • Rank
    Prolific Member

Recent Profile Visitors

6,954 profile views
  1. hI all ! I just updated this thread with a question yesterday and I am not sure if this pops "in the new threads to be answered" section where ever that maybe. Earlier it was on the home page as an aside window. So i am trying this once again and noting the views thus far to see if its being read. I Kindly request the Gurus / experts to inspect the code for their views / suggestions to hammer out a solution if one is possible in this manner. Thanks loads !
  2. Hi all ! Just like to continue this old thread since the problem is related. I hope that is ok. I have my sounds going great. However, I am trying to get my sound files a bit safe by placing them above the document root and serving them off the server. The code below passes the filename of the audio to invoke the server to serve the same. <html> <head> <title>Test Sound</title> </head> <body> <a onclick="playSound()"> Play</a> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script> function playSound() { alert("Play Sound"); var testsound = "beep07.wav"; var data; alert(testsound); $.post("playsound.php", {sf: testsound}, function(data,status){ alert("CP1"); alert("Data : "+data+"\nStatus : "+status); var audio = new Audio(data); audio.type = 'audio/wav'; audio.play(); alert("Thanks"); }); } </script> </body> </html> Everything works fine except that it ends up with a I believe that this is happening because it needs an event to fire the sound which is exactly how it was triggered on a button press. But because the server was involved and the file was not lifted directly (by a path and filename) I think, that this error occurred. So how can this be resolved ? Another thing is that this is just a trial code to get a sound going. However what i really would need is a a stream of sound files that I need to invoke on a button press. For e.g. i can have an array like ['a.mp3','b.mp3','c.mp3','d.mp3','e.mp3'] to sound a,b,c,d,e one after the other once the start button is clicked. Thanks all for any help on this.
  3. Hi Guru Barand ! Sir this finally achieves it. create temporary table mina1111_a Select * from ( select a.RecNo , a.User , a.V_Score , @count := @count-1 as reccount from ajoo as a JOIN (select @count:=6) as init where User = 'mina1111' ORDER BY RecNo DESC LIMIT 5)sub Order by RecNo ASC; create temporary table mina1111_b Select * from ( select a.RecNo , a.User , a.V_Score , @count := @count-1 as reccount from ajoo as a JOIN (select @count:=6) as init where User = 'mina1111' ORDER BY RecNo DESC LIMIT 5)sub Order by RecNo ASC; SELECT a.RecNo , a.V_Score , ( SELECT AVG(b.V_Score) as avscor FROM mina1111_b b WHERE reccount BETWEEN a.reccount-4 and a.reccount ) as av5 FROM mina1111_a a JOIN ajoo j using (RecNo); WHERE a.reccount > 4; finally gives +-------+------------+--------+ | RecNo | Wrt_V_Sums | av5 | +-------+------------+--------+ | 10 | 5 | 5.0000 | | 11 | 0 | 2.5000 | | 13 | 1 | 2.0000 | | 14 | 1 | 1.7500 | | 15 | 1 | 1.6000 | +-------+------------+--------+ Thank you !!🙏 P.S. I thought if there was a way of generalizing the "RecNo > N " so as to target the last 5-rows or last x-rows ( in general ) , the querys to create the temp tables would have been so much easier.
  4. Hi Guru Barand, I am able to get the results I want by modifying your query slightly as below: ( Last line "AND RecNo > 9 " is only added). create temporary table mina1111_a select a.recno , a.v_score , @count := @count+1 as reccount from ajoo a JOIN (select @count:=0) as init where user = 'mina1111 AND RecNo > 9'; same for table mini1111_b. and i get the result i want. The only problem is that i can use > 9 here because i get 5 rows with that. How can I generalize this to get the last 5 rows each time no matter how many rows there may be in the table ajoo ? Thanks loads !
  5. yes Guru Barand ! I have been trying without success. I'll try some more. Thanks !
  6. Sir I understand that but I am unable to get those averages from the table that I created. As mentioned in #3, even though I get the 5 rows, I keep getting the Can't reopen error when I try and use it for getting the averages. For your convenience here it is again. create temporary table mina1111_a Select * from ( select a.RecNo , a.User , a.V_Score from ajoo as a where User = 'mina1111' ORDER BY RecNo DESC LIMIT 5)sub Order by RecNo ASC; which gives the table +-------+--------------+------------+ | RecNo | User | V_Score | +-------+--------------+------------+ | 10 | mina1111 | 5 | | 11 | mina1111 | 0 | | 13 | mina1111 | 1 | | 14 | mina1111 | 1 | | 15 | mina1111 | 1 | +-------+--------------+------------+ However when i use this table to calculate the averages, it gives an error and I think that's because I cannot use the temp tables like this. It says cannot reopen the table. Kindly help resolve. Thanks
  7. Hi Guru Barand, Sir then how do I go about getting the average values of "your results" ? Using just the 5 rows. Thank you !
  8. Hi Guru Barand ! Sir, You are correct but so am I because I said I want the derived table to be considered as the complete and only table itself thereby ignoring all the rows / values before the last 5 rows. In which case this below is the only table. All other values are discarded and averages are calculated by taking RecNo 9 as the first record and so on. In that case "your result" values would fit. +-------+----------+---------+----------+-------------------+-----------------+ | recno | user | v_score | reccount | last5 | av5 = last5/5 | my results your results +-------+----------+---------+----------+-------------------+-----------------+ | 9 | mina1111 | 4 | 5 | 2 + 4 + 3 + 2 + 4 | 15/5 = 3.0 | 3.0000 4.0000 | 10 | mina1111 | 5 | 6 | 4 + 3 + 2 + 4 + 5 | 18/5 = 3.6 | 3.6000 4.5000 | 11 | mina1111 | 0 | 7 | 3 + 2 + 4 + 5 + 0 | 14/5 = 2.8 | 2.8000 3.0000 | 12 | mina1111 | 1 | 8 | 2 + 4 + 5 + 0 + 1 | 12/5 = 2.4 | 2.4000 2.5000 | 13 | mina1111 | 1 | 9 | 4 + 5 + 0 + 1 + 1 | 11/5 = 2.2 | 2.2000 2.2000 +-------+----------+---------+----------+-------------------+-----------------+ Thank you sir !
  9. Hello Guru Barand ! While the result table is great it does not produce the values I want. I wanted that this table be considered as the complete and only table for which the rolling averages needed to be found. So for your result table the values that I was looking for in the av5 columns should be as below. (I have changed the av5 values that I am looking for) +-------+----------+---------+----------+--------+ | recno | user | v_score | reccount | av5 | +-------+----------+---------+----------+--------+ | 9 | mina1111 | 4 | 5 | 4.0000 | | 10 | mina1111 | 5 | 6 | 4.5000 | | 11 | mina1111 | 0 | 7 | 3.0000 | | 12 | mina1111 | 1 | 8 | 2.5000 | | 13 | mina1111 | 1 | 9 | 2.2000 | +-------+----------+---------+----------+--------+ The following query gives me the table I want but since it is a temp table, I am unable to open it again for creating the averages. create temporary table mina1111_a Select * from ( select a.RecNo , a.User , a.V_Score from ajoo as a where User = 'mina1111' ORDER BY RecNo DESC LIMIT 5)sub Order by RecNo ASC; It gives on my table the following values:- +-------+--------------+------------+ | RecNo | User | V_Score | +-------+--------------+------------+ | 10 | mina1111 | 5 | | 11 | mina1111 | 0 | | 13 | mina1111 | 1 | | 14 | mina1111 | 1 | | 15 | mina1111 | 1 | +-------+--------------+------------+ But I am unable to use the table to get the averages. It gives the can'r reopen table error. Thanks !
  10. Hi all ! i have the following table in my DB The averages are the rolling averages for 5 records at a time. If I try and get the same for only the user mina1111 using the query SELECT user.RecNo as RecNo, user.User as User, user.V_Score as V_Score, avg(user_past.V_Score) as Average FROM user JOIN user as user_past on user_past.RecNo between user.RecNo-4 AND user.RecNo WHERE user.User = 'mina1111' GROUP by RecNo, V_Score; I get the following :- The averages go all haywire. It uses the values in the original table to calculate these, hence the funny values. So how can I get the correct values like this was the table with original values. Also how can I get the values of say only the last 5 values, considering those were the only values / rows in the table. i.e. the rolling avgs of Thanks all !
  11. Hi all ! is there a difference between an array of arrays as rs1 = [ [1,5,6,7,8,9], [ 2,7,6,5,4,3], [3,12,13,14,15,16] ]; and another formed as below as var rs1 = "1,5,6,7,8,9 2,7,6,5,4,3 3,12,13,14,15,16"; rs1 = rs1.split(" "); //alert(rs1[0]); //alert(rs1[1]); //alert(rs1[2]); //alert(rs1.length); if so, can someone explain what the difference is. Thank you !
  12. Hi ! I have a working fiddle here : https://jsfiddle.net/zswrd5oh/ While it works great for the 1st pass, (a table of 2 - 1st 9 even values ) the 2nd pass, though it works through it and gives the wanted result ( table of 3), is still flawed, in that it generated extra return key codes thereby upsetting the code logic and generating error conditions ( red boxes). I know its a bit difficult to explain but can easily be figured if the fiddle is run twice using the ready button. I have set alerts which are different in the 2 cases. Also if run in the browser, the console.log shows how the keys are registered by the program differently in the 2 passes. Ideally it would be best if the 2nd pass runs just like the first pass did. Would be grateful for any help to resolve this. Thanks !
  13. OK, I managed to rectify it though i still do not understand why it's fixed by using keyup event handler in place of keypress. keydown also gives the same problem as keypress. It would be great if you can explain it. Thanks !
  14. Hi, @cyberRoot : Thanks for the response. Yes I am / was using the keypress event. @Guru Barand: My code at the juncture I put this question was as below: // each input element has a unique id = 'result_1', 'result_2' and so on. m=1; myResult = $('#result_'+m); ansUp = ['5','11','18','26'...]; $('input[type=text]').prop("disabled", true); // console.log(myResult); myResult.prop('disabled',false); myResult.val(0); myResult.select(); myResult.addClass('yellow'); while(m < 9){ myResult.keypress(function(e) { if (e.keyCode === 13) { myval = myResult.val(); if(myval == ansUp[m-1]) { myResult.addClass('green'); myResult.prop('disabled',true); m++; myResult = $('#result_'+m); myResult.prop('disabled',false); myResult.addClass('yellow'); myResult.val(0); myResult.select(); return true; } else { myResult.addClass('red'); myResult.select(); return false; } } }) } I thought the while loop would work but then obviously that was incorrect. So i removed the while loop and thought I should add myResult.keypress(function(e) {.... } // just before return true. but that made it cyclic and that too was not great. I was missing the idea of a common class changing event which you were kind enough to show me in your code. Now I have it working for the most, the only issue is that the enter key needs to be pressed twice before the event is registered which is very odd. Here is the final code which needs me to press the enter key twice. I suspect it has something to do with the '0' value that I put into the input box and then put the focus on that for the ease of the user. Here's how it stands now: $(".ui").change(function(){ myResult.keypress(function(e) { if (e.keyCode === 13) { myval = myResult.val(); if(myval == ansUp[m-1]) { if(myResult.hasClass('red')){ myResult.removeClass('red'); } myResult.addClass('green'); myResult.prop('disabled',true); m++; myResult = $('#result_'+m); myResult.prop('disabled',false); myResult.addClass('yellow'); myResult.val(0); myResult.select(); } else { myResult.addClass('red'); myResult.select(); } } }) }) Please help ! Thanks loads Guru Barand and cyberRoot !
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.