blackcell Posted January 22, 2008 Share Posted January 22, 2008 I have tried to find a way to select one field from one record in a database but I can't do it without the usual while loop. Here is how I do it: <?php $sqlQuery = "SELECT `persInfo_ID` FROM `jam_persinfo` WHERE `persInfo_nameLast` = '$nameLast'"; $sqlResult = mysql_query( $sqlQuery ); //I know there is a simpler way of doing this part. while($row = mysql_fetch_array($sqlResult)){ $persInfo_ID = $row["persInfo_ID"]; break; } ?> I have tried a few things based upon reading but I don't understand. Thanks. Link to comment https://forums.phpfreaks.com/topic/87257-solved-mysql-selecting-one-field/ Share on other sites More sharing options...
rhodesa Posted January 22, 2008 Share Posted January 22, 2008 <?php $sqlQuery = "SELECT `persInfo_ID` FROM `jam_persinfo` WHERE `persInfo_nameLast` = '$nameLast' LIMIT 1"; $sqlResult = mysql_query( $sqlQuery ); $row = mysql_fetch_array($sqlResult); $persInfo_ID = $row["persInfo_ID"]; ?> The LIMIT is not required Link to comment https://forums.phpfreaks.com/topic/87257-solved-mysql-selecting-one-field/#findComment-446319 Share on other sites More sharing options...
blackcell Posted January 22, 2008 Author Share Posted January 22, 2008 I tried this and still no cigar. Is it still mysql_fetch_array? Link to comment https://forums.phpfreaks.com/topic/87257-solved-mysql-selecting-one-field/#findComment-446321 Share on other sites More sharing options...
rhodesa Posted January 22, 2008 Share Posted January 22, 2008 Try this out and send back the output.. <?php $sqlQuery = "SELECT `persInfo_ID` FROM `jam_persinfo` WHERE `persInfo_nameLast` = '$nameLast' LIMIT 1"; $sqlResult = mysql_query( $sqlQuery ); if(!$sqlResult) die("Query failed: ".mysql_error()); $row = mysql_fetch_array($sqlResult); var_dump($row); $persInfo_ID = $row["persInfo_ID"]; ?> Link to comment https://forums.phpfreaks.com/topic/87257-solved-mysql-selecting-one-field/#findComment-446325 Share on other sites More sharing options...
blackcell Posted January 22, 2008 Author Share Posted January 22, 2008 echo = array(2) { [0]=> string(45) "Last_First_[2008-01-22]_JAM_APPLICATION.pdf" ["fileTrack_fileName"]=> string(45) "Last_First_[2008-01-22]_JAM_APPLICATION.pdf" } [] This works with the loop btw. Link to comment https://forums.phpfreaks.com/topic/87257-solved-mysql-selecting-one-field/#findComment-446331 Share on other sites More sharing options...
rhodesa Posted January 22, 2008 Share Posted January 22, 2008 Well...there is no difference between while($row = mysql_fetch_array($sqlResult)){ $persInfo_ID = $row["persInfo_ID"]; break; } and $row = mysql_fetch_array($sqlResult); $persInfo_ID = $row["persInfo_ID"]; that aside, there is no way the output you provided can be produced with the code provided. Where is the "echo =" coming from? And your output says that $row is an array with 2 strings, but your query selects only one column. Is there code you are omitting? Link to comment https://forums.phpfreaks.com/topic/87257-solved-mysql-selecting-one-field/#findComment-446345 Share on other sites More sharing options...
blackcell Posted January 22, 2008 Author Share Posted January 22, 2008 i am changing $row to $row2 because i modified from another doc. I also added the echo = to tell you that is what it said. Link to comment https://forums.phpfreaks.com/topic/87257-solved-mysql-selecting-one-field/#findComment-446346 Share on other sites More sharing options...
rhodesa Posted January 22, 2008 Share Posted January 22, 2008 so...your code looks like this then? <?php $sqlQuery = "SELECT `persInfo_ID` FROM `jam_persinfo` WHERE `persInfo_nameLast` = '$nameLast' LIMIT 1"; $sqlResult = mysql_query( $sqlQuery ); if(!$sqlResult) die("Query failed: ".mysql_error()); $row2 = mysql_fetch_array($sqlResult); var_dump($row2); // $persInfo_ID = $row["persInfo_ID"]; ?> If possible please take a direct copy/paste from your code as it is most likely some small mistake. Obviously remove any sensitive data, but make notes about what was changed/removed. Sorry if this sounds remedial, but the code you say you are running and the output you are providing don't match up. Link to comment https://forums.phpfreaks.com/topic/87257-solved-mysql-selecting-one-field/#findComment-446348 Share on other sites More sharing options...
PFMaBiSmAd Posted January 22, 2008 Share Posted January 22, 2008 Actually, because mysql_fetch_array() returns a numerical array and an associative array, the output is not totally unexpected, however it does indicate that what was SELECTED is not what the posted query actually is. Link to comment https://forums.phpfreaks.com/topic/87257-solved-mysql-selecting-one-field/#findComment-446352 Share on other sites More sharing options...
rhodesa Posted January 22, 2008 Share Posted January 22, 2008 good catch...i always use mysql_fetch_assoc() so don't have that problem. man...that is twice today i've fouled up a mysql_fetch_array() problem. and yes...the output is weird. it suggests that the query is running something along the lines of: SELECT `fileTrack_fileName` FROM .... Link to comment https://forums.phpfreaks.com/topic/87257-solved-mysql-selecting-one-field/#findComment-446353 Share on other sites More sharing options...
blackcell Posted January 22, 2008 Author Share Posted January 22, 2008 It is, and I asked earlier whether it should be mysql_fetch_array or something else but hey we got it. Thanks man. Link to comment https://forums.phpfreaks.com/topic/87257-solved-mysql-selecting-one-field/#findComment-446357 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.