Jump to content

Archived

This topic is now archived and is closed to further replies.

dottore11

Card Quest Script

Recommended Posts

Ok, so I am starting this new game on my website, and it will be called Card Quest or something similar to that. Basically, they need to complete different objectives to earn cards to add to their online "collections". What I need is a script that will allow me to:

1. Manage and add new users to the system, and later add cards they have earned
2. Allows a way to display the users and which cards they have collected and which ones they haven't.

Here's the idea;

I'm a visitor and I want to view which cards "Susie" has collected. So I click her name in the userlist and up pops a window that has highlighted which cards they have collected out of the total number of cards. Clicking the name of the card or rolling over it shows the picture of the card.

-----------------------------------------------------

Right now I'm in the phase of the project where I am developing the admin panel that will let me add and edit the users/cards. I have completed the part that adds users and their respective cards to the database, but now I'm on the editing part.

I've figured out a primitive update script that will work for me: here's what I have;
Update.php
[code]
<?
include("dbinfo.inc.php");
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
?>
<form action="updated.php" method="post">
Username: <input type="text" name="ud_usernamec"><br>
Air: <input type="checkbox" name="ud_air"><br>
Dark: <input type="checkbox" name="ud_dark"><br>
<input type="Submit" value="Update">
</form>
[/code]

Updated.php
[code]
<?
include("dbinfo.inc.php");
mysql_connect(localhost,$username,$password);

$query="UPDATE cardbase SET air='$ud_air', dark='$ud_dark' WHERE usernamec='$ud_usernamec'";
@mysql_select_db($database) or die( "Unable to select database");
mysql_query($query);
echo "Record Updated";
mysql_close();
?>
[/code]
My problem is that for example, if a user already has a card, I have to click the checkbox for that card anyways, or it will get submitted and turn the value for that row on that user to off. Does that make sense? I know now that it shouldn't be hard since there are only 2 cards, but once I get this going there are like 42 total.

So, you can see me having to click the checkboxes over and over could get old. Is there anyways I can modify the update.php script or something else where if the checkbox is submitted without a value that it isn't put in as a 0?

Share this post


Link to post
Share on other sites
first of all i would make it so they must enter the username and search for the user first.

then on the next page retrieve the variables for the database.
so get like the variable Air and the variable Dark from the database. Then you can just use some simple if commands like so:

[code]
Dark:
<?php
if($dark == "1"){
?>
<input type="checkbox" name="ud_dark" value="$dark" selected>
<?php }else{ ?>
<input type="checkbox" name="ud_dark" value="$dark">
<?php } ?>
[/code]

that should work pretty good i think. lol. [img src=\"style_emoticons/[#EMO_DIR#]/smile.gif\" style=\"vertical-align:middle\" emoid=\":smile:\" border=\"0\" alt=\"smile.gif\" /]

its just that you would have to do that for every checkbox. and there is probably an easier way but that way i showed works. good luck with your game.

ProjectFear

Share this post


Link to post
Share on other sites
[!--quoteo(post=373883:date=May 14 2006, 10:28 PM:name=ProjectFear)--][div class=\'quotetop\']QUOTE(ProjectFear @ May 14 2006, 10:28 PM) [snapback]373883[/snapback][/div][div class=\'quotemain\'][!--quotec--]
first of all i would make it so they must enter the username and search for the user first.
[/quote]

Ok, so how would I do that? Sorry to be so pesky -_- PHP is definitely not my specialty X_X

Share this post


Link to post
Share on other sites
[!--quoteo--][div class=\'quotetop\']QUOTE[/div][div class=\'quotemain\'][!--quotec--]UPDATE cardbase SET air='$ud_air', dark='$ud_dark' WHERE usernamec='$ud_usernamec'[/quote]

It looks as though this table will eventually have 42 columns for the cards. A better design is

[code]user               cardfile            card
===========        =============       =============
userID    <--+      recID        +---> cardID
username     |      cardID   ----+     cardname
etc          +----  userID
                    

user data
---------------
1  |   Peter
2  |   Paul
3  |   Mary

card data
---------------
1  |   air
2  |   dark
3  |   water
4  |   light

So if Peter has (air, dark) Paul has (air) Mary has (dark, water)

cardfile data
--------------------------
recID | cardID  | userID
   1   |   1     |   1
   2   |   1     |   2
   3   |   2     |   3
   4   |   3     |   3
   5   |   2     |   1[/code]

This will enable you to process the query results and set the checkboxes in a simple loop instead of individually encoding each of the 42 possible cards for each user

Share this post


Link to post
Share on other sites
Ok, I've started to work on the script that the post before the previous one described. I don't want to totally redesign my script right now, plus I'm not quite understanding what I'd have to do to make that way work. Here's what I have:

Getuser.php - Asks user for the user they wish to edit and submits it to the next page
[code]
<form action="finduser.php" method="post">
Username: <input type="text" name="find_usernamec"><br>
<input type="submit"><br>
[/code]

Finduser.php - Uses data from getuser.php and displays customized data in checkboxes based on whether their values in the table are on or not.

[code]
<?
include("dbinfo.inc.php");
mysql_connect(localhost,$username,$password);
mysql_select_db($database) or die( "Unable to select database");
$find_usernamec=$_POST['find_usernamec'];
$query="SELECT * FROM cardbase WHERE usernamec='$find_usernamec'";
$result="mysql_query($query)";
?>
<?php
if($dark == "on"){
?>
<input type="checkbox" name="ud_dark" checked="checked">
<?php }else{ ?>
<input type="checkbox" name="ud_dark">
<?php } ?>
[/code]

Please note I've only done the script for Dark so far. The script is displaying an unchecked checkbox in places where it should be displaying a checked one. I have echoed some variables and the username is getting passed to the finduser.php page. Help please?

Share this post


Link to post
Share on other sites

×

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.