Mumlebumle Posted August 15, 2010 Share Posted August 15, 2010 So i started on a project and not within long, i hit a wicked wall. The upper part works fine, i get the correct $pilotcorpid, however it doesnt seem to query the 2nd time, it just uses the variable from the first time. I have the information in the database, i just need to pick em out right. <?php include 'config.php'; //database config include 'opendb.php'; //connect database $search = @$_GET['q'] ; //getting a name from a form $result = mysql_query("SELECT * FROM kb3_pilots WHERE plt_name='$search'")or die(mysql_error()); //here i choose to check in the kb3_pilots table, the plt_name column for the name written in the form earlier. $pilotcorpid=mysql_result($result,"plt_crp_id"); //since i found the guy in the query, i need info from that column, the plt_crp_id. $resultcorp = mysql_query("SELECT * FROM kb3_corps WHERE crp_id='$pilotcorpid'")or die(mysql_error()); //now we query the kb3_corps table to check if the corp exists. $pilotcorpname=mysql_result($resultcorp,"crp_name"); //Because it did, i will now pull out the name echo "TEST: Pilot Id: $pilotcorpid and corp name: $pilotcorpname"; include 'closedb.php'; ?> If somebody also have a big php/mysql ebook which explains commands great, that would be awesome. Best regards, Mumlebumle Link to comment https://forums.phpfreaks.com/topic/210807-mysql-php-problem/ Share on other sites More sharing options...
wildteen88 Posted August 15, 2010 Share Posted August 15, 2010 No need for those two queries. You only need to use one query, a basic join $query = "SELECT p.plt_crp_id, c.crp_name FROM kb3_pilots p, kb3_corps c WHERE p.plt_name='$search' AND p.plt_crp_id = c.crp_id"; $result = mysql_query($query); list($pilotcorpid, $pilotcorpname) = mysql_fetch_row($result); echo "TEST: Pilot Id: $pilotcorpid and corp name: $pilotcorpname"; Link to comment https://forums.phpfreaks.com/topic/210807-mysql-php-problem/#findComment-1099638 Share on other sites More sharing options...
kickstart Posted August 15, 2010 Share Posted August 15, 2010 Hi Agree with the above point (although you probably want to use a LEFT OUTER JOIN if there might not be a matching record on the 2nd table). However the problem you appear to have here is down to mysql_result. The 2nd parameter is the row number, whereas you seem to have specified the field name as the 2nd parameter. All the best Keith Link to comment https://forums.phpfreaks.com/topic/210807-mysql-php-problem/#findComment-1099639 Share on other sites More sharing options...
jcbones Posted August 15, 2010 Share Posted August 15, 2010 Try it this way: UN-TESTED <?php include 'config.php'; //database config include 'opendb.php'; //connect database $search = (isset($_GET['q'])) ? mysql_real_escape_string($_GET['q']) : NULL ; //getting a name from a form if($search == NULL) { echo 'You have not defined a search parameter.'; exit(); } $sql = "SELECT a.*,b.* FROM kb3_pilots as a, kb3_corps as b WHERE a.plt_crp_id = b.crp_id AND a.plt_name = '$search'"; $result = mysql_query($sql)or die(mysql_error()); //here i choose to check in the kb3_pilots table, the plt_name column for the name written in the form earlier. if(mysql_num_rows($result) > 0) { while($row = mysql_fetch_assoc($result)) { $pilotcorpid = $row['plt_crp_id']; $pilotcorpname = $row['crp_name']; echo "TEST: Pilot Id: $pilotcorpid and corp name: $pilotcorpname<br/>\n"; } } else { echo 'There was no results returned from your search.'; } include 'closedb.php'; ?> Resources: PHP Manual MySQL Manual PS. I added some checks in there for added functionality. Link to comment https://forums.phpfreaks.com/topic/210807-mysql-php-problem/#findComment-1099640 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.