i think this one should now work.
remember that this is no very proper solution! it would be better not to
work with such functions and access the database directly i think.
.ma
<?php
include "pubSysDB.lib";
//Klasse som henter ut all relevant informasjon om en ingress og presenterer det som
et oversiktlig objekt. Sparer brukeren for mye logikk og spørringer.
//Denne er ikke optimalisert ennå.
class Ingress{
var $gyldig; //"1" hvis dette er en konsistent ingress, "0" hvis
det er prolemer som gjør at ingressen ikke kan vises.
var $feil; //Dersom gyldig er "0" finnes feilmeldingene her,
separert med ;
var $artikkelid; //ID til den artikkelen som ingressen er ingress for
var $nettstedid; //ID til dette nettstedet
var $artikkellink; //Link til selve artikkelen
var $overskrift; //Overskriften i ingressen
var $forfatternavn; //Navn p� forfatteren
var $forfatterlink; //Link til side med info om forfatteren
var $ingress; //Selve teksten i ingressen
var $publisert; //Dato da artikkelen ble publisert
var $publisertLang; //Dato da artikkelen ble publisert, p� format
yyyymmddhhmmss
var $bilde; //URL til ingress-bildet
function Ingress($artikkelid,$nettstedid){
$this->artikkelid = $artikkelid;
$this->nettstedid = $nettstedid;
$db = new pubSysDB();
/* Kommenterte ut dette, bevart intakt. Eneste forskjellen er at man M� sjekke om
artikkelen er publisert eller ikke! ----------------------
$db->query("SELECT i.overskrift, i.ingress, i.publisert, i.bilde,
b.fornavn, b.etternavn, a.artikkeltypeid
FROM Ingress i ,Artikkel a, Bruker b, Artikkeltype t
WHERE i.artikkelid=$this->artikkelid
AND i.nettstedid=$this->nettstedid
AND i.artikkelid=a.artikkelid
AND i.nettstedid=a.nettstedid
AND a.forfatterid = b.brukerid
AND a.artikkeltypeid = t.artikkeltypeid
LIMIT 1");
---------------------------------------------------------------*/
$db->query("SELECT i.overskrift, i.ingress, i.publisert, i.bilde,
b.fornavn, b.etternavn, a.artikkeltypeid, DATE_FORMAT(i.publisert,'%Y%m%d%H%i%S')
publisertLang
FROM Ingress i ,Artikkel a, Bruker b, Artikkeltype t
WHERE i.artikkelid=$this->artikkelid
AND i.nettstedid=$this->nettstedid
AND i.artikkelid=a.artikkelid
AND i.nettstedid=a.nettstedid
AND a.forfatterid = b.brukerid
AND a.artikkeltypeid = t.artikkeltypeid
AND i.publisert IS NOT NULL
LIMIT 1");
if($db->num()){
$row = $db->fetch();
$this->gyldig=1;
$this->overskrift = $row->overskrift;
$this->artikkellink = "art.php?artikkelid=".$this->artikkelid;
$this->forfatternavn = $row->fornavn." ".$row->etternavn;
$this->forfatterlink = "http://www.ikke.no/";
$this->ingress = $row->ingress;
$publisert = explode(' ',$row->publisert);
$publisert = explode('-',$publisert[0]);
$this->publisertLang = $row->publisertLang;
$this->publisert = $publisert[0].'
'.$publisert[2].'/'.$publisert[1];
$this->bilde = $row->bilde;
$this->artikkeltypeid = $row->artikkeltypeid;
}else{
$this->gyldig=0;
$this->feil .= "Ingressen finnes ikke idatabasen;";
}
}
}
//Returnerer et array med de siste $antall artikler fra og med $offset fra
$nettstedid, sortert med den nyeste f�rst.
//(Offset er med for at man lett skal kunne lage neste 50 / forrige 50 linker i
fremvisningen.
//
//INN - nettstedid til nettstedet man vil liste ingresser til, hvilket språk man vil
ha ingresser p�, antall ingresser man vil hente, og offset i disse
//UT - 0 hvis problem oppstod, array med Ingressobjekter hvis alt gikk i orden
function hentIngresser($nettstedid,$typeid,$sprakid,$offset,$antall){
$arr = Array();
$db = new pubSysDB();
if($typeid==0)
$db->query("SELECT artikkelid FROM Ingress WHERE
nettstedid=$nettstedid AND sprakid=$sprakid ORDER BY publisert DESC LIMIT
$offset,$antall");
else
$db->query("SELECT i.artikkelid FROM Ingress i, Artikkel a WHERE
i.artikkelid = a.artikkelid AND a.artikkeltypeid=$typeid AND i.nettstedid=$nettstedid
AND i.sprakid=$sprakid ORDER BY i.publisert DESC LIMIT $offset,$antall");
if($db->num()){
while($row = $db->fetch()){
$arr[] = new Ingress($row->artikkelid,$nettstedid);
}
return $arr;
}else{
return 0;
}
}
// converts any array to an instance of the ingress-class
function array2IngressClass($array)
{
$inst = new Ingress2();
while(list($key, $val) = each($array))
$inst->$key = $val;
return $inst;
}
// converts any class into an array
function class2Arr($class)
{
return (array)$class;
}
// sorts arrays comeing from hentIngresser() descending
function sortClassArray($array)
{
$arr = array();
$sArr = array();
foreach($array as $ent)
{
$arr[] = class2Arr($ent);
$sArr[] = $ent->publisertLang;
}
array_multisort($arr, SORT_DESC, $sArr);
$cM = count($arr);
for($c = 0; $c < $cM; $c++)
$arr[$c] = array2IngressClass($arr[$c]);
return $arr;
}
// dummy-class to allow converting from array to class
class Ingress2
{
var $gyldig; //"1" hvis dette er en konsistent ingress, "0"
hvis det er prolemer som gjør at ingressen ikke kan vises.
var $feil; //Dersom gyldig er "0" finnes feilmeldingene
her, separert med ;
var $artikkelid; //ID til den artikkelen som ingressen er
ingress for
var $nettstedid; //ID til dette nettstedet
var $artikkellink; //Link til selve artikkelen
var $overskrift; //Overskriften i ingressen
var $forfatternavn; //Navn p� forfatteren
var $forfatterlink; //Link til side med info om forfatteren
var $ingress; //Selve teksten i ingressen
var $publisert; //Dato da artikkelen ble publisert
var $publisertLang; //Dato da artikkelen ble publisert, p� format
yyyymmddhhmmss
var $bilde; //URL til ingress-bildet
}
?>
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php