В поле comment заносится различная информация, в том числе и информация о факте оплаты абонентской платы типа "Paid May". А нужно вывести адреса тех абонентов, кто не оплатил данный месяц.
Вижу решение в следующем (плохо знаю возможности, поэтому легких путей не вижу):
1) из таблицы actions вытащить имена оплативших май
2) найти разницу между этими двумя выборками
3) вывести на экран список адресов полученной разницы
Найти разницу можно между массивами, а не результатами выборки, поэтому выборки переписал в массивы, но результирующий массив пустой. Вот что напридумывал:
Код
<?php
$r=array();
$r1=array();
$r2=array();
$link=mysql_connect("???", "???", "???") or die("Could no
mysql_select_db("???");
$query="SELECT user FROM actions WHERE comment='May paid'";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
print "<table>\n";
$j=0;
$i=0;
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)){
foreach ($line as $col_value){
print "\t<tr>$col_value</tr>\n";
$r[$i][$j]=$col_value;
$i++;
} }
print "</table>\n";
$query1="SELECT user, address FROM users";
print "<table>\n";
$i=0;
while ($line = mysql_fetch_array($result1, MYSQL_ASSOC)){
print "\t<tr>\n";
$j=0;
foreach ($line as $col_value){
print "\t\t<td>$col_value</td>\n";
$r1[$i][$j]=$col_value;
$j++;
}
print "\t</tr>\n";
$i++;
}
print "</table>\n";
$r2 = array_diff ($r, $r1);
mysql_free_result($result);
mysql_free_result($result1);
mysql_close($link);
?>
$r=array();
$r1=array();
$r2=array();
$link=mysql_connect("???", "???", "???") or die("Could no
mysql_select_db("???");
$query="SELECT user FROM actions WHERE comment='May paid'";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
print "<table>\n";
$j=0;
$i=0;
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)){
foreach ($line as $col_value){
print "\t<tr>$col_value</tr>\n";
$r[$i][$j]=$col_value;
$i++;
} }
print "</table>\n";
$query1="SELECT user, address FROM users";
print "<table>\n";
$i=0;
while ($line = mysql_fetch_array($result1, MYSQL_ASSOC)){
print "\t<tr>\n";
$j=0;
foreach ($line as $col_value){
print "\t\t<td>$col_value</td>\n";
$r1[$i][$j]=$col_value;
$j++;
}
print "\t</tr>\n";
$i++;
}
print "</table>\n";
$r2 = array_diff ($r, $r1);
mysql_free_result($result);
mysql_free_result($result1);
mysql_close($link);
?>
Хоть и не ругается, но $r2 пустой...
Спустя 5 часов, 18 минут, 27 секунд (12.05.2007 - 23:19) Ghost написал(а):
SELECT * FROM `users` WHERE `user` NOT IN (SELECT `user` FROM `actions` WHERE `comment`='May paid')