Page 1 sur 1

Petit problème de débutant

Posté : 18 févr. 2006, 01:57
par Pipolako
Bon, j'ai décidé d'apprendre le php avec des tutos et le bouquin Pratique de MySql et PHP, et donc je suis tout à fait novice, bref je comprends à peu près ce qui se passe dans le fichier qui suit (c'est un exemple tiré du bouquin, version 3, page 78 ), le problème c'est que lorsque je le fais fonctionner, il m'affiche la chose qui suit après le code, et je ne sais pas comment ca se fait, car j'ai tout suivit à la lettre et je devrais obtenir la troisième citation.
<HTML><HEAD>
<TITLE>Connexion à MySQL</TITLE>
<LINK REL=stylesheet HREF="films.css" TYPE="text/css">
</HEAD>
<BODY>

<H1>Interrogation de la table FilmSimple</H1>  

<?php
require ("Connect.php");

$connexion = mysql_pconnect (SERVEUR, NOM, PASSE);

if (!$connexion) 
{
  echo "Désolé, connexion à " . SERVEUR . " impossible\n";
  exit;
}

if (!mysql_select_db (BASE, $connexion)) 
{
  echo "Désolé, accès à la base " . BASE . " impossible\n";
  exit;
}

$resultat = mysql_query ("SELECT * FROM FilmSimple", $connexion);

if ($resultat)
{
  while ($film = mysql_fetch_object ($resultat))
    {
      echo "$film->titre, paru en $film->annee, réalisé par $film->prenom_realisateur $film->nom_realisateur<BR>\n";
    }
}
else 
{  
  echo "<B>Erreur dans l'exécution de la requête.</B><BR>";
  echo "<B>Message de MySQL :</B> " .  mysql_error($connexion);
}  
?>
</BODY></HTML>
Interrogation de la table FilmSimple

titre, paru en $film->annee, réalisé par $film->prenom_realisateur $film->nom_realisateur
\n"; } } else { echo "Erreur dans l'exécution de la requête.
"; echo "Message de MySQL : " . mysql_error($connexion); } ?>
Interrogation de la table FilmSimple

Alien2, paru en 2000, réalisé par Ridley Scott
Vertigo, paru en 1958, réalisé par Alfred Hitchcock
Psychose, paru en 1893, réalisé par Alfred Hitchcock
Kagemusha, paru en 1980, réalisé par Akira Kurosawa
Volte-face, paru en 1997, réalisé par John Woo
Titanic, paru en 1997, réalisé par James Cameron
Sacrifice, paru en 1986, réalisé par Andrei Tarkovski
Je suppose que le problème ne doit pas être compliqué, le fichier Connect.php est le suivant :
<?php
  //
  // Fichier contenant les definitions de constantes
  // pour la connexion à MySQL

  define ('NOM',"adminFilms");
  define ('PASSE', "mdpAdmin");
  define ('SERVEUR', "localhost");
  define ('BASE', "Films");
?>
La base est créee, les valeurs sont entrées, et l'utilisateur adminFilms existe, je l'ai crée avec la commande
GRANT ALL PRIVILEGES ON Films.* TO adminFilms@localhost IDENTIFIED BY 'mdpAdmin' ;
Bref quelqu'un peut-il m'expliquer pourquoi j'obtiens la citation avec du php et non les valeurs de la base ?

Posté : 18 févr. 2006, 02:32
par HD
remplace stp ton code par ca :
<HTML><HEAD> 
<TITLE>Connexion à MySQL</TITLE> 
<LINK REL=stylesheet HREF="films.css" TYPE="text/css"> 
</HEAD> 
<BODY> 

<H1>Interrogation de la table FilmSimple</H1>   

<?php 
require ("Connect.php"); 

$connexion = mysql_pconnect (SERVEUR, NOM, PASSE); 

if (!$connexion) 
{ 
  echo "Désolé, connexion à " . SERVEUR . " impossible\n"; 
  exit; 
} 

if (!mysql_select_db (BASE, $connexion)) 
{ 
  echo "Désolé, accès à la base " . BASE . " impossible\n"; 
  exit; 
} 

$resultat = mysql_query ("SELECT * FROM FilmSimple", $connexion); 

if ($resultat) 
{ 
  while ($film = mysql_fetch_object ($resultat)) 
    { 
      echo "$film <br> $film->titre <br>";
      echo "$film->titre, paru en $film->annee, réalisé par $film->prenom_realisateur $film->nom_realisateur<BR>\n"; 
    } 
} 
else 
{   
  echo "<B>Erreur dans l'exécution de la requête.</B><BR>"; 
  echo "<B>Message de MySQL :</B> " .  mysql_error($connexion); 
}   
?> 
</BODY></HTML> 
montre nous ce que ca affiche puis efface chez toi la ligne
echo "$film <br> $film->titre <br>";

Posté : 18 févr. 2006, 02:57
par Pipolako
Lorsque que je remplace par ce que vous proposez, j'obtiens ceci :
Interrogation de la table FilmSimple

$film->titre
"; echo "$film->titre, paru en $film->annee, réalisé par $film->prenom_realisateur $film->nom_realisateur
\n"; } } else { echo "Erreur dans l'exécution de la requête.
"; echo "Message de MySQL : " . mysql_error($connexion); } ?>
Puis en enlevant la ligne , j'ai ceci :
Interrogation de la table FilmSimple

titre, paru en $film->annee, réalisé " . "par $film->prenom_realisateur $film->nom_realisateur.
\n"; } } else { echo "Erreur dans l'exécution de la requête.
"; echo "Message de MySQL : " . mysql_error($connexion); } ?>

Posté : 18 févr. 2006, 03:10
par HD
pas normal...
mais bon, on verra ce que diront les autres demain :?

Posté : 18 févr. 2006, 10:08
par Pipolako
Manque de bol je vais sur les pistes une semaine, mais le problème reste toujours présent. Je ne sais pas si c'est utilie, mais je tourne avec le dernier Wamp, je l'ai patché pour mettre PHP 4.4.2, mais je tourne quand même avec le 5, j'ai aussi mis le zend optimizer. Voilà voilà, bonnes vacances à vous.

Posté : 18 févr. 2006, 19:51
par Truc
La page a une extension .php ?

Posté : 26 févr. 2006, 20:22
par Pipolako
Me revoila des vacances, un peu crevé...
Bref, of course la page est en .php

Posté : 26 févr. 2006, 20:33
par Pipolako
Je viens de capter un truc, c'est honteux (pour moi), c'est que le fait que WAMP soit lancé ou non ne change rien à l'histoire, j'imagine que c'est un problème de base de donnée, mais pourquoi ? La page se trouve bien dans un dossier dans \www\ et j'ai bien crée la base de donnée...

Posté : 27 févr. 2006, 03:09
par Pipolako
Plus personne ne m'aide ?
Je n'arrive pas à m'en dépatouiller ici.
Je relève que je ne reçois pas le message d'erreur de connexion à la base, pourtant je suis presque sûr que le problème vient de la base, une idée ?

Posté : 27 févr. 2006, 04:14
par Pipolako
Bon, bin j'ai "résolu mon problème", disons que wamp merdouille et que easyphp fonctionne, j'ai simplement tout refait mais avec easyphp.
Malgré tout quelqu'un peut-il me dire pourquoi wamp a ce genre de raté sur mon pc ? (après ça je mettrai le tag [résolu])

Question cadeau, le code suivant :

Code : Tout sélectionner

LOAD DATA LOCAL INFILE 'films.txt' INTO TABLE filmsimple FIELDS TERMINATED BY ' ';
ne m'affiche aucune erreur quand je l'execute dans phpmyadmin, cependant rien ne se produit, et en bidouillant j'ai vu qu'on pouvait faire ce truc grace à une page dans phpmyadmin, là ça fonctionne, les valeurs rentrent parfaitement dans la table, mais ca passe par un fichier temporaire, la commande sql est la même en dehors du nom du fichier, comment se fait-il que celui cité avant n'inscrive rien dans les tables ?