Solved

Checking to see if DB cell contains data or not

Posted on 2004-09-19
18
287 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 7
  • 6
  • 5
18 Comments
 
LVL 32

Expert Comment

by:ldbkutty
ID: 12097788
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
ID: 12097793
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
ID: 12097794
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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 32

Expert Comment

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

Author Comment

by:MirageSF
ID: 12097802
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
ID: 12097815
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
ID: 12097821
>> 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
ID: 12097829
If empty doesn't work, and it should, change !empty to isset
0
 
LVL 32

Expert Comment

by:ldbkutty
ID: 12097848
"domain" is column name, so it is always SET inside the while loop, yeah?
0
 

Author Comment

by:MirageSF
ID: 12097858
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
ID: 12097864
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
ID: 12097885
                     <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
ID: 12097907
Try this:
echo "<a href=\"otherpage.php\">" . $row["domain"] . "</a>";
0
 

Author Comment

by:MirageSF
ID: 12097955
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
ID: 12098071
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
ID: 12098104
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
ID: 12098832
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
ID: 12099334
You mean

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

Featured Post

Creating Instructional Tutorials  

For Any Use & On Any Platform

Contextual Guidance at the moment of need helps your employees/users adopt software o& achieve even the most complex tasks instantly. Boost knowledge retention, software adoption & employee engagement with easy solution.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Author Note: Since this E-E article was originally written, years ago, formal testing has come into common use in the world of PHP.  PHPUnit (http://en.wikipedia.org/wiki/PHPUnit) and similar technologies have enjoyed wide adoption, making it possib…
This article discusses how to implement server side field validation and display customized error messages to the client.
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

726 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