Base de données dedicaces

Fermé
Dethwov - 1 mars 2012 à 11:01
albertdu93 Messages postés 32 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 30 mars 2012 - 2 mars 2012 à 09:38
Bonjour,
J'ai récemment créé un nouveau site. Hier j'ai voulu faire la page des dédicaces, j'ai commencé par créer ma base de données et j'ai écrit mon code mais quand je vais sur la page de mon site, ça m'affiche une erreur: " Erreur : SQLSTATE[42000] [1044] Access denied for user 'music-online'@'localhost' to database 'dedicace' ". Je ne comprend pas ce qu'il se passe... Pouvez-vous m'aider svp ?


21 réponses

Et comment je peux faire pour faire défiler mes dédicaces sur une autre page du site ?
2
albertdu93 Messages postés 32 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 30 mars 2012 1
1 mars 2012 à 12:40
Sur toute les pages ou que sur certaines pages ?
0
sur toute les pages
0
albertdu93 Messages postés 32 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 30 mars 2012 1
1 mars 2012 à 13:19
Voila une grande notion du PHP pour créer un site: les imbrications, toute les pages de ton site vont devoir être construites sur un même modèle. pour comprendre cette notion parton d'un exmple :

toutes les pages de mon site présentent le meme modele qui suit
<html>
<head></head>
<body>
<?php
include_once('left_menu.php');
?>
+ CONTENU D'UNE PAGE
</body>
</html>


Dans l'exemple simple qui précède toute les pages de mon site on UN point en commun elles contiennent le fichier 'left_menu.php' (où je peut mettre le menu gauche du site par exemple ! ). En effet, la fonction include_once inclue un fichier dans un autre !
Dans le fichier 'left_menu .php' je met le code qui permet d'afficher les dédicaces.

Par conséquent toutes les pages de mon site afficheront les dédicaces dans mon menu de gauche

Ce procédé est très intéréssant notement lorque l'on veut modifier qqch dans son site par exmple si je veut changer le nom de mon site je vais devoir modifier chaque fichier individuellement si tu as 100 fichiers à modifier: Bon courrage !
Sinon Si ces fichiers sont tous sur un même modèle et font appels au fichier 'header.php' ou il ya le code
<head>
<title>TItre du site à modifier</title>
</head>

J'ai juste à modifier le fichier 'header.php' et tu es trankil ;)

Dans ton cas je te conseil de mettre en place une structure pour ton site à partir de là insère le code dans un de tes fichiers d'imbrications et tu verras à quelle point la vie peut être belle !
0
Merci beaucoup, ton aide m'a été très utile ! ;)
0
albertdu93 Messages postés 32 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 30 mars 2012 1
1 mars 2012 à 13:52
Derien !!
0
albertdu93 Messages postés 32 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 30 mars 2012 1
1 mars 2012 à 11:33
Bonjour, déjà le Login ou le mot de passe pour accéder à ta base de donnée 'dédicace' est incorrect !
Es-tu en local ?
si, oui n'oublie pas de mettre 'localhost' dans le champs serveur de connexion:
<?php
$connect= mysql_connect('localhost', 'nom_utilisateur (tu met music-online)', 'mot_de_pass();
mysql_select_db('dedicace', $connect);
?>


Essaie ce code !
0
Je ne suis pas en local.
Le code que tu m'as donné ne fonctionne pas non plus, maintenant quand je vais sur le site, ça m'affiche une page blanche et c'est écrit :" Parse error: syntax error, unexpected ';' in /var/www/legtux.org/users/music-online/dedicace.php on line 83 "
Le code que j'avais avant (pour la page dedicace.php) :
<?php
// Connexion à la base de données
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=legtux.org;dbname=dedicace', 'music-online', 'monmotdepasse', $pdo_options);

// Récupération des 10 derniers messages
$reponse = $bdd->query('SELECT pseudo, message FROM dedicace ORDER BY ID DESC LIMIT 0, 10');

while ($donnees = $reponse->fetch())
{
echo '<p><strong>' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>';
}

$reponse->closeCursor();
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}

?>


Et celui pour la page dedicace_post.php:

<?php
// Connexion à la base de données
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=legtux.org;dbname=dedicace', 'music-online', 'monmotdepasse', $pdo_options);


$req = $bdd->prepare('INSERT INTO dedicace (pseudo, message) VALUES(?, ?)');
$req->execute(array($_POST['pseudo'], $_POST['message']));


header('Location: dedicace.php');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
0
Je viens de me renseigner auprès de mon hébergeur, je me suis trompé de nom pour la base de données et pour le serveur ( C'était ma première base de données, donc j'étais un peu perdu).
Maintenant tout fonctionne !
Merci de m'avoir aidé !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
albertdu93 Messages postés 32 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 30 mars 2012 1
1 mars 2012 à 11:56
ok alors réeassaie ce code:

<?php
$connect= mysql_connect('serveur MySQL', 'nom_utilisateur', 'mot_de_pass') or die('Impossible de se connecter : '.mysql_error());
mysql_select_db('base de donnée', $connect);
?>


Si ça ne marche toujours pas alors je te dirais ce qui ne va pas.
0
albertdu93 Messages postés 32 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 30 mars 2012 1
1 mars 2012 à 11:58
Ok derien c'est bien ce que je pensais !! :

"albertdu93 1 mars 2012 à 11:33
Bonjour, déjà le Login ou le mot de passe pour accéder à ta base de donnée 'dédicace' est incorrect ! "
0
a oui, j'oubliai: comment puis-je faire pour que les dédicaces défilent en haut du site ?
0
albertdu93 Messages postés 32 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 30 mars 2012 1
1 mars 2012 à 12:00
Je te donne juste un petit conseil Différencie bien tes erreurs dans les or die ça te permettra de voir ou ton code plante à l'avenir on sait jamais ;)
0
albertdu93 Messages postés 32 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 30 mars 2012 1
1 mars 2012 à 12:00
Pour que sa défile dans quel sens ?
0
Merci pour le conseil !

Pour que les dédicaces défilent de la droite vers la gauche.
0
albertdu93 Messages postés 32 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 30 mars 2012 1
1 mars 2012 à 12:10
Pour faire défiler un texte
<MARQUEE>
TON TEXT
</MARQUEE>


voila en intégrant à ton code !
while ($donnees = $reponse->fetch())
{
echo '<marquee><p><strong>' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p></marquee>';
}

Pour varier les plaisirs
je te propose ce site où tu as de nombreux exemples de la balise marquee en HTML
http://www.csvt.qc.ca/patriotes/html/code_spec/xmpl_mrq.htm
0
J'ai encore un petit problème, tous fonctionne normalement mais mes dédicaces s'affichent les unes en dessous des autres et moi j'aimerais qu'elles s'affichent bout-à-bout. Comment je fais ?
0
albertdu93 Messages postés 32 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 30 mars 2012 1
1 mars 2012 à 16:24
voila supprime juste les balises<p></p> et insère des espaces

while ($donnees = $reponse->fetch()) 
{ 
echo '<marquee><strong>' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</marquee>&nbsp;'; 
} 


ps: j'ai inséré un espace après le </marquee>
0
ça ne fonctionne pas, les dédicaces sont toujours les unes en dessous des autres mais plus espacées.
0
Sinon, il n'y a pas un moyen pour afficher seulement la dernière dédicace ?
0
albertdu93 Messages postés 32 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 30 mars 2012 1
1 mars 2012 à 17:15
Si alors pour tout afficher sur une même ligne

<?php
echo"<marquee>";
while ($donnees = $reponse->fetch()) 
{ 
echo '<strong>' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '&nbsp;'; 
} 
echo"</marquee>";
?>

Tu veut tout de même afficher que la dernière dédicace ?
0
Oui, en affichant que la dernière dédicace ça sera plus simple.
0
albertdu93 Messages postés 32 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 30 mars 2012 1
1 mars 2012 à 17:35
ok alors voici le code:

<?php
$query= mysql_query('SELECT * FROM dedicaces ORDER BY id DESC') or die ('Erreur numeros 1 : '.mysql_error());
$donnees=mysql_fetch_assoc($query);
echo '<marquee><strong>' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</marquee>'; 
?>


Je n'ai pas utiliser de boucles pour m'afficher la dernière valeur, l'avant dernière valeur, l'avant avant dernière valeur ... etc .

Une simple sélection DESC (donc du dernier au premier) et sans boucle affiche le dernier enregistrement, ta dernière dédicace !
c'est ce qu'il y a de plus simple et efficace !
0
je ne comprend pas, le code ce n'est que ça? ou il faut rajouter des autres trucs ?
0
albertdu93 Messages postés 32 Date d'inscription mardi 13 janvier 2009 Statut Membre Dernière intervention 30 mars 2012 1
1 mars 2012 à 19:16
Ce n'est que ça
bien sur n'oublie pas de te connecter à la base et a la fin de ta page de fermer la connexion a la base de donnée ! (sur ce je suis absent pendant 1 Journée dès ce soir).
0