Svendsen Skrevet 8. januar 2004 Del Skrevet 8. januar 2004 (endret) Hvordan lager man functions? altså at man da lager en function som heter HEI og HEI igjen er lik: <?php echo "hei"; ?> så da kan man da i en if settning da hvis variabel er like hei (bare eks.) kalle opp HEI Noen som forsto dette? HAr vært borti det i asp, er veldi kjekt ved listing av nyheter På forhånd takk Endret 8. januar 2004 av Svendsen Lenke til kommentar
hackinnen^ Skrevet 8. januar 2004 Del Skrevet 8. januar 2004 function hei ($ord, $html) { echo "<" . $html . ">" . "antall argumenter" . func_num_args(). "og $ord" . "</" . $html . ">"; } hei("ORDET", "b"); Enkelt og greit. Lenke til kommentar
Svendsen Skrevet 8. januar 2004 Forfatter Del Skrevet 8. januar 2004 function hei ($ord, $html) { echo "<" . $html . ">" . "antall argumenter" . func_num_args(). "og $ord" . "</" . $html . ">"; } hei("ORDET", "b"); Enkelt og greit. veit ikke helt om jeg tok den jeg.... Litt mer forklaring hadde vært greit..... virka som om du gikk mye "inn og ut" av den echo'n Lenke til kommentar
Ueland Skrevet 8. januar 2004 Del Skrevet 8. januar 2004 En funksjon som skal si det jeg ber den om å sie med <h1> takker før og etter function test($data) { echo '<h1>'.$data.'</h1>'; } her kjører jeg funksjonen: test(heisann!); resultatet blir da: <h1>heisann!</h1> Hvis jeg ikke tar helt feil nå så skal det være noe slikt Lenke til kommentar
Svendsen Skrevet 8. januar 2004 Forfatter Del Skrevet 8. januar 2004 da blir det ikke helt som jeg vil tror jeg.... hmm Mulig jeg bare for alt i verden IKKE klarer å se det idag Men i asp blir det sånn: lage: Function SisteNyheter() strJet = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("/database/web.mdb") & ";Persist Security Info=False" Set objRst = CreateObject("ADODB.RecordSet") strsql = "SELECT * FROM innlegg ORDER BY innleggid DESC" objRst.Open strSql, strJet, adReadOnly do while Antall < 10 and objRst.EOF=False Antall = Antall + 1 Response.Write "<center><table width=""99%"">" Response.Write "<tr>" Response.Write "<td bgcolor=""#888EAE""><font class=""txtStandard""><b><a href=""index.asp?tjeneste=LesNyhet&innleggid=" & objRst.Fields("innleggid") & """>" & objRst.Fields("overskrift") &"</a></b> - " & objRst.Fields("Dato") & "</td>" Response.Write "</tr><tr>" Response.Write "<td><font class=""txtStandard""> " & objRst.Fields("teaser") & "</td>" Response.Write "</tr><tr>" Response.Write "<td align=""right""><font class=""txtStandard""><a href=""index.asp?tjeneste=leskommentar&innleggid=" & objRst.Fields("innleggid") & """>Kommentarer " & TellKommentarer(objRst.Fields("innleggid")) & "</a></td>" Response.Write "</tr>" Response.Write "</table></center>" objRst.MoveNext loop objRst.close End Function kalle opp skriver man bare: SisteNyheter jeg skal bruke dette til å liste ute fra MySQL databse med PHP Sorry hvis jeg virker litt trang synt Takker for alle hjelp Lenke til kommentar
Ueland Skrevet 8. januar 2004 Del Skrevet 8. januar 2004 utkast fra spørring $query_annonse = "Select id FROM annonser WHERE id = x LIMIT 1"; $annonse = mysql_query($query_annonse, $marked) or die(mysql_error()); $row_annonse = mysql_fetch_assoc($annonse); skal jeg ha en annonse id da skriver jeg $row_annonse['id']; enkelt å grett Lenke til kommentar
Svendsen Skrevet 8. januar 2004 Forfatter Del Skrevet 8. januar 2004 utkast fra spørring $query_annonse = "Select id FROM annonser WHERE id = x LIMIT 1"; $annonse = mysql_query($query_annonse, $marked) or die(mysql_error()); $row_annonse = mysql_fetch_assoc($annonse); skal jeg ha en annonse id da skriver jeg $row_annonse['id']; enkelt å grett Ja greit dette er jo helt nromal uthenting fra db Men det jeg vil ha er at jeg kan ei fil som heter functions.php og så lager jeg flere funksjoner inn i den. includer den på toppen av siden min også når jeg skal liste ut linker da f.eks så kaller jeg opp funksjonen linker[/] og da gjør den dette: <?php $kat = $_GET['kat']; if($kat) { $hostname="xxxx"; $user="xxx"; $pass="xxx"; $dbase="xxxx"; $connection = mysql_connect("$hostname" , "$user" , "$pass"); $db = mysql_select_db($dbase , $connection); $q="SELECT * FROM linker WHERE kategori = '$kat' order by linkid"; $result= mysql_query($q, $connection) or die ("Could not execute query : $q." . mysql_error()); while ($row=mysql_fetch_array($result)) { $navn=$row['navn']; $url=$row['url']; $beskriv=$row['beskriv']; echo "<p><b><a href='$url'>$navn</a></b><br>"; echo "$beskriv</p>"; } } else { echo "Du må velge en kategori"; } ?> Lurer på om det var en misforståelse ute å gikk på pga BAD forklaring Lenke til kommentar
Akke Skrevet 8. januar 2004 Del Skrevet 8. januar 2004 (endret) Jeg pleier ihvertfall og ha en fil per spørring, men lage en connection øverst på index.php som alle spørringer kan bruke. Altså slik. index.php //lager databasekobling $hostname="xxxx"; $user="xxx"; $pass="xxx"; $dbase="xxxx"; $connection = mysql_connect("$hostname" , "$user" , "$pass"); $db = mysql_select_db($dbase , $connection); //her vil jeg vise fra valgt kategori (det er html rundt denne) include ("visvalgtkat.php"); //her kan jeg feks. vise siste 5 fra forum include ("sisteforum.php"); mysql_close($connection); visvalgtkat.php <?php $q="SELECT * FROM linker WHERE kategori = '$kat' order by linkid"; $result= mysql_query($q, $connection) or die ("Could not execute query : $q." . mysql_error()); while ($row=mysql_fetch_array($result)) { $navn=$row['navn']; $url=$row['url']; $beskriv=$row['beskriv']; echo "<p><b><a href='$url'>$navn</a></b><br>"; echo "$beskriv</p>"; } } else { echo "Du må velge en kategori"; } ?> Husk at du må sette $kat i visvalgtkat.php på et vis. (via url f.eks) Brukte din kode som du ser, så den må virke. Endret 8. januar 2004 av Akke Lenke til kommentar
Svendsen Skrevet 8. januar 2004 Forfatter Del Skrevet 8. januar 2004 Akke: Sorry men du bomma totalt Og nå veit jeg ikke fler måter å forklare på..... Link greia funker fett den.... Men jeg vil lage en funksjon av den som jeg lett kan hente frem uten å måtte skrive alt to ganger.... Lenke til kommentar
Torbjørn Skrevet 8. januar 2004 Del Skrevet 8. januar 2004 jeg forstår ærlig talt ikke hva du ikke forstår... en funksjon gjør det den er definert til å gjøre hver gang du kaller den opp, dette er vel uavhengig av om man skriver i php eller asp??? i fila "inkluderdenne.php": <?php function mysqlRad($id){ if(!is_numeric($id)) return; $q = mysql_query("select * from tabell where id='$id'); return mysql_fetch_array($q); } ?> så i "hvilkensomhelstannenfil.php": <?php include 'inkluderdenne.php'; $rad = mysqlRad(4); # henter ut rad med id=4. echo "<h1>$rad[subject]</h1>"; echo "<div class='message'>$rad[message]</div>"; ?> Lenke til kommentar
magikern Skrevet 8. januar 2004 Del Skrevet 8. januar 2004 La meg se først om jeg har rett : du vil kjøre ut noen linjer fra en database og dette vil du gjøre med et funksjonskall, da tenker jeg at vi setter det opp som en class... først har vi en class for database tilkobling (siden jeg tilfeldigvis hadde en liggende) <?php class db { var $db_type; var $db_server; var $db_name; var $db_user; var $db_pass; var $db_persistent; var $dbh; function db() { $this->db_type = 1; $this->db_server = 'localhost'; $this->db_name = 'db'; $this->db_user = 'user'; $this->db_pass = 'password'; $this->db_persistent = 0; $this->db_connect(); } //end constructor function db_connect () { // mySQL if($this->db_type == 1) { if ($this->db_persistent) $this->dbh = @mysql_pconnect($this->db_server, $this->db_user, $this->db_pass); else $this->dbh = @mysql_connect($this->db_server, $this->db_user, $this->db_pass); if (!$this->dbh) { die(mysql_error()); return; } if (!@mysql_select_db($this->db_name, $this->dbh)) { die(mysql_error()); return; } } //end mySQL } //end db_connect() function db_query ($query) { // mySQL if($this->db_type == 1) { $result = mysql_query($query, $this->dbh); if(!$result){ die(mysql_error()); return; } return $result; } //end mySQL } //end db_query() function db_numrows ($result) { switch($this->db_type) { case 1: //mySQL return mysql_num_rows($result); } //end switch } // end db_numrows() function db_fetch_array (&$result) { switch($this->db_type) { case 1: //mySQL return mysql_fetch_array($result); } //end switch } //end db_fetch_array() } //end class db ?> så kommer en class med din funksjon (sikkert greit å legge de i samme fila jeg bare her deler her for å skille de fra hverandre): denne er skrevet i full fart nå og ikke testet så jeg veit ikke egentlig om det fungerer, men prøv / feil / spørr... <?php class linker { var $kat; var $db; var $row; var $result; var $res; function linker() { $this->kat = $_GET['kat']; $this->db = new db; $this->row = ""; $this->result = ""; $this->result = ""; $this->res = ""; } function link() { if(isSet($this->kat) || !empty($this->kat)){ $query = "SELECT * FROM linker WHERE kategori = '".$this->kat."' order by linkid"; $this->result = $this->db->db_query($query); while($this->row = $this->db->db_fetch_array($this->result){ $this->res = "<p><b><a href=\"".$this->row['url']."\">".$this->row['navn']."</a></b><br>".$this->row['beskriv']."</p>"; } }else{ $this->res = "Du må velge en kategori!!"; } return $this->res; } } ?> i fila du skal skrive ut dette trenger du bare å slenge inn : $linker = new linker; echo $linker->link(); men som sagt er jeg ikke 100% sikker på hva du egentlig mente (ble litt forvirret da alle før meg tok feil)... Lenke til kommentar
Ueland Skrevet 8. januar 2004 Del Skrevet 8. januar 2004 Legger du en funksjon i en fil som inkluderes over alt så kan du bruke den overalt function user_loggedin() { global $row_session_check; if ($row_session_check['uid'] == "1") { return "1"; } else { return "0"; } } den funksjonen inkluderer jeg fra et en fil som inkluderes overalt og da trenger jeg bare skrive user_loggedin(); og da får jeg resultatet uansett hvor Hvis det er snakk om Mysql så kan du jo se om det er en mysql_free_result som lager tull Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå