News:

Wondering if this will always be free?  See why free is better.

Main Menu

combining queries

Started by Tim, August 20, 2004, 09:45:50 PM

Previous topic - Next topic

Tim

$query = "SELECT * FROM f1db_team ORDER BY team_rank ASC;";
$result = mysql_query($query) or die(mysql_error());
$query_count++;
echo "<pre>";
while ($row = mysql_fetch_array($result)){
print_r($row);
$driver_query = "SELECT * FROM f1db_rijders WHERE rijder_team_id = " . $row["team_id"] . " AND rijder_nummer != 'T' ";
$get_driver = mysql_query($driver_query) or die(mysql_error());
$query_count++;
while ($row2 = mysql_fetch_array($get_driver)){
print_r($row2);
}
}
echo "</pre>";


any way I can combine those two queries to just one?

[Unknown]

<?php

$result 
mysql_query('
SELECT t.*, r.*
FROM f1db_team AS t, f1db_rijders AS r
WHERE r.rjider_team_id = t.team_id
AND r.rjider_nummer != "T"
ORDER BY t.team_rank ASC'
) or die(mysql_error());
$query_count++;
echo 
'<pre>';
while (
$row mysql_fetch_array($result))
{
print_r($row);
}
echo 
'</pre>';
mysql_free_result($result);

?>


You can achieve the same basic results.  This may mean loading an array, or caching the last team_id to be able to show a new team header or whatever, if you were.

-[Unknown]

Tim

I seem to have a lot of problems onverting it to this:

<?php

$query 
"SELECT * FROM f1db_team ORDER BY team_rank ASC;";
$result mysql_query($query) or die(mysql_error());
$query_count++;
while (
$row mysql_fetch_array($result)){
echo '
<tr>
<th colspan="2">' 
$row["team_naam"]
;
if ($row["team_motor"] != '')
echo ' ' $row["team_motor"];
echo '
</tr><tr>
 '
;


$driver_query "SELECT * FROM f1db_rijders WHERE rijder_team_id = " $row["team_id"] . " AND rijder_nummer != 'T' ";
$get_driver mysql_query($driver_query) or die(mysql_error());
$query_count++;
while ($row2 mysql_fetch_array($get_driver)){
echo '
<td>' 
$row2["rijder_naam"] . '</td>
'
;
}
echo '</tr>';
}
mysql_free_result($result);

?>

[Unknown]

<?php

$result 
mysql_query('
SELECT t.*, r.*
FROM f1db_team AS t, f1db_rijders AS r
WHERE r.rjider_team_id = t.team_id
AND r.rjider_nummer != "T"
ORDER BY t.team_rank ASC'
) or die(mysql_error());
$query_count++;

$last_team_id null;
while (
$row mysql_fetch_array($result))
{
// Look Batman, a new team id!
if ($row['team_id'] != $last_team_id)
{
if ($last_team_id != null)
echo '
</tr>'
;
echo '
<tr>
<th colspan="2">'
$row['team_naam'];
if ($row['team_motor'] != '')
echo ' '$row['team_motor'];
echo '
</tr>
<tr>'
;
}

echo '
<td>'
$row['rijder_naam'], '<td>';
}
mysql_free_result($result);

echo 
'
</tr>'
;

?>


-[Unknown]

Tim

thanks Unknown :)

That one cut the page creation time in half :)

[Unknown]

Quote from: Tim on August 21, 2004, 02:25:53 PM
thanks Unknown :)

That one cut the page creation time in half :)

Nested queries are hateful, aren't they?

No problem.

-[Unknown]

Tim

I just have a problem with the word nested it seems ;)

[Unknown]

Quote from: Tim on August 21, 2004, 03:30:38 PM
I just have a problem with the word nested it seems ;)

Hah.  You're very funny :P.

-[Unknown]

Advertisement: