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