How do you retrieve data to php page from a database, for somebody in specific after log in

Started by
4 comments, last by aregee 9 years, 8 months ago

So I have a form, that after filled users can save the information on a database so that they can edit the form later, how can I make it so that, if I have some kind of log in system, get their corresponding set of information stored in the database for when they want to edit, instead of getting somebody else's info or the info from the last person who filled it out.

Advertisement

How do you currently connect to your database? How are you saving it to the database? What kind of DB?

Retrieval will be pretty much the same. You perform a query, SELECTing whatever columns you are interested in where some field equals the current user's id. Then you just set the values of the form fields equal to the values retrieved from the DB.

It is not clear exactly what the question is; is it:

  1. How do I connect to a database in PHP? - Though your question makes it seem that you already know how to connect because you are already saving the data.
  2. How do I retrieve data from a database in PHP?
  3. How to log a user into the system? - though it looks like you are already doing this.
  4. How to edit data in a database in PHP?
  5. How to set form field values in PHP?

Not sure why you would be getting someone else's info for the form.

This is all pretty basic and is quite easily googled for a full working solution.

SQL table (example data for table FormData):

| UserID | CreateTime | Field1 | Field2 |
| 1 | 2014-07-31T07:45:12Z | Dude | Wassup |
| w | 2014-07-35T14:12:34Z | Guess what? | Chicken butt. |
Insertion into table (PHP/PDO, if I remember how it looks):

$db->execute("INSERT INTO FormData (UserID, CreateTime, Field1, Field2) VALUES(?, NOW(), ?, ?)", array($user->id, $field1, $field2));
Retrieval from table:

$data = $db->execute("SELECT Field1, Field2 FROM FormData WHERE UserID=?", array($user->id));
The $user variable should be the currently logged-in user. If a user is not logged in, do not allow them to submit data or retrieve data.

You can use an email address instead of an ID, something stored in a long-term cookie, or so on if you the data isn't privacy-sensitive and want to avoid an explicit login and signup procedure. You could also use Google/Facebook/Twitter authentication to avoid the signup phase.

Avoiding custom signup/login procedures is a very good thing; due both to trust issues and pure laziness, a majority of people will never sign up for a site they might otherwise be interested in. Using Google/Facebook/Twitter is a better bet since the number of people who have none of those is much smaller than the number of people who'll refuse to create a new account for whatever reason.

Sean Middleditch – Game Systems Engineer – Join my team!

There are a ton of tutorial videos on youtube for PHP SQL.

Developer with a bit of Kickstarter and business experience.

YouTube Channel: Hostile Viking Studio
Twitter: @Precursors_Dawn

You can distinct a user by session, wheather he is logged or if he is not registered that far yet. Save also a session id to database so you can corectly find out what data to assign to the request of an anonymous user. Of course -register him as soon as possible, counting on a permanent session cookie is not totaly safe.

I have a slight feeling this is an important read too, and it is not entirely off topic:

https://www.acunetix.com/websitesecurity/php-security-1/

This topic is closed to new replies.

Advertisement