PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 03-10-2014 18:33:38

Danamel
Membre
Inscription : 03-10-2014
Messages : 1

Modification script vers php5.5

Bonjour,

J'avais créé il y a quelques années avec déjà beaucoup de mal un script personnalisé pour afficher le saint du jour sur un site qui fonctionnait très bien.

L'hébergeur m'ayant fait passer à php5.5 ce script ne fonctionne plus.

J'ai essayé de le modifier pour remplacer mysql par PDO en suivant des tutoriels mais je n'arrive à rien.

Voici mon code d'origine :

<?php
$host = "localhost";
$nom_utilisateur = "root";
$password = "";
$base = "mabase";
/***************************
Fin des paramètres de connexion
***************************/

$message = "<span id='jour'>Aujourd'hui nous fêtons<br /></span>"; //message pour indiquer la fête d'aujourd'hui.
    $jour = date("d");
    $mois = date("m");
    mysql_connect($host, $nom_utilisateur, $password);
    mysql_select_db($base);
    mysql_query("SET NAMES 'utf8'");
    $saint = mysql_query('SELECT fete, sexe, adresse FROM calendrier WHERE jour = '.$jour.' AND mois = '.$mois) or die ('Erreur mysql'.$sql.
    mysql_error());
    mysql_close();
    $donnees = mysql_fetch_assoc($saint);
    $sexe = $donnees['sexe'];
    if($sexe == 'M') {
    $id = 'saint';
    }
    else {
    $id = 'sainte';
    }
    echo $message . '<a class="lien_ext_saint" href="'.$donnees['adresse'].'" id="'.$id.'" >'.$donnees['fete'].'</a>';
    $donnees['fete'] == null;
?>

et le script en cours de modification ne fonctionnant pas :

<?php
   $jour = date('d');
   $mois = date('m');
   try
   {
   $bdd = new PDO('mysql:host=localhost;dbname=phpbb', 'root', '');
   }
   catch (Exception $e)
   {
    die('Erreur : ' . $e->getMessage());
  }
  $req = $bdd->prepare('SELECT fete, sexe, adresse FROM calendrier WHERE jour = :jour AND mois = :mois');
  $req->binValue(':jour', $jour, PDO::PARAM_STR);
  $req->binValue(':mois', $mois, PDO::PARAM_STR);
  $req->execute();
  while  ($donnees = $req->fetch())
  {
   $sexe = $donnees['sexe'];
   if($sexe == 'M') {
   $id = 'saint';
   }
   else {
   $id = 'sainte';
   }
   }
   echo  '<a href="'.$donnees['adresse'].'" target="_blank" title="Cliquez pour en savoir plus" id="'.$id.'" >'.$donnees['fete'].'</a>';

   $req->closeCursor();
?>

Le PDO est vraiment trop compliqué pour moi. Si quelqu'un peut  m'aider à m'en sortir ce serait très bien.

Hors ligne

#2 28-10-2014 05:23:16

Delphine
Membre
Inscription : 21-10-2014
Messages : 18

Re : Modification script vers php5.5

Bonjour

essayez en remplaçant votre code
try
   {
   $bdd = new PDO('mysql:host=localhost;dbname=phpbb', 'root', '');
   }
   catch (Exception $e)
   {
        die('Erreur : ' . $e->getMessage());
    }

par
<?php
   // connexion à la base de données
   try {
    $bdd = new PDO("$host;dbname=$base", $nom_utilisateur, $password);
    } catch(Exception $e) {
        exit('Impossible de se connecter à la base de données.');
    }

    // exécution de la connexion à la base de données
    $resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
?>



Pour l'affichage du resultat je ferai dans ce genre

<?php
//les titres des colonnes
        echo "<br/>";
        echo "<center>";
        echo "<table >";
        echo "    <tr>";
        echo "       <th><b>Text</b></th>";
        echo "       <th><b>Destinataire</b></th>";
        echo"    </tr>";

//la requete
$requete = "SELECT  login         AS 'Destinataire'    ,
                text        AS 'Text'
             FROM    messages;

$html = "";
        while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
$html .= "    <td>"        .$donnees["Text"            ]."&nbsp;</td>";
$html .= "    <td>"         .$donnees["Destinataire"    ]."&nbsp;</td>";
}

Hors ligne

#3 28-10-2014 08:57:03

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Modification script vers php5.5

Saluton,

Petit problème, Delphine ma chérie (oui, le MK est un animal très câlin avec les demoiselles), dans ton code final, je ne vois pas quand le texte de la $requête est soumis à PDO pour exécution.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums