Omvänd negativa och positiva tal

Ibland kan man vilja omvända tal från positivt till negativt och tvärt om. Då kan man använda sig av följande enkla funktion:

function turn($x)
{
$y = abs($x);
if ($y == $x)
{
return -$y;
}
else
{
return $y;
}
}

$omvant = turn($tal);

Sådärja.

PHP det populäraste skriptspråket?

Hittade en artikel på IDG.se från Computer Sweden om vikten av att välja rätt programmeringsspråk för att hålla bra produktivitet. Det var väl egentligen inga större nyheter i artikeln men de visade en liten intressant graf från Tiobe om de mest populära programmeringsspråken. Nu skulle väl inte en C++-kodare kalla PHP för ett programmeringsspråk, men om vi enbart kikar på skriptspråken så visar grafen på att PHP ligger i topp.

Det finns dock en stor kategori för ”övriga” och vad vet jag, 100% av den kanske är ASP, vilket skumt nog inte finns med i grafen.

Kika på grafen på:
Effektivare med rätt språk

När vi ändå är inne och springer på IDG.se kan man ju passa på att läsa recensionen av Dreamweaver CS5 Beta också. Dreamweaver var en liten favorit hos mig på den gamla goda tiden. Kanske är dags att kika in igen, när jag har 4790 kronor att bränna.

Skapa slumpmässigt lösenord

Det händer då och då att man vill skapa ett slumpmässigt lösenord, eller ett slumpmässigt filnamn eller var det nu kan vara. Följande lilla funktion skapar enkelt en sträng. Kanske ingenting att använda när en extrem grad av säkerhet behövs, men för mindre applikationer, varför inte? :)


function CreatePassword()
{
$tecken = "abcdefghijklmnopqrstuvwxyz0123456789";

$pass = ””;
$i = 0;

while ($i < 10)
{
$num = rand(0,35);
$tmp = substr($tecken, $num, 1);
$pass .= $tmp;
$i++;
}
return $pass;
}

// Fixa ett slumpigt lösenord
$password = CreatePassword();

PHP-funktion för att se om en sträng är i VERSALER

Det finns de på internet som hela tiden envisas med att ha Caps Lock intryckt. Att enbart skriva med versaler är dumt på alla de sätt och vis. Om man arbetar med inskriven text från andra (till exempel användarkommentarer) händer det då och då att man får in en textsträng som enbart är skriven i versaler. Självklart vill man inte publicera den så på sin egen sida, då det ju ser synnerligen oproffsigt ut.

Följande PHP-funktion kollar om en sträng är skriven enbart i caps.


function caps($string)
{
if (strtoupper($string) == $string)
return(TRUE);
else
return(FALSE);
}

När vi då använder den i vår kod kan vi sedan enkelt göra lite grejor med strängen.


if(caps($string))
{
$string = ucfirst(strtolower($string));
}

Om vi nu hade strängen: ”JAG ÄR ETT PUCKO SOM SKRIVER MED STORA BOKSTÄVER!”, så har den blivit: ”Jag är ett pucko som skriver med stora bokstäver!”.

Lite bättre helt enkelt.

Anledningen till att inte bara köra strtolower() och ucfirst() på en gång utan att kolla om allt är i versaler är att annars kan man köra över vettiga meningar. ”Jag läste i DN i morse” skulle då t.ex. bli ”Jag läste i dn i morse.”

Förkorta en textsträng i PHP

Då och då stöter man på textsträngar som är lite längre än vad man vill att de ska vara. En del rader blir kanske för långa för att det ser bra ut i en tabell eller så vill man bara visa inledningen av ett stycke från en bloggpost.

Hämta data från databasen

Vi har nu i tidigare avsnitt skapat databasen och sedan lagt in data i den. Men hur kul är det egentligen om man inte vet hur man plockar fram sin data igen?

Frukta ej, Antipod kommer till undsättning.

För att hämta rader från databasen använder vi oss enklast av funktionen mysql_fetch_array(). Genom att använda denna funktion hämtas varje rad i databasen som man frågar efter i sin SQL-sats. För att hämta alla frukter i vår skapade databas använder vi oss av följande SQL-sats:

SELECT * FROM frukter ORDER BY frukt

Vi har här med hjälp av SQL-kommandot SELECT valt de kolumner vi vill hämta från databasen ”frukter”. I det här fallet visar asterisken att vi vill välja alla kolumner som finns i databasen. Vi sorterar sedan resultatet alfabetiskt från frukt-kolumnen.

Vi lägger in detta i följande PHP-kodsnutt:

$sql = "SELECT * FROM frukter ORDER BY frukt";
$resultat = mysql_query($sql, $db);
while($kolumn = mysql_fetch_array($resultat))
{
$frukt_id = $kolumn['id'];
$frukt = $kolumn['frukt'];
echo "$frukt_id, $frukt<br />";
}

Genom att använda oss av en while-loop går vi systematiskt igenom varje rad i resultatet av MySQL-frågan (som i det här fallet är lika många rader som det finns i databasen). Vi lägger in varje rads kolumner temporärt i var sin variabel och skriver sedan ut resultatet rad för rad.

Sådärja, då har vi hämtat data från databasen för första gången.

Lägg till data i tabellen

Vi har nu skapat en tabell och behöver fylla den med data för att den ska vara minsta användbar. Med hjälp av mysql_query kommer vi att fylla på med data med hjälp av en ganska enkel SQL-sats som repeteras några gånger och ser ut som följer:

INSERT INTO `frukter` (`id`, `frukt`) VALUES (NULL , 'Banan');
INSERT INTO `frukter` (`id`, `frukt`) VALUES (NULL , 'Äpple');
INSERT INTO `frukter` (`id`, `frukt`) VALUES (NULL , 'Citron');
INSERT INTO `frukter` (`id`, `frukt`) VALUES (NULL , 'Päron');

Dessa fyra SQL-satser sätter in fyra nya rader i tabellen ”frukter”. Id-kolumnen satte vi till auto increment när vi skapade tabellen och detta gör att NULL värdet i själva verket ändras till siffror i stiganda ordning. Banan får id 1, Äpple 2 och så vidare. I kolumnen frukt sätter vi in namnen på frukterna.

För att få in dessa rader i databasen använder vi oss av mysql_query.

$sql = "INSERT INTO `frukter` (`id`, `frukt`) VALUES (NULL , 'Banan');
INSERT INTO `frukter` (`id`, `frukt`) VALUES (NULL , 'Äpple');
INSERT INTO `frukter` (`id`, `frukt`) VALUES (NULL , 'Citron');
INSERT INTO `frukter` (`id`, `frukt`) VALUES (NULL , 'Päron');";

$result = mysql_query($sql,$db);

Vi kan också lägga till lite felhantering för eventuell debugging.

if (!$result)
{
    die('Fel: ' . mysql_error());
}

Nu har vi fyra rader i vår databas. Nästa gång ska vi plocka fram dem ur databasen.

Skapa en tabell i databasen

I föregående inlägg skapade vi en koppling till databasen i vår fil connect.php.

För att vi ska kunna använda databasen till något lämpligt måste det givetvis finnas lite data i den. Det enklaste sättet att lägga till och administrera en databas med PHP och MySQL är genom att använda sig av phpMyAdmin. De mesta webbhotell brukar ha detta som standard. Skulle man inte ha det brukar det gå fint att installera själv.

Det går också att skapa dina tabeller direkt i dina PHP-script. Lite mer omständigt, men duger för att snabbt skapa en tabell med lite data.

Först och främst måste vi inkludera vår connect.php-fil som beskrevs i förra inlägget.

include ("connect.php");

Vi behöver nu använda oss av lite SQL för att skapa en tabell. Följande SQL-sats skapar en tabell som heter frukter och som innehåller två fält: id och frukt. Id-fältet används som primärnyckel och är satt som ”Auto increment” vilket innebär att Id-fältets värde ökas automatiskt för varje insatt rad. Frukt-fältet är satt som en varchar på 255 tecken; ett variabelt textfält som kan vara max 255 tecken stort.

CREATE TABLE frukter (id INT NOT NULL AUTO_INCREMENT , frukt VARCHAR( 255 ) NOT NULL , PRIMARY KEY ( `id` )) TYPE = MYISAM;

För att kommunicera med MySQL använder vi kommandot mysql_query(). Mysql_query() använder sig av en SQL-sats och databas-identifikatorn som vi döpte till $db i vår connect.php-fil. I följande kodsnutt skapar vi en ny tabell i vår databas med hjälp av vår SQL-sats.

$sql = "CREATE TABLE frukter (id INT NOT NULL AUTO_INCREMENT , frukt VARCHAR( 255 ) NOT NULL , PRIMARY KEY ( `id` )) TYPE = MYISAM;";
$resultat = mysql_query($sql, $db);

Vi kan också lägga in lite felbeskrivning i vår kod med hjälp av mysql_error(). Följande snutt gör att vårt script slutar exekvera och visar ett felmeddelande om vår SQL-sats är felaktig.


if (!$resultat)
{
die('Fel: ' . mysql_error());
}

Tabellen är nu skapad och i nästa inlägg kommer vi att lägga till data till vår nya tabell.

Skapa en databaskoppling mellan PHP och MySQL

För att kunna använda MySQL-databasen i dina PHP-sidor behöver man skapa en koppling mellan dem. Detta görs med hjälp av PHP-funktionen mysql_connect. Mysql_connect använder sig av tre olika variabler för att kunna skapa kopplingen: host-adressen till din MySQL-server, ditt MySQL-användarnamn och ditt MySQL-lösenord.

Eftersom man måste använda denna funktion i varje PHP-fil där man tänker använda databasen kan det vara lämpligt att lägga connect-koden i en separat fil som sedan hämtas med hjälp av include()-kommandot. Fördelen med det här är, förutom att man slipper skriva samma kodsnutt flera gånger, att om man gör en ändring i connect-koden (man kanske byter lösenord) så slipper man göra detta på flera ställen i koden.

Följande kod skapar en koppling till databasen. I exemplet används localhost som host för databasservern, detta kan givetvis skilja lite beroende på ditt webbhotell. Hör med ditt webbhotell om de inte skickat dig den uppgiften. Längst ner i koden väljer vi också vilken databas vi vill använda genom mysql_select_db.

$db_host = "localhost";
$db_user = "användarnamn";
$db_pass = "lösenord";
$db_databas = "namnet på databasen";

$db = mysql_connect($db_host, $db_user, $db_pass);
if(!$db)
{
die('Kunde inte ansluta: ' . mysql_error());
}

mysql_select_db($db_databas,$db);

Nu har vi all kod vi behöver för att kunna börja använda databaser i PHP. Spara denna kodsnutt i en egen fil vid namn connect.php. Glöm inte att alla PHP-filer måste börja med <?php och sluta med ?>, annars kommer servern inte veta att den ska tolka koden som just php.

När kodsnutten är sparad i connect.php kan vi sedan enkelt hämta den i våra andra script genom följande:

include ("connect.php");

Hej världen!

Antipod (-o’d el. -å’d)

På denna något kryptiska domän som inte har någonting med ordets betydelse att göra kommer det snart att finnas små tips och tricks om programmering med PHP och hur man använder PHP tillsammans med MySQL. Allt på ett förhoppningsvis pedagogiskt sätt och lämpat för en total nybörjare.

PHP är ett scriptspråk som används för att producera dynamiska webbsidor. PHP är serverbaserat vilket innebär att alla script exekveras på servern och inte i din webbläsare som till exempel Javascript gör. För webbläsaren ser en PHP-sida helt enkelt ut som vilken HTML-sida som helst. Språket skrevs 1995 av Rasmus Lerdorf.

MySQL är ett relationsdatabassystem tillverkat av det svenska företaget MySQL AB, som numera är en del av Sun Microsystems. MySQL använder sig av Structured Query Language för att få fram och manipulera data från en databas. SQL-språket härstammar från det tidiga sjuttiotalet och utvecklades av IBM.

Det fina med PHP och MySQL är att de är alldeles gratis att använda. Det är bara att tanka ner och installera, eller att skaffa sig ett konto på något av de webbhotell som erbjuder de båda (vilket majoriteten av webbhotellen gör).