Jump to content

Recommended Posts

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);
?>
Link to comment
https://forums.phpfreaks.com/topic/295654-doubling-after-getting-data-from-mysql/
Share on other sites

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 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

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.

... 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. 

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;
}
...
...
}

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>').

  • Like 1
This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

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.