Solved

Checking to see if DB cell contains data or not

Posted on 2004-09-19
18
250 Views
Last Modified: 2006-11-17
Hi,

<?php print mysql_result($result,2,"domain");?>

How do I convert the line above so it only prints the line if the database read attempt has data and does not return an error ?  i.e. if database only has 2 rows and I attempt to access the third row which does not exist ??

Thanx
0
Comment
Question by:MirageSF
  • 7
  • 6
  • 5
18 Comments
 
LVL 32

Expert Comment

by:ldbkutty
Comment Utility
for($i=0; $i<mysql_num_rows($result); $i++) {
   print mysql_result($result,$i,"domain");
}

Howver, if you have large data-sets, its better to go with mysql_fetch_row() or mysql_fetch_array()
0
 
LVL 36

Expert Comment

by:Zyloch
Comment Utility
Hi MirageSF,

You can check if 2 is greater than mysql_num_rows($resultofyourquery)

Also, you can do this:

while ($row=mysql_fetch_array($resultofyourquery)) {
   echo($row["domain"]);
}

Regards,
Zyloch
0
 

Author Comment

by:MirageSF
Comment Utility
Also, how do I set the output text as a LINK so that people can click on the outputed db code and goto another page ?
0
 
LVL 32

Expert Comment

by:ldbkutty
Comment Utility
while ($row=mysql_fetch_array($result)) {
   echo "<a href='otherpage.php'> $row['domain'] </a>";
}
0
 

Author Comment

by:MirageSF
Comment Utility
Im putting the values directly into a table using individual PHP code segments, a FOR or WHILE loop would cause problems, I need an IF statement of some kind that actually checks if that row has data in the first column if so print if not then do nothing

Thanx
0
 
LVL 36

Expert Comment

by:Zyloch
Comment Utility
Just make sure you keep the $results of the mysql query, like this:

$res1=mysql_query("your query");

Then, every time you need a new row, compare the new row number with mysql_num_rows($res1);
0
 
LVL 32

Expert Comment

by:ldbkutty
Comment Utility
>> I need an IF statement of some kind that actually checks if that row has data in the first column if so print if not then do nothing

while ($row=mysql_fetch_array($result)) {
   if(!empty($row['domain']))
        echo "<a href='otherpage.php'> $row['domain'] </a>";
}

Is this something what you want ?
0
 
LVL 36

Expert Comment

by:Zyloch
Comment Utility
If empty doesn't work, and it should, change !empty to isset
0
 
LVL 32

Expert Comment

by:ldbkutty
Comment Utility
"domain" is column name, so it is always SET inside the while loop, yeah?
0
Easy Project Management (No User Manual Required)

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

Author Comment

by:MirageSF
Comment Utility
got thid error from last segment of code...


Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
0
 
LVL 32

Expert Comment

by:ldbkutty
Comment Utility
i dont see any errors with that piece of code. if the error is showed in line 10(for example), please post your code from line 7 till 12.
0
 

Author Comment

by:MirageSF
Comment Utility
                     <td width="39"><span class="style4">Server</span></td>
                      <td width="44"><span class="style4">Created</span></td>
                      <td width="59"><span class="style4">Status</span></td>
                      <td width="30"><span class="style4"></span></td>
                    </tr>
                    <tr bgcolor="#fafafa">
                      <td bgcolor="#fafafa"><span class="style2 style10"><?php while ($row=mysql_fetch_array($result)) {
   if(!empty($row['domain']))
        echo "<a href='otherpage.php'> $row['domain'] </a>";
}

?></span></td>
                      <td><span class="style4">bloggs</span></td>
                      <td><span class="style4">Virtual I </span></td>
                      <td><span class="style4">Delta</span></td>
                      <td><span class="style4">10-10</span></td>
                      <td><span class="style4">ACTIVE</span></td>
0
 
LVL 32

Expert Comment

by:ldbkutty
Comment Utility
Try this:
echo "<a href=\"otherpage.php\">" . $row["domain"] . "</a>";
0
 

Author Comment

by:MirageSF
Comment Utility
ok works now, but produces a line of results, basically I need to tell it to look in row 0 and if data print result, on another row of the table I get it to look at row 1 and print results, then I go on and on.

Basically on my own table created in html I use...

echo "<a href='otherpage.php'>";print mysql_result($result,0,"domain");echo "</a>"

and

echo "<a href='otherpage.php'>";print mysql_result($result,1,"domain");echo "</a>"

for example and they work great if there are 2 tables, as soon as I use (which is empty) I get an error plastered within the table..

echo "<a href='otherpage.php'>";print mysql_result($result,2,"domain");echo "</a>"

If it was possible to do...


   if(!empty(mysql_result($result,0,"domain")))
echo "<a href='otherpage.php'>";print mysql_result($result,0,"domain");echo "</a>"

that would do the trick, but it produces errors like that
0
 
LVL 36

Expert Comment

by:Zyloch
Comment Utility
Why can't you do it like Idbkutty says with the while ($row=mysql_fetch_array($result)) ?

That's basically the standard way to do it. If your links are different or whatever, you can make another array to correspond to it.
0
 
LVL 32

Accepted Solution

by:
ldbkutty earned 50 total points
Comment Utility
probably, you miss " ; " (semi-colon) at the end. BTW, try this:

if(isset(mysql_result($result,0,"domain")) && !empty(mysql_result($result,0,"domain")))
     echo "<a href=\"otherpage.php\">" " . mysql_result($result,0,"domain") . "</a>";
0
 

Author Comment

by:MirageSF
Comment Utility
How do I change the link so it matches the domain within the DB ?

<?php echo "<a href='http://www.'>"; print mysql_result($result3,0,"domain");echo "</a>";?>

Sorry for all the little questions, but im starting to make sense of alot of stuff and have pretty much got what I need working, about 5% left and im done me thinks, not bad for a days work ;)

Thanx
0
 
LVL 36

Expert Comment

by:Zyloch
Comment Utility
You mean

<?php echo "<a href='" . mysql_result($result3,0,"domain") . "'>" . mysql_result($result3,0,"domain") . "</a>"; ?>
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

These days socially coordinated efforts have turned into a critical requirement for enterprises.
Password hashing is better than message digests or encryption, and you should be using it instead of message digests or encryption.  Find out why and how in this article, which supplements the original article on PHP Client Registration, Login, Logo…
The viewer will learn how to count occurrences of each item in an array.
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!

Get 1:1 Help Now