canadezo121 Posted April 18, 2015 Share Posted April 18, 2015 OK, I'm new to PHP & MySQL so try and bare with me. I attempted to grab information from a database, but the template that I downloaded has two span classes, one alpha and one without an alpha extension. They run back to back in <li> tags. The issue is when I run the code it's pulling the identical information twice. I know I coded it wrong; I know there's an easy solution to this. I just don't know it. Any help would be appreciated. <?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = ''; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysql_error()); } $sql = 'SELECT fname, email, phone, description, rate FROM advisors'; mysql_select_db('mobile-advice'); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('Could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { echo "<li class=\"frame-stuffbox col span_6 alpha\">". "<div class=\"frame-stuffbox-wrap\">". "<div class=\"frame-stuffbox-container\">". "<div class=\"frame-stuffbox-vinecontainer\">". "<img src=\"assets/images/_shape_bootle.png\" alt=\"\">". "</div>". "<section class=\"frame-stuffbox-content\">". "<h5><a href=\"product.html\">{$row['fname']}</a></h5>". "<div class=\"frame-stuffbox-description\">". "<p>{$row['description']}</p>". "</div>". "<div class=\"frame-stuffbox-priceside\">". "<span class=\"frame-stuffbox-price\">{$row['rate']} $</span>". "<a href=\"javascript:void(0)\" class=\"frame-button icon\"><img src=\"assets/images/_icon_addtocart.png\" alt=\"\" />Call Now</a>". "</div>". "</section>". "</div>". "</div>". "</li>". "<li class=\"frame-stuffbox col span_6\">". "<div class=\"frame-stuffbox-wrap\">". "<div class=\"frame-stuffbox-container\">". "<div class=\"frame-stuffbox-vinecontainer\">". "<img src=\"assets/images/_shape_bootle.png\" alt=\"\">". "</div>". "<section class=\"frame-stuffbox-content\">". "<h5><a href=\"product.html\">{$row['fname']}</a></h5>". "<div class=\"frame-stuffbox-description\">". "<p>{$row['description']}</p>". "</div>". "<div class=\"frame-stuffbox-priceside\">". "<span class=\"frame-stuffbox-price\">{$row['rate']}</span>". "<a href=\"javascript:void(0)\" class=\"frame-button icon\"><img src=\"assets/images/_icon_addtocart.png\" alt=\"\" />Call Now</a>". "</div>". "</section>". "</div>". "</div>". "</li>"; } echo "Fetched data successfully\n"; mysql_close($conn); ?> Quote Link to comment https://forums.phpfreaks.com/topic/295654-doubling-after-getting-data-from-mysql/ Share on other sites More sharing options...
NotionCommotion Posted April 18, 2015 Share Posted April 18, 2015 What do you mean by "pulling the identical information twice"? It is obviously displaying two <li> elements for each record. What I like to do is get rid of all your HTML, and just display what is being returned from the databases. You are using the obsoleted PHP MySQL functions, and you should use the new improved ones or better yet PDO. Quote Link to comment https://forums.phpfreaks.com/topic/295654-doubling-after-getting-data-from-mysql/#findComment-1509304 Share on other sites More sharing options...
joel24 Posted April 18, 2015 Share Posted April 18, 2015 What do you mean by "pulling the identical information twice"? It is obviously displaying two <li> elements for each record. What I like to do is get rid of all your HTML, and just display what is being returned from the databases. You are using the obsoleted PHP MySQL functions, and you should use the new improved ones or better yet PDO. ... yes, you're echoing two <li> tags - did you want to just echo one or by doubling up do you mean the two tags are appearing twice, i.e. 4 <li> tags? (2 x alpha, 2 not). As as NotionCommotion said - you should use either PDO or mysqli as the mysql function is deprecated as of php 5.5. Read up here for information - the mysqli and mysql functions are very similar... http://php.net/manual/en/mysqli.quickstart.php Quote Link to comment https://forums.phpfreaks.com/topic/295654-doubling-after-getting-data-from-mysql/#findComment-1509308 Share on other sites More sharing options...
canadezo121 Posted April 18, 2015 Author Share Posted April 18, 2015 What do you mean by "pulling the identical information twice"? It is obviously displaying two <li> elements for each record. What I like to do is get rid of all your HTML, and just display what is being returned from the databases. You are using the obsoleted PHP MySQL functions, and you should use the new improved ones or better yet PDO. What's going on is I have 3 users in my Database(Eventually more). James, Dennis and Tony. The first <LI> element is <li class=\"frame-stuffbox col span_6 alpha\"> Notice the "alpha" after span_6. The second <li> class eliminates the word "alpha". And it repeats so on and so forth. Alpha, is the first listing which has special CSS functions that spaces the two li classes accordingly. The issue that I'm having is user James is being displayed in both LI classes, in Alpha and without Alpha. Username Dennis and Tony are having the same issue. Quote Link to comment https://forums.phpfreaks.com/topic/295654-doubling-after-getting-data-from-mysql/#findComment-1509320 Share on other sites More sharing options...
canadezo121 Posted April 18, 2015 Author Share Posted April 18, 2015 ... yes, you're echoing two <li> tags - did you want to just echo one or by doubling up do you mean the two tags are appearing twice, i.e. 4 <li> tags? (2 x alpha, 2 not). As as NotionCommotion said - you should use either PDO or mysqli as the mysql function is deprecated as of php 5.5. Read up here for information - the mysqli and mysql functions are very similar... http://php.net/manual/en/mysqli.quickstart.php What I'm trying to get done is in the first LI tag ending in Alpha I want to display the first user. The second LI tag I'm trying to get the second user. Quote Link to comment https://forums.phpfreaks.com/topic/295654-doubling-after-getting-data-from-mysql/#findComment-1509327 Share on other sites More sharing options...
ginerjm Posted April 18, 2015 Share Posted April 18, 2015 So - your while loop echos out both li tags for each row that is returned. Why? (And I've never seen a list used in such a way as to contain 6+ divs, two imgs, a p and an a tag as well as whatever else is in all that html.) If you only want one li per row, then only echo one li per row. Use a switch mechanism to alternate which one is used if that is what you are saying. Try: while...... { ... ... if ($alpha) { echo (the alpha li tag) else echo (the li tag w/out alpha) $alpha = !$alpha; } ... ... } Quote Link to comment https://forums.phpfreaks.com/topic/295654-doubling-after-getting-data-from-mysql/#findComment-1509329 Share on other sites More sharing options...
NotionCommotion Posted April 19, 2015 Share Posted April 19, 2015 What's going on is I have 3 users in my Database(Eventually more). James, Dennis and Tony. The first <LI> element is Break it up in pieces. At first, forget you fancy HTML, and just view the results provided by your database. When you know what you are getting, then deal with presentation. Use functions like var_dump($yourstuff), print_r($yourstuff) or my personal favorite echo('<pre>'.print_r($yourstuff,1).'</pre>'). 1 Quote Link to comment https://forums.phpfreaks.com/topic/295654-doubling-after-getting-data-from-mysql/#findComment-1509343 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.