/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Uendelig løkke et sted
Fra : Thomas


Dato : 30-03-06 13:49

Flg er fra tresmailer / postnuke.
Det skal printe tidligere modtagere af et nyhedsbrev på skærmen (disse er
gemt i databasen)

Problemet er at kun den første modtager bliver skrevet på skærmen. Denne
bliver så gentaget uendeligt mange gange.
De sidste 14-15 linier må altså indeholde en uendelig løkke.

Kan i se hvor ? Jeg er ikke het ferm til php.


Mvh Thomas


function ViewArchiveSub($arch_mid) {

$prefix = pnConfigGetVar('prefix');
$sitename = pnConfigGetVar('sitename');
// get db connection
list($dbconn) = pnDBGetConn();
$pntable = pnDBGetTables();

$ModName = basename(dirname(__FILE__));

if(!(pnSecAuthAction(0, 'pnTresMailer::', '::', ACCESS_ADMIN))) {
include("modules/$ModName/common.php");
page_headers('');
OpenTable();
echo "<center><font class=\"pn-normal\">"._ADMINONLY."</font></center>";
CloseTable();
page_footers('');
return;
}

include("modules/$ModName/common.php");

echo "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"6\"
border=\"0\">\n"
.."<tr>\n"
.."<td align=\"center\"
class=\"pn-title\"><b>"._SUBSCRIBERSLIST."</b></td>\n"
.."</tr>\n"
.."</table>\n"
.."\n"
.."<table width=\"100%\" cellspacing=\"0\" cellpadding=\"6\" border=\"0\">\n"
.."<tr>\n"
.."<td align=\"center\" class=\"pn-normal\"></td>\n"
.."<td align=\"center\" class=\"pn-normal\"><b>"._USERNAME."</b></td>\n"
.."<td align=\"center\" class=\"pn-normal\"><b>"._EMAIL."</b></td>\n"
.."</tr>\n";

$i=1;
$sql = "SELECT sub_name, sub_email FROM ($prefix"._nl_arch_subscriber.",
$prefix"._nl_subscriber.") WHERE $prefix"._nl_arch_subscriber.".sub_reg_id =
$prefix"._nl_subscriber.".sub_reg_id AND arch_mid = '$arch_mid' ORDER BY
sub_name";
$result = $dbconn->Execute($sql);
if ($dbconn->ErrorNo() != 0) {
echo _DBREADERROR;
}
while(!$result->EOF) {
list($sub_name, $sub_email) = $result->fields;

if ($i % 2) {
echo "<tr bgcolor=\"#f0f0f0\">\n";
} else {
echo "<tr>\n";
}

echo "<td align=\"center\" class=\"pn-normal\">$i</td>\n"
.."<td align=\"center\" class=\"pn-normal\">$sub_name</td>\n"
.."<td align=\"center\" class=\"pn-normal\">$sub_email</td>\n"
.."</tr>\n";
$i++;
}

echo "</table>\n";

echo "<center><form><input type=\"button\" value=\"Close Window\"
onClick=\"window.close()\"></form></center>";



 
 
Erlend Klakegg Bergh~ (30-03-2006)
Kommentar
Fra : Erlend Klakegg Bergh~


Dato : 30-03-06 13:55

Thomas skrev:
> Flg er fra tresmailer / postnuke.
> Det skal printe tidligere modtagere af et nyhedsbrev på skærmen (disse er
> gemt i databasen)
>
> Problemet er at kun den første modtager bliver skrevet på skærmen. Denne
> bliver så gentaget uendeligt mange gange.
> De sidste 14-15 linier må altså indeholde en uendelig løkke.
>
> Kan i se hvor ? Jeg er ikke het ferm til php.

Jeg finner kun en løkkekonstruksjon:

while(!$result->EOF) {

Såvidt jeg kan forstå betyr det at noe(TM) gjør at $result->EOF ikke
endrer seg eller at man ikke benytter klassen $result er konstruert av
riktig. Da jeg ikke har denne klassen foran meg kan jeg ikke svare deg
noe nærmere.

Jeg foreslår at finner ut hvilken klasse som definerer $result er laget
av, og undersøker hvordan denne klassen er brukt ellers i koden for å
finne ut om kodesnutten du presenterer bruker den på feil måte.


--

Vennlig hilsen

Erlend Klakegg Bergheim

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste