Gå til innhold

Hvordan lage "functions"


Anbefalte innlegg

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 :fun::fun:

Endret av Svendsen
Lenke til kommentar
Videoannonse
Annonse
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.... :no:

 

Litt mer forklaring hadde vært greit..... virka som om du gikk mye "inn og ut" av den echo'n

Lenke til kommentar

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

da blir det ikke helt som jeg vil tror jeg.... hmm :(

Mulig jeg bare for alt i verden IKKE klarer å se det idag :blush:

 

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 :cry:

 

Takker for alle hjelp :thumbup:

Lenke til kommentar

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
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 :D

Lenke til kommentar

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 av Akke
Lenke til kommentar

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

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

Legger du en funksjon i en fil som inkluderes over alt så kan du bruke den overalt :D

 

    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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...