I'm trying to make a notifications system from scratch after looking around at ready mades and possible integratable versions that fell short.
I'm focusing on one aspect first: notifications for comments.
My database table comments looks like this: !(http://oi43.tinypic.com/2zgtaoz.jpg)
When a user submits a comment the recepient's ID is added to the field to_id.
unviewed is the default status of every comment.
Then I made this code to check for all unviewed comments:
SELECT COUNT(*) FROM comments WHERE to_id='$myid' AND status='unviewed'
I made some dummy comments and the count works 100%.
I also made a dropdown box to view the notifications in but the code is really long and not crucial to what I need to do next so I'll omit it unless needed to clarify later.
Now I'm trying to find out how I can change the value in the status field to 'viewed' when a user clicks through to it from their notifications menu.
Does anybody know how I can achieve this using php and cookies? Just looking for a point in the right direction, my mind is a bit frazzled after writing code all day.
Does anybody know how I can achieve this using php and cookies? Just looking for a point in the right direction, my mind is a bit frazzled after writing code all day.
You shouldn't reinvent the wheel. Just use one of the analytics frameworks available, such as google analytics. Note this is usually a paid service.
The approach you propose is slow, not scalable and rather limited.
The way it works, you just add a reference to JavaScript code. This code is located on a content delivery network, which means it is fast to get to the user. Usually, it is much faster than your production server. The code tracks a lot of user activities that can be valuable to a business. In most cases, such analytics is backed by nosql database.
Disclamer: I am not connected to any analytics framework in any way.
When you click a notification, I assume it is something basic like a checkbox or similar.
Just do a AJAX request or a simple POST request to a page called, maybe notif_read.php
There, get the value of the checkbox clicked and do a database query as follows:
"UPDATE Comments SET Status='viewed' WHERE to_id = '$myid' AND status='unviewed'"
Also, try using a simple boolean datatype for the status, since it makes things easier to update and check. Just a thought, will work as it is now.
Related
I want to fetch all current and future courses form this website http://www.scfhs.info/cme_pd/search/index.php for example this queries http://www.scfhs.info/cme_pd/search/do_search.php to my iOS app , unfortunately they don't have an API.
How to get the data?
Check this out https://www.parsehub.com/ this will help you for sure
I've done this for a project, search for html scraping. There are a tools to do it that vary depending on your platform. Here is a start. Unfortunately if the page changes you have problems. In my case the pages would update in an inconsistent manner. It looks like most of the data you want is in option tags; that should make it easy to parse.
I would have made this a comment, but I'm not worthy yet.
Currently I'm making a chat application where only admin and users chat, no user-to-user chat . The design is: every chat is stored in database and each 2 seconds user and admin make an AJAX request (to a php file) to see if there is a new chat dialogue, and if there is, pull the data into the textbox. It all seems normal and working good.
Problem is as more user is talking to admin at the same time the AJAX request is becoming a lot, and by testing, the web performance already decreased with only 5 users chatting at the same time. And the input is slow too, every time user press enter they got to enter the data into database first before the admin can read it (and vice versa).
I have been told that using JSON is a recommended way, but I have no idea how to do it, can someone please at least tell me how's the design or flow is going to be if use JSON? Or is there a better way to make it? (by the way, using node.js is currently impossible for my current hosting, so don't put it in suggestion lists, sucks I know).
You should change the AJAX responder phps output to JSON. (you can use the json_encode php function for example.) And you should parse(eval) this in javascript.
I am a bit sceptic. It think It could reduce the network usage by more than 50%.
Maybe you can try a message queue, like 0mq or rabbitmq.
There are a lot of chat examples around.
I want to create a fairly simple webpage where a user logs in and can manipulate a calendar that I create (perhaps with a HTML table?). I've already created a simple login service with a few HTML and php pages and have basic user info stored in a MAMP server.
Correct me if I'm wrong, but from here I would need to layout a calendar in HTML and maybe have link table cells to an edit page where the user can create a new event. The real question here is what is the best way to go about storing information like this on my server? Using PHP and MAMP like I did with the form data at registration?
I'm still fairly new to databases and working with servers and such, so just looking for a little guidance so I don't waste time learning a completely incorrect approach to this.
MySQL and PHP are definitely the way to go in my opinion. I would look into Javascript and AJAX if I were you also. Using AJAX, you could have a user enter information into the calendar directly and store it in the database without having to leave the page. jQuery is a very nice and simple library for working with Javascript and AJAX and I would very highly recommend it. It greatly simplifies working with Javascript.
As for the calendar itself, using a table seems like the best approach to me.
For storing information in MySQL, I'm seeing a table somewhat like this:
UID|EntryID|Date|Time|Event|etc.
You could store this table separately from your users table and join them easily when making requests. For instance, when a user logs in, you can pull the users UID from the users table you have set up, then pull all entries out of the calendar table with matching UID's and manipulate and display this information with PHP and Javascript.
There may be (and most likely are) better ways to set up your database, but this is kind of just a general concept of how you could get it to work. There are certainly people here with much more experience in MySQL and database design than myself.
Overall it sounds like you have a good idea working for you and have a pretty good idea of what it will take to make it happen. I wish you the best of luck on your project!
I am contemplating building a website for my wedding next year. It would contain information about the event, photos and blogs from my fiancee and I.... you get the picture.
One feature i'd like if possible would be a way of letting my guests RSVP online. I envision that their physical invite has a passcode, which they enter into a text field on the site and tick whether they can or can't attend.
The passcode they entered will be compared against a secure guest-list containing names and passcodes. If it doesn't match, they receive an error message, if there is match however, the information is then relayed to me via email. I will probably build the site using Wordpress, so I would be dealing with PHP.
Can anyone recommend how i might approach this project, as being a front-end dev I have absolutely no idea and my ambition exceeds my limited PHP knowledge.
Would love to hear your ideas or suggestions.
Speaking in generalities, for this sort of thing I find it useful to start by outlining the various components of the system.
While the info pages can be static, you'll need a database to which you can persist your invite data, so I'd start by thinking about the data entities. Devise a list of entities that will exist in the system that might need data tables. E.g. invite, blog post etc.
Then think about the operations that need to be performed on those entities. Are they read-only? Do you need to create new ones, or modify existing ones? You'll need to write code to perform those operations at some point.
Then think about the various ways information from those entities might need to be presented to the user. This gives you an idea of what templates you'll need to build.
If you're thinking of using Wordpress, you can cover off the blog functionality and static page stuff using that application alone. You'd then need to think about how the RSVP functionality might be implemented separately to Wordpress, or within it as a plugin. If you're really lucky, there might be a plugin out there already that will do what you need - or something similar that you can augment yourself.
If you're new to the backend side of things I'd recommend building a blog + static page site using Wordpress, getting it "done" and then looking at the RSVP stuff as a second phase. At least then if it proves unfeasible you still have a useful working site.
Hope that helps!
I'd build this as a simple plugin for WordPress and create an additional DB table that would hold the name against the passcode (this could be auto-generated based on the ID or otherwise).
You could then make a simple admin page when you can add new guests and check the response of guests.
First: congratulations with your marriage. From what I understand you have very little knowledge of PHP so start with reading a few books or articles about basic PHP/MySql. Then, put your ideas in a drawing or flowchart and just go for it. Make lots of mistakes, learn from them, ask for help on SO or a PHP colleague or friend. And above all, have fun doing it.
If I were in your shoes I would install the contact 7 plugin. In the contact form, add passcode as a required text input. Have the results emailed to you and to them. They could make up the passcode which is the downside.
This doesn't have all the options you are wanting but you can either spend several hours writing your own php code and then trouble shoot it, or just install the plugin and be done in 30 minutes.
I am quite new to web development and have a task to develop a web application that will basically show the user 5-15 pull down lists on one page, where each selection will limit the choices in all other lists. The user should be able to start with any one of the lists (so no set selection order) and when the user have selected something in each list or all parameters are otherwise locked by previous choices the user has to press the GO button and some calculations will take place, presenting a database selection. Basically it is a muliple parameter product selector application.
The relations between the lists are not simple, and could need calculated fields etc, and one list could affect the content of several others. The database behind will be MYSQL, probably a single large table, with perhaps 30 fields and 500-5000 rows. I will be using PHP, JavaScript and perhaps AJAX unless you have a strong reason not to.
I have done some research and found three ways to do this:
Send all data to the browser and handle the filtering etc client side with Javascript.
Send parameters back to the server after each selection and reload the whole form after each selection. Probably a littebit Javascript and most code in PHP.
Use AJAX to change all list content dynamically without reloading the whole form.
Since I am so new to this I have a hard time telling which way to go, what pitfalls there are etc...
I have some conserns:
A. Slow initial loading. Worst for #1?
B. Slow dynamic response. Worst for #2?
C. Complicated programming. Worst for #3?
D. Compatibility issues for different browsers and plattforms. Have no idea of which method is most likely to create problems...better if I use some Framework?
E. Could I even try to make something at least part-working for people with javascript turned off? (like selecting each list on a new page and having to press GO button each time)? (I think I can tell my users they must have Javascript on so no big issue....) Perhaps #2 is best here?
F. I think the specification of "free selection order" means I have to download most of the database initially, so perhaps I should try to avoid that option.....if I keep it I might as well use method #1, or???
G. It would be best to do as much as possible of the selction/filtering in SQL to allow future extensions by building custom SQL code, so that gives a big minus to #1...
H. Other pitfalls etc???
I have found tutorials etc for all three methods, but if you can point to good resources like this I would appreciate it, especially so I dont base my code on examples that are not smart/good/compatible....
1:
http://www.bobbyvandersluis.com/articles/unobtrusivedynamicselect.php
http://javascript.about.com/library/bl3drop.htm
http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_20523133.html
2:
http://www.plus2net.com/php_tutorial/php_drop_down_list.php
http://www.plus2net.com/php_tutorial/php_drop_down_list3.php
3:
http://techinitiatives.blogspot.com/2007/01/dynamic-dropdown-list-using-ajax_29.html
http://www.webmonkey.com/tutorial/Build_an_Ajax_Dropdown_Menu
http://www.noboxmedia.com/massive-ajax-countryarea-drop-down-list/
http://freeajaxscripts.net/tutorials/Tutorials/ajax/view/Create_AJAX_Dynamic_Drop_Down_List_using_PHP_-_xajax.html
3+jQuery:
http://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax/
Now to the question: Could anyone experienced in all these methods help me out a bit, with the evaluation of methods 1-3 above so I can choose one and get started on the right track? Also, will I be helped by learning/unsing a framework like jQuery+jSON for this?
Rgds
PM
I'd definitely recommend using AJAX with jQuery its tested in all of the major browsers and has simple calls that will make it a lot faster to code and you wouldn't have the browsers compatibility problems of normal JavaScript.
Send all data to the browser and handle the filtering etc client side
with Javascript.
You mentioned that your table has 30 columns and 500-5000 rows potentially? In that case it would not be a good idea to send that much data when the page loads as: 1. It will make the page slower to load and 2. It is likely to make the browser hang (think IE).
Send parameters back to the server after each selection and reload the
whole form after each selection.
Probably a littebit Javascript and
most code in PHP.
I'm not sure how this differs much from the third approach, but probably you mean that you need to reload the page? In that case it isn't likely to be a good user experience if they need wait for the page to refresh every time a drop down selection is changed..
Use AJAX to change all list content
dynamically without reloading the
whole form.
By far the best approach from a user's perspective as it makes filling out the form simple. Perhaps slightly harder to implement from your end, but as you would likely need to perform the same calculations with each of the solutions - might as well move them to a separate page that can be called by AJAX to retrieve your data. As others have mentioned, using jQuery for all your JavaScript/AJAX stuff is going to make things a hell of a lot easier ;)
My personal recommendation is to go with AJAX.
Raw SQL or not is really a question of what backend you are using.
You need to be able to set the relationships between the different selections. The population of the lists must be able to communicate with your backend.
The real issue here is how you implement the relationships between selections. I have no good answer here, it depends heavily on the backend and your administrative needs. It can be hard coded in PHP or configured via XML or via administrative interfaces and persisted to your database solution.
It's no easy task to make it fully customizable.
The reason why i suggest using AJAX is basically because you need to filter upon any change in any selection. That would mean either download a lot of unused information or a lot of page refresh. Going with ajax gives the user a smooth experience all the way.
jquery is a simpple way to use... You can also try a particular class called xajax..! These will make stuff easier.