Thread: Breeding
View Single Post
  #27  
Old 10-29-2009, 02:00 PM
Arianna's Avatar
Arianna Arianna is offline
Dev Staff
 
Join Date: Sep 2009
Posts: 334
Gender: Female
Credits: 31,805
Arianna will become famous soon enough
Default RE: Breeding

I actually managed to get further - I was using '=' instead of '==', silly me!
Now it has the problem where there are two drop-down lists, and they are always the same length. If there are 10 females and 2 males, there are 10 'boxes' for males, though only two are occupied - the others only have '()' in them. xP
How do I get rid of this? When I'm done with that, the whole thing will be done! :D
The whole thing is this:
PHP Code:
<?php

// **********************************************************************
// Rusnak PHP Adoptables Script
// Copyright 2009 Brandon Rusnak
// For help and support: http://www.rusnakweb.com/forum/
//
// Redistribution prohibited without written permission
// **********************************************************************

// Wake the sleeping giant

// **********************************************************************
// Basic Configuration Info
// **********************************************************************

include("inc/functions.php");
include(
"inc/config.php");

$themeurl grabanysetting("themeurl");

// **********************************************************************
// Define our top links by calling getlinks()
// **********************************************************************

$links getlinks();

// **********************************************************************
// Define our ads by calling getads()
// **********************************************************************

$ads getads("any");

// **********************************************************************
// Grab any settings that we will need for the current page from the DB
// **********************************************************************

$browsertitle grabanysetting("browsertitle");
$sitename grabanysetting("sitename");
$slogan grabanysetting("slogan");

// **********************************************************************
// Check and see if the user is logged in to the site
// **********************************************************************

$loginstatus logincheck();
$isloggedin $loginstatus[loginstatus];
$loggedinname $loginstatus[username];

// **********************************************************************
// End Prepwork - Output the page to the user
// **********************************************************************


$article_content $article_title."Breeding System"
$article_content $article_content."<p>Adoptable breeding systems sure aren't easy to make! I wish that this would work!</p>"

$femaleid $_POST['female'];
$maleid $_POST['male'];
$breed $_POST['breed'];

$femaleid secure($femaleid);
$maleid secure($maleid);
$breed secure($breed); 

// this two variables will get the female and male ID's from the selection form and the answer if the user has selected the adoptables or not.

// First let's create a page so the users can choose the two adoptables that they want to breed

if ($isloggedin == "yes"){ 
    
// we have to put that in the start of the breeding system, so users that are not logged in cannot see the selection forms

    
if ($breed != 'yes'){
        
// if the anser if the user has selected the adoptables or not, is different than YES, we have to show the options so the user can select them

        // This will start a selection form to select the females
        
$article_content $article_content."<p>Select the Two adoptables you want to Breed:</p><p><form method='post'><select name = 'female'>"

        
//This will select all the female adoptables the user has
        
$result mysql_query("SELECT * FROM ".$prefix."owned_adoptables WHERE owner = '$loggedinname' AND gender = 'Female'");
        
$num mysql_num_rows($result);

        
// Loop Out code < this will loop so you select all the rows and not just one
        
$i 0;
        while (
$i $num){
            
$aid = @mysql_result($result,$i,'aid');
            
$type = @mysql_result($result,$i,'type');
            
$name = @mysql_result($result,$i,'name');

            
$article_content $article_content."<option value='".$aid."'>".$name." (".$type.")</option>";
            
//this will display something like that: cute kitty (cat), the name (the type); for each adoptable (female) the user has

            
$i++;
        }

        
$article_content $article_content."</select><select name='male'>"//now let's do the same for the males

        
$result2 mysql_query("SELECT * FROM ".$prefix."owned_adoptables WHERE owner = '$loggedinname' AND gender = 'Male'");
        
$num2 mysql_num_rows($result2);

        
// Loop Out code
        
$i2 0;
        while (
$i2 $num){
            
$aid2 = @mysql_result($result2,$i2,'aid');
            
$type2 = @mysql_result($result2,$i2,'type');
            
$name2 = @mysql_result($result2,$i2,'name');

            
$article_content $article_content."<option value='".$aid2."'>".$name2." (".$type2.")</option>";

            
$i2++;
        }

        
$article_content $article_content."</select><input type='hidden' name='breed' value='yes'><input type='submit' value='Breed It'></form>";

        
// ok now the user has two selection forms to those a female and a male adoptable and when they click Breed It, it
       // will be posted to the variables $_POST['female'] and $_POST['male'], which will be two aid (adoptables ids), 
       //and with that ID we can select the information that we need from the database, and breed them

        // the hidden input will give us an answer to our question, the user has selected it? and it'll be 'yes'

    
// this is the end of if($breed != 'yes'), so now we have to put an ELSE statment, 
       //that means that the answer IS yes, and we can proceed with the breeding

    
else {
        
// ok, if the user gets here, it means that we have the male and female ID, and with it we can select the informations from the database.
        // here you can estabilish what you want.. the adoptables have to be which level to breed? the adoptables have to be the same type? 
        // I took out the incompatible part, it can be added back in if needed
        // first let's get the information we need

        
$result mysql_query("SELECT * FROM ".$prefix."owned_adoptables WHERE aid = '$femaleid'");
        
// the result should be just one row, so we don't need a loop

        
$female_type mysql_result($result,0,'type'); 
        
// 0 means that we are selecting the very first row, in this case, the only one
        
$female_name mysql_result($result,0,'name');
        
$female_level mysql_result($result,0,'currentlevel');


        
$result2 mysql_query("SELECT * FROM ".$prefix."owned_adoptables WHERE aid = '$maleid'");
        
// the result should be just one row, so we don't need a loop

        
$male_type = @mysql_result($result2,0,'type'); 
        
// 0 means that we are selecting the very first row, in this case, the only one
        
$male_name = @mysql_result($result2,0,'name');
        
$male_level = @mysql_result($result2,0,'currentlevel');

        
// now we have all we need. let's start the security system, to guarantee that the user has the requirements
        
        
if ($male_level OR $female_level 2){ //this is if they can't breed
            
$article_content $article_content."Sorry, one of your adoptables don't have the minimum level to breed. Keep feeding them so they can grow.";    
        } 

        else {
            
//We choose the type!
                    
$temptype rand(01);
                    if(
$temptype == "0") {
                        
$type $male_type;
                        unset(
$temptype);
                    }
                    else if(
$temptype "1"){
                        
$type $female_type;
                        unset(
$temptype);
                    }
            
            if (
$type == $male_type) {
                
$result3 mysql_query("SELECT * FROM ".$prefix."adoptables WHERE type='$male_type'");
                
$aid mysql_result($result3,0,"id"); //The adoptable's ID
                
$eggimage mysql_result($result3,0,"eggimage");
            }
            
            else {
                
$result3 mysql_query("SELECT * FROM ".$prefix."adoptables WHERE type='$female_type'");
                
$aid mysql_result($result3,0,"id"); //The adoptable's ID
                
$eggimage mysql_result($result3,0,"eggimage");
            }
            
            
// we're choosing a gender
               
              
            
$tempgender rand(01);

            if(
$tempgender == "0"){
                
$new_name "Son of ".$male_name." & ".$female_name;
                
$gender 'Male';
            }
            else if(
$tempgender == "1"){
                
$new_name "Daughter of ".$male_name." & ".$female_name;
                
$gender 'Female';
            }
            
            unset(
$tempgender);
            
            
$article_content $article_content."<p>Your adoptables are breeding.</p>";
         
            if (
$type != "0"){
               
$article_content $article_content."<p>Result: <b>Bred Succesfully</b></p><p>Your new egg is being transferred to you right now. Yay!</p>";

               
// now let's insert the new egg at owned_adoptables
                

               // now we're choosing the code
               
$code rand(120000);

               
$alts getaltstatus($aid00);

               
// and the date comes in here too
               
$date date("F jS, Y");   
               
               
$name $new_name;

               
mysql_query("INSERT INTO ".$prefix."owned_adoptables VALUES ('', '$type', '$name','$loggedinname','0','0', '$code', '','$alts','notfortrade','no','$gender','$date')");

               
$article_content $article_content."<p><img src='".$eggimage."'><br /><a href='myadopts.php'>Manage ".$name." now!</a>
               It's type is "
.$type." and it was born on ".$date."! You can change its name to your liking.</p>";
                    
               unset(
$gender);
               unset(
$type);

            } 
// if our type is not equal to zero, this is where we continue. this is the end of the continuation.
        
// we end the place where it goes on if the levels are ok
    
//this bracket ends the else where we find the male/female id's
}// this is the end of if($isloggedin == "yes")

else { //this is the else of if($isloggedin == "yes")

    
$article_content $article_content."You are not logged in. Please log in to breed.";

}


// **********************************************************************
// Begin Template Definition
// **********************************************************************

//Define our current theme
$file $themeurl;

// Do the template changes and echo the ready template
$template file_get_contents($file);

$template replace(':ARTICLETITLE:',$article_title,$template);
$template replace(':ARTICLECONTENT:',$article_content,$template);
$template replace(':ARTICLEDATE:',$article_date,$template);

$template replace(':BROWSERTITLE:',$browsertitle,$template);
$template replace(':SITENAME:',$sitename,$template);

//Define our links
$template replace(':LINKSBAR:',$links,$template);

//Get the content for the side bar...

$sidebar getsidebar();
$template replace(':SIDEFEED:',$sidebar,$template);

//Get the ad content...
$template replace(':ADS:',$ads,$template);

//Get the slogan info
$template replace(':SLOGAN:',$slogan,$template);


echo 
$template;

// **********************************************************************
// End Template Definition
// **********************************************************************



?>
Yet, the code in specific that I'm looking at is this:
PHP Code:
 // This will start a selection form to select the females
        
$article_content $article_content."<p>Select the Two adoptables you want to Breed:</p><p><form method='post'><select name = 'female'>"

        
//This will select all the female adoptables the user has
        
$result mysql_query("SELECT * FROM ".$prefix."owned_adoptables WHERE owner = '$loggedinname' AND gender = 'Female'");
        
$num mysql_num_rows($result);

        
// Loop Out code < this will loop so you select all the rows and not just one
        
$i 0;
        while (
$i $num){
            
$aid = @mysql_result($result,$i,'aid');
            
$type = @mysql_result($result,$i,'type');
            
$name = @mysql_result($result,$i,'name');

            
$article_content $article_content."<option value='".$aid."'>".$name." (".$type.")</option>";
            
//this will display something like that: cute kitty (cat), the name (the type); for each adoptable (female) the user has

            
$i++;
        }

        
$article_content $article_content."</select><select name='male'>"//now let's do the same for the males

        
$result2 mysql_query("SELECT * FROM ".$prefix."owned_adoptables WHERE owner = '$loggedinname' AND gender = 'Male'");
        
$num2 mysql_num_rows($result2);

        
// Loop Out code
        
$i2 0;
        while (
$i2 $num){
            
$aid2 = @mysql_result($result2,$i2,'aid');
            
$type2 = @mysql_result($result2,$i2,'type');
            
$name2 = @mysql_result($result2,$i2,'name');

            
$article_content $article_content."<option value='".$aid2."'>".$name2." (".$type2.")</option>";

            
$i2++;
        }

        
$article_content $article_content."</select><input type='hidden' name='breed' value='yes'><input type='submit' value='Breed It'></form>"
[hr]
Nevermind, it was a stupid mistake..
The feature is finished now![hr]
It's working perfectly now, except for a really weird sort order. Somehow, it seems to enter it right after one of their parents, irregardless of the $aid variable. xP
Reply With Quote