Hello Torsten,
TR> thanks for your help. Unfortunately it's always returning the same row for
TR> each category (maybe because of the group by) and only one row for each
TR> category. I need to select 2 random rows for each category. Any more ideas?
I'ts returning 2 rows each RECORD, but the fields have
the same name, so if you do a mysql_fetch_array, you'll find only
one...
Change your sql to:
select a.category as categorya, a.name as namea, b.name as
nameb from tablename as a left join tablename as b on
a.category = b.category and a.name<>b.name and
a.language=b.language where a.language='de' and b.name is not
null group by a.category
and you'll do:
echo "<tr><th>languaje<td>category<td>name\n";
while ($data=mysql_fetch_array($result)) {
echo "<tr><td>de<td>" . $data["categorya"] . "<td>" . $data["namea"];
echo "<tr><td>de<td>" . $data["categorya"] . "<td>" . $data["nameb"];
}
ok?...
EACH ROW CONTAINS 2 RECORDS...but.. we need something more, 'cause
you're needing RANDOM rows...
If you need RANDOM, i think mysql will not help you, and you must
change your query to:
select a.category as categorya, a.name as namea, b.name as
nameb from tablename as a left join tablename as b on
a.category = b.category and a.name<>b.name and
a.language=b.language where a.language='de' and b.name is not
null order by a.category
and then do something in php like store everything in an array, and take some
randomly...
srand(time());
$lastcat=0;
echo "<tr><th>languaje<td>category<td>name\n";
while ($data=mysql_fetch_array($result)) {
if (($lastcat) and ($lastcat<>$data["categorya"])) {
echo "<tr><td>de<td>" . $lastcat . "<td>" .
$myarray[$lastcat][rand()%count($myarray[$lastcat])];
echo "<tr><td>de<td>" . $lastcat . "<td>" .
$myarray[$lastcat][rand()%count($myarray[$lastcat])];
}
$myarray[$data["categorya"]][]=$data["namea"];
$myarray[$data["categorya"]][]=$data["nameb"];
$lastcat=$data["categorya"];
}
echo "<tr><td>de<td>" . $lastcat . "<td>" .
$myarray[$lastcat][rand()%count($myarray[$lastcat])];
echo "<tr><td>de<td>" . $lastcat . "<td>" .
$myarray[$lastcat][rand()%count($myarray[$lastcat])];
mhhh... i don't like... but i think this will work and you can make it
better!!!!!!
--
Best regards,
Pablo
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php