user2800148
user2800148

Reputation: 29

Short cut php echo code

I have a html table where i want to echo content out of a database table:

<table style="width: 100%;">
<tbody>
<tr>
<td>
<?php
$ergebnis = mysql_query("SELECT Test FROM testtable");
while($row = mysql_fetch_object($ergebnis))
{
echo $row->Test;
}
</td>
 <td>
<?php
$ergebnis = mysql_query("SELECT Test2 FROM testtable");
while($row = mysql_fetch_object($ergebnis))
{
echo $row->Test2;
}
</td>
</tr>
</tbody>
</table>

Is there a way to cut short the php code, because it´s a bit too long to wirte in every

 <?php
 $ergebnis = mysql_query("SELECT Test FROM testtable");
 while($row = mysql_fetch_object($ergebnis))
 {
 echo $row->Test;
 }

Upvotes: 0

Views: 198

Answers (4)

PeeHaa
PeeHaa

Reputation: 72672

If your example really is what you are doing you might want to rather get all data in a single query:

<?php
$ergebnis = mysql_query("SELECT Test, Test2 FROM testtable");
$recordset = mysql_fetch_array($ergebnis, MYSQL_ASSOC);
?>

<table style="width: 100%;">
    <tbody>
        <tr>
            <?php foreach (array('Test', 'Test2') as $column) { ?>
                <td>
                    <?php foreach ($recordset as $record) { ?>
                        <?php echo htmlspecialchars($record[$column], ENT_QUOTES, 'UTF-8'); ?>
                    <?php } ?>
                <td>
            <?php } ?>
        </tr>
    </tbody>
</table>

Also note that the mysql_* functions has been deprecated and will be removed from the language soon. If you want to make sure your code doesn't start throwing notices or even will stop functioning in the future you might want to start using either mysqli_* or PDO.

http://php.net/manual/en/mysqlinfo.api.choosing.php

Also note that I have added htmlspecialchars() to prevent possible XSS attacks.

Upvotes: 3

Akinak
Akinak

Reputation: 176

You can make a function like this:

function query($a){
$ergebnis = mysql_query("SELECT $a FROM testtable");
while($row = mysql_fetch_object($ergebnis))
{
echo $row->$a;
}
}

Upvotes: 0

user796443
user796443

Reputation:

Create a function out of it. And use wherever you want.

Upvotes: 0

Archy Will He
Archy Will He

Reputation: 9767

Well, you can simply do it by having a function:

function query($a){
$ergebnis = mysql_query("SELECT $a FROM testtable");
while($row = mysql_fetch_object($ergebnis))
{
echo $row->$a;
}
}

and calling it like this:

<table style="width: 100%;">
<tbody>
<tr>
<td>
<?php
 $a = 'Test';
 query($a);
 ?>
</td>
 <td>
<?php
$a = 'Test2';
query($a);
?>
</td>
</tr>
</tbody>
</table>

Upvotes: 0

Related Questions