Tag Archive for MySQL

Install Apache2, MySQL5.5 and PHP5.3 on OSX Lion

If you just installed OS X Lion or upgraded from Snow Leopard to Lion and want to use it as a developer web-server so it is possible.

This guide will help you get Apache2, MySQL5.5 and PHP5.3 to work on your machine so you are ready to develop without internet. Read more

MySQL – Easy way to insert rows from one table into a secound

If you are one of the persons there can rip your hair of your head when customers asking you to adding a lot of rows from your MySQL table to another table based on certain requirements.

Then take this little tip possibly helping you to a fun business day
Read more

MySQL cloud – xeround.com

Jeg har søgt lidt efter nået nyt for at se hvordan det vil være at baser sin database på et clouding center der ikke laver andet end at cloude databaser.

Mit valg falder naturligvis på MySQL og jeg vil nu gerne prøve dette for at se om det er bedre, billigere og nemere for mig som udvikler at benytte dette.

Derfor har jeg idag valgt at ligge min personlig blog hos xeround.com som er den udbyder jeg lige faldt over der havde nået med MySQL clouding at gøre.

De benytter Amazon EC2 og det er muligt at placer det i et EU datacenter som gør ping tiden mindre end hvis det havde været i USA eks.

Det er muligt selv at prøve deres løsning ved at oprette en profil på http://xeround.com

phpDB Tool – RC v. 0.1

phpDB Tool er et værktøj til dig der udvikler PHP og gerne vil kunne benytte et framework til databaser ved hjælp af PDO.

Dette projeckt er remlig nyt og består ikke af meget pt. men det er dog muligt at oprette forbindlse og benytte de mest standarte funktioner.

Dette framework kræver du benytter PHP 5.3 og MySQL 5.1 eller nyere, alt dette kan hentes gratis fra Github.

Hent kilde koden: https://github.com/phptech/phpDB-tool

CentOS 5 som webserver

Til at få CentOS 5 som webserver kræver det lige som alle andre server at du skal installer en webserver med php5 og en  datatabase som skal være MySQL.

Apache
Installer Apache ved at skrive

1
yum install httpd

Når den er færdig med at installere Apache skal vi lige følge op på om Apache faktisk køre, det gøres ved at se status for httpd servicesen.

1
/sbin/service httpd status

Køre Apache ikke skal du starte denne services ved at skrive

1
/sbin/service httpd start

Køre du Apache på en server er det vigtigt at Apache starter op sammen med dit system, derfor skal vi nu angive services level nivue og slå den til ved opstart det gøres på denne måde.

1
/sbin/chkconfig --level 3 httpd on

Husk hvis du har firewall aktiveret skal du åbne port 80 for at andre kan komme i kontakt med din server.

PHP
Hvis PHP ikke er installeret kan du gøre det ved at skrive

1
yum install php

Da jeg selv ønsker at køre med PHP 5.3 eller nyre er det ikke muligt for mig at benytte den  version som CentOS stiller til rådighed, derfor må jeg ud og finde en RPM pakke som kan løse det problem jeg har.

Jeg har valgt denne blog http://www.webtatic.com/blog/2009/06/php-530-on-centos-5/ som har guidet mig igennem til at installere den nyeste PHP version som der ønskes.

Først skal vi tillade webtatic’s RPM pakker i systemet det gøres ved at accepter RPM’s godkendt fra webtatic at blive installeret via yum.

1
rpm -ivh http://repo.webtatic.com/yum/centos/5/x86_64 -i /webtatic-release-5-1.noarch.rpm

Nu er det muligt at installere PHP fra webtatic ved at skrive

1
yum --enablerepo=webtatic install php

Når PHP skal updateres skal du også her være sikker på den bliver updateret fra webtatic og gøres ved at skrive.

1
yum --enablerepo=webtatic update php

MySQL
Jeg ønsker at benytte MySQL 5.5+ på min server, til det findes denne version detsværre heller ikke i selve CentOS og derfor bruger jeg igen webtatic til at bruge dette. start med at installere libmysqlclient

1
yum install libmysqlclient15 --enablerepo=webtatic

Nu ønsker vi at installere MySQL 5.5+ som gøres sådan

1
yum install mysql55 mysql55-server --enablerepo=webtatic

Nu skal du starte MySQL databasen og lad den starte op hver gang systemet genstartere.

1
2
service mysqld start
/sbin/chkconfig --levels 235 mysqld on

Hvis du oplever samme problem som jeg gjore ( chown: `mysql’: invalid user  ) kan det skyldes at gruppen og brugeren ikke er oprettet til MySQL endnu, det kan gøres ved at skrive følgene.

1
2
groupadd mysql
useradd -g mysql mysql

Skift nu dit kodeord til databasen så andre ikke har adgang til din database.

1
/usr/bin/mysqladmin -u root password 'nyt-kodeord'
1
yum --enablerepo=webtatic install php-pdo php-mysql

Basic MySQL connect i PHP5 – Video

PHP5 – Basic MySQL5 connect from Paris Nakita Kejser on Vimeo.

Learn howto connect to MySQL5 database, this its a basic tutorial for you if you will laern how to use define to username, password,hostname and databasename.

tanks for you visit.

Udskriv flere gruppe ider ud med kun 1 titel

Idag kom jeg på et kæmpe problem som jeg enligt ikke havde tænkt over før, jeg har lavet SQLen om så den ikke linjere det rigtig som jeg sad og arbjedet med på grund af sikkerheden.

Det der var mit problem var jeg havde nogle kategori grupper med samme navn som skulle printes ud til brugeren men selve kategorien må kun forkomme 1 gang pr titel.

men da man har en gruppe der kan hede Unisex0-2år, unisex2-5år, pige0-2år og dreng0-2 år og alle 4 kategoriere faktisk har produkter indskrvet med en kategori “Fodtøj” gjore at når jeg brugte GROUP BY i SQL at den så samle de her 4 kategoriere med Fodtøj til 1 titel som også var ganske godt, men 1 id som skulle dække alle 4 det var knap så heldigt.

den måde jeg valgte at løse det gjore jeg ved at skrive følge eks. ind og teste at det virket, det var umilbart mit bedste skud på at få det til at gøre som jeg ville have det til, jeg modtager gerne flere eks. hvis i sider der ude og tænker “hold da kæft hvorfor gjore han ikke sådan her” :0)

    1 <?php
    2 $resObj = mysql_query( "
    3 SELECT
    4     c.category_title,
    5     c.category_id
    6
    7 FROM
    8     cateogry c INNER JOIN product p ON c.category_id = p.catid
    9
   10 WHERE
   11     c.group IN('child02','child25','girl02','boy515')
   12
   13 GROUP BY
   14     c.category_id
   15
   16 ORDER BY
   17     c.category_title
   18 " );
   19 $myspace = ' - '. $space;
   20 // Create keys
   21 while( $rowObj = mysql_fetch_object( $resObj ) )
   22 {
   23     if( array_key_exists( $rowObj->category_title , $array ) )
   24     {
   25         array_push($array[$rowObj->category_title], $rowObj->category_id);
   26     }
   27     else
   28     {
   29         $array[$rowObj->category_title][] = $rowObj->category_id;
   30     }
   31 }
   32
   33 // Slice keys out whit ,
   34 foreach( $array AS $key => $value )
   35 {
   36     $iv = 0;
   37     foreach( $value AS $ids )
   38     {
   39         if ( $iv == 0 )
   40             $slice = $ids;
   41         else
   42             $slice .= ','. $ids;
   43
   44         $iv++;
   45     }
   46
   47     echo '<option value="'. $slice .'">'. $space . $key .'</option>';
   48 }
   49 ?>

Det skal siges det jeg har fået ud af denne kode er at den tager alle mine grupper som passer på det match jeg bedere om, smider det i et array, hvis min array key findes pusher den bare til det existerne array og hvis ikke lave den et nyt.

Der næst køre jeg det igennem en foreach løkke og printer så daten ud, lige inden udprint skal jeg have mine id’er i komma formart så jeg kan ligge det dirakte ind i en “IN” funktion i MySQL det gøres ved at køre endnu en foreach løkke igennem og samle mine id’er.

jeg håber på der er nogle der evt. sider med et bud på en smartere måde der inde, og ellers håber jeg at det her eks. er brugbart for jer andre der måske sider i samme suppedas.

Hent indhold ud mellem et tids intaval

Til tider er der at man har brug for at kunne hente nået data ud eks. fra et enkle døgn fra en bestemt dato, jeg har en remlig simple løsning til dette som jeg syndes jeg vil dele med jer der ude.

SELECT
    *

FROM
    table1 t1

WHERE
    t1.push_date >= '2009-07-09 00:00:00' AND
    t1.push_date <= '2009-07-09 23:59:59'

Jeg håber i kan bruge dette eks. til nået, og post gerne hvis i har andre måder man via SQL kan hente dette ud, dette er et eks. som jeg har testet i MySQL 5.1

MySQL Developer I Exam

Så blev jeg færdig med at læse MySQL Developer I Exam, det har taget lidt tid men det har abslut været det vær, nu skal jeg lige tage lidt test for at se hvor meget der hænger ved og så vil jeg op til en exam i MySQL så leds jeg kan få et bevis på at jeg kan dette :o)

Kan varmt anbefalde at folk der godt kan lide SQL kode at læse den af den simple grund at den går i dybte i nogle af de ting som jeg tror folk bare tager som en selv følge uden at tænke over hvorfor det funger sådan.

Brugen af INSERT INTO … ON DUPLICATE KEY UPDATE

MySQL har et meget nice funktion man kan benytte når det er man er ved at INSERT nået til databasen, denne funktion hedder ( ON DUPLICATE ) og kan benyttes hvis ens INSERT data allerade findes til et PRIMAY KEY og derfor skal updaters isted for, først skal du have en test table som ser sådan her ud.

CREATE TABLE log (
 name CHAR(30) NOT NULL,
 location CHAR(30) NOT NULL,
 counter INT UNSIGNED NOT NULL,
 PRIMARY KEY (name,location)
);

Der næst skal du prøve at lave en INSERT statemen med en ON DUPLICATE inden i, denne kan se så leds ud.

INSERT INTO
 log ( name, location, counter )
 VALUES ( ‘Tantor’, ‘Waterhole’, 1)

ON DUPLICATE KEY

UPDATE
 counter=counter+1;

Når det er gjort prøv så at køre din INSERT statemen 2 gange, første gang vil den retuere nået ala 1 row in set ( 0.00 ) sec, anden gang du udføre den vil det se nået ala sådan her ud ( Query Ok, 2 rows affected ( 0.00 ) sec )

Grunden til at dden retuere 1 og 2 i rows er at hvis den er helt ny og bliver oprettet viledn reutere 1 og hvis den findes og bliver updatert vil den retuere 2.