Tag Archive for 'mysql_select_db'

Integrare un feed RSS ad un sito php

Le premesse teoriche sono:

  • hai un sito con una sezione che viene aggiornata più o meno regolarmente, ad esempio vengono postate delle notizie, o vengono inseriti dei prodotti
  • vuoi creare un sistema di feed così che gli utenti possano essere a conoscenza degli aggiornamenti senza necessariamente doversi ricordare di visitare il sito
  • decidi di creare il Feed RSS per le notizie

Le premesse tecniche sono:

  • hai un sito sviluppato con php e mysql
  • il database mysql utilizzato si chiama "basedati"
  • la tabella interessata si chiama "news"...
  • ... e contiene i campi "id, titolo, articolo, data_pubblicazione"

Ecco l'esempio, ampiamente perfezionabile, di come creare un Feed.
Crei un unico file e lo chiami ad esempio rss.php, dentro metti:
- una prima funzione che serve per ripulire il testo da eventuali caratteri poco graditi al linguaggio XML... il linguaggio del Feed RSS appunto. Questo riportato è un esempio, è possibile fare meglio ovviamente.

PHP:
  1. function rss_cleaner($text){
  2. $text=utf8_encode(rtrim(ltrim(str_replace(array("’",">","<","\"","\n","\r","\t","<br />","<br>","<BR>","&nbsp;","  ")," ",$text))));
  3. $text=str_replace(array("&"),"e",$text);
  4. return $text;
  5. }

- l'intestazione del Feed

PHP:
  1. header("Content-type: text/xml; charset=utf-8");
  2. echo "<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">\n";
  3. echo "<channel>\n";
  4. echo "<title>Il titolo del mio sito</title>\n";
  5. echo "<link>http://www.ilmiosito.com</link>\n";
  6. echo "<description>Una breve descrizione del sito o del feed</description>\n";
  7. echo "<copyright> Copyright 2009 ilmiosito.com </copyright>\n";
  8. echo "<docs>http://blogs.law.harvard.edu/tech/rss</docs>\n";
  9. echo "<managingEditor>managingmail@ilmiosito.com (stefo)</managingEditor>\n";
  10. echo "<webMaster>wmmail@ilmiosito.com (stefo)</webMaster>\n";
  11. echo "<language>IT-it</language>\n";

- ed infine la lettura degli articoli e la stampa sul file

PHP:
  1. $db_host="miohostmysql"; // l'host mysql al quale mi connetto
  2. $db_user="miousermysql"; // il mio utente mysql
  3. $db_pass="miapassmysql"; // la mia password mysql
  4.  
  5. // ora mi connetto e seleziono il database
  6. $connection=mysql_connect($db_host,$db_user,$db_pass);
  7. mysql_select_db($db_db,$connection);
  8.  
  9. // seleziono le ultime 10 notizie pubblicate e le stampo in formato XML con un ciclo while
  10. $query="select * from news ORDER BY ID DESC LIMIT 10";
  11. $result = mysql_query($query);
  12. while($print = mysql_fetch_array($result)) {
  13.  
  14. $titolo=rss_cleaner($print['titolo']);
  15. $articolo=rss_cleaner($print['articolo']);
  16. $id=rss_cleaner($print['ID']);
  17. $data_pubblicazione=$print['data_pubblicazione'];
  18. $data_pubblicazione = strtotime ($data_pubblicazione); // trasformo la data in Unix timestamp
  19. $data_pubblicazione=date(r,$data_pubblicazione); // formatto la data secondo la RFC 822 gradita da XML
  20.  
  21. // parte la stampa
  22. <item>
  23. <title>$titolo</title>
  24. <link>http://www.ilmiosito.com/articolo.php?ID=$id</link>
  25. <guid isPermaLink=\"false\">http://www.ilmiosito.com/articolo.php?ID=$id</guid>
  26. <pubDate>$data_pubblicazione</pubDate>
  27. <description>$articolo</description>
  28. </item>
  29. ";
  30.  
  31. }
  32. </channel>
  33. </rss>
  34. ";

Il Feed a questo punto è pronto, ultimi accorgimenti sono:
- indicare l'esistenza del Feed nelle intestazioni di pagina, prima della chiusura del tag head

PHP:
  1. <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://www.ilmiosito.com/rss.php" />
  2. </head>

e controllare la validità del Feed stesso: http://feedvalidator.org/

Connettersi ad un database mysql

Partendo dal presupposto che un database già lo hai, vediamo cosa devi fare per connettertici così da porterlo poi utilizzare negli script.
Per prima cosa definiamo i dati necessari alla connessione

PHP:
  1. $db_host="localhost";
  2. $db_user="utente";
  3. $db_pass="password";
  4. $db_name="nome_database";

L'host è "l'indirizzo" da cui si può raggiungere MySQL.
User e Pass sono rispettivamente nome e password dell'utente che ha accesso a quel servizio mysql.
Ed infine il nome del database
Ora ci possiamo connettere al mysql con la funzione mysql_connect verificandone l'eventuale errore

PHP:
  1. $db_conn = mysql_connect($db_host,$db_user,$db_pass)   
  2.     or die("Errore nella connessione, verificare i parametri: " . mysql_error());

ed infine selezionare il database cone la funzione mysql_select_db. Anche qui possiamo verificare l'eventuale errore

PHP:
  1. mysql_select_db($db_name, $db_conn)
  2.     or die ("Errore nella selezione del database, verificare i parametri: " . mysql_error());

Appunti: per chiudere la connessione utilizzare mysql_close($db_conn);