probleme fichier classement

Eléphant du PHP | 58 Messages

22 nov. 2009, 15:20

Bonjour,

en faite, je veux realiser pour mon site sur la musique, une page ajout_classement_albums, c'est une formulaire, et une page classements_albums, pour afficher les informations.
Je vais vous expliquer: Je veux prendre le classement top albums du site chartsinfrance, les 5 1er, et afficher sur mon site (classements_albums), C'est plutot une modifications, chaque semaine, je modifie les entrees avec les nouveaux... mon table classement contient 4 champs: id, nom, titre, progressions.
Je vous envoye donc, la page ajout_classement_albums, mais regarder ce qu'il me fais, http://topmusic.free-hosting.fr/ajout_c ... albums.php
<?php
include("./includes/haut.php");
mysql_connect("", "", "");
mysql_select_db("");
if(isset($_POST['requete']))
{

//sécuritée
$nom=$_POST['1']; 
$nom1=mysql_real_escape_string($nom);
$nom=$_POST['2'];
$nom2=mysql_real_escape_string($nom);
$nom=$_POST['3'];
$nom3=mysql_real_escape_string($nom);
$nom=$_POST['4'];
$nom4=mysql_real_escape_string($nom);
$nom=$_POST['5'];
$nom5=mysql_real_escape_string($nom);
$titre=$_POST['1'];
$titre1=mysql_real_escape_string($titre);
$titre=$_POST['2'];
$titre2=mysql_real_escape_string($titre);
$titre=$_POST['3'];
$titre3=mysql_real_escape_string($titre);
$titre=$_POST['4'];
$titre4=mysql_real_escape_string($titre);
$titre=$_POST['5'];
$titre5=mysql_real_escape_string($titre);
$progression=$_POST['1'];
$progression1=mysql_real_escape_string($progression);
$progression=$_POST['2'];
$progression2=mysql_real_escape_string($progression);
$progression=$_POST['3'];
$progression3=mysql_real_escape_string($progression);
$progression=$_POST['4'];
$progression4=mysql_real_escape_string($progression);
$progression=$_POST['5'];
$progression5=mysql_real_escape_string($progression);

//modifications des tables
mysql_query("UPDATE classement SET nom='".$nom1."' WHERE id='1'");
mysql_query("UPDATE classement SET nom='".$nom2."' WHERE id='2'");
mysql_query("UPDATE classement SET nom='".$nom3."' WHERE id='3'");
mysql_query("UPDATE classement SET nom='".$nom4."' WHERE id='4'");
mysql_query("UPDATE classement SET nom='".$nom5."' WHERE id='5'");
echo"Classement modifier !"; //message
}

$requete = mysql_query("SELECT * FROM classement");

 echo'<form action="ajout_classement_albums.php" method="post">';
while($classement = mysql_fetch_array($requete)) //boucle qui affiche les 5 champs du formulaire
{
echo'<label for="'.$classement['id'].'">n° '.$classement['id'].'</label><input type="text" name="'.$classement['id'].'" id="'.$classement['id'].'"/><br/>';
 }
 {   
     echo' <label for="nom">Nom</label><br />
        <input type="text" name="nom" id="nom" tabindex="20" value=""/><br >

        <label for="titre">titre</label><br />
        <input type="text" name="titre" id="titre" tabindex="20" value=""/><br />
                           <label for="progression">progression</label><br />
        <textarea name="progression" id="progression" tabindex="20"></br />';
  }
 echo' <input type="submit" value="Ajouter" name="requete" /></form>'; //ajouté le ;
 
 include("./includes/bas.php");
 ?>
et classements_albums et la il affiche une message d'erreur: http://topmusic.free-hosting.fr/classements_albums.php
 <?php
include("./includes/haut.php");
?>

<div id="classement">
<?php
mysql_connect("", "", "");
mysql_select_db("");
?>
<p><?php $requete = mysql_query("SELECT * FROM classement ORDER BY id");
while($classement = mysql_fetch_array($requete))
{echo "Nom : ".$classement['nom']." titre : ".$classement['titre']." progression : ".$classement['progression']."<br/>"; }?></p>  //fin de la boucle
</div>

<?php 
}
include("./includes/bas.php");
?>
Mon probleme ce sont les 2 fichiers;

Vous pouvez m'aider SVP?

merci par avance pour votre aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

22 nov. 2009, 15:33

Pour ton premier script, tes chemins pour les inclusions sont incorrects. C'est le message d'erreur que te donne php : "failed to open stream: No such file or directory ", le fichier n'a pas été trouvé.

Tu dois indiquer l'emplacement du fichier que tu veux inclure à partir du script qui est exécuté :
"./" fait référence au dossier courrant
"../" te permet de remonter au dossier parent

Vérifies si les fichiers sont bien présents sur le serveur et que ton chemin par rapport au dossier includes est correct.
Il te manque également la balise fermante </textarea> dans ton code :)


Pour ton second script, comme te l'indique php, tu as une accolade fermante innattendue dans ton "Parse error: syntax error, unexpected '}' ". Tu n'as en effet aucune accolade ouvrante correspondant, elle n'a donc rien à faire là...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 58 Messages

22 nov. 2009, 15:36

pour l'include, je sais, ce n'est pas pour ca, que je vous ai ecris,

et pour les scripts, desolé, mais je n'ai pas tres bien compris

merci par avance pour votre aide

Mammouth du PHP | 985 Messages

22 nov. 2009, 15:38

while($classement = mysql_fetch_array($requete)) //boucle qui affiche les 5 champs du formulaire
{
echo'<label for="'.$classement['id'].'">n° '.$classement['id'].'</label><input type="text" name="'.$classement['id'].'" id="'.$classement['id'].'"/><br/>';
 }
// les { et } sont en trop je pense
 {  
     echo' <label for="nom">Nom</label><br />
        <input type="text" name="nom" id="nom" tabindex="20" value=""/><br >

        <label for="titre">titre</label><br />
        <input type="text" name="titre" id="titre" tabindex="20" value=""/><br />
                           <label for="progression">progression</label><br />
        <textarea name="progression" id="progression" tabindex="20"></br />';
// les { et } sont en trop je pense
  }
Donc:
while($classement = mysql_fetch_array($requete)) //boucle qui affiche les 5 champs du formulaire
{
echo'<label for="'.$classement['id'].'">n° '.$classement['id'].'</label><input type="text" name="'.$classement['id'].'" id="'.$classement['id'].'"/><br/>';
 }
echo' <label for="nom">Nom</label><br />
        <input type="text" name="nom" id="nom" tabindex="20" value=""/><br >

        <label for="titre">titre</label><br />
        <input type="text" name="titre" id="titre" tabindex="20" value=""/><br />
                           <label for="progression">progression</label><br />
        <textarea name="progression" id="progression" tabindex="20"></br />';
Puis:
<?php
include("./includes/haut.php");
?>

<div id="classement">
<?php
mysql_connect("", "", "");
mysql_select_db("");
?>
<p><?php $requete = mysql_query("SELECT * FROM classement ORDER BY id");
while($classement = mysql_fetch_array($requete))
{echo "Nom : ".$classement['nom']." titre : ".$classement['titre']." progression : ".$classement['progression']."<br/>"; }?></p>  //fin de la boucle
</div>

<?php
// celui la est trop aussi je pense
}
include("./includes/bas.php");
?>
Donc:
<?php
include("./includes/haut.php");
?>

<div id="classement">
<?php
mysql_connect("", "", "");
mysql_select_db("");
?>
<p><?php $requete = mysql_query("SELECT * FROM classement ORDER BY id");
while($classement = mysql_fetch_array($requete))
{echo "Nom : ".$classement['nom']." titre : ".$classement['titre']." progression : ".$classement['progression']."<br/>"; }?></p>  //fin de la boucle
</div>

<?php
include("./includes/bas.php");
?>
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 61 Messages

22 nov. 2009, 15:50

Bonjour,
merci par avance pour votre aide
Bonjour, en fait il faut que tu relises ligne par ligne tes PHP, c'est plein d'erreurs de syntaxe
Ne mélanges pas trop le HTML et PHP car tu oublies d'ouvrir et fermer tes PHP ou echo ...

Voila par exemple classements_albums.php
et en plus sans certitudes sur ce que contiennent tes includes ni leur chemin qui apparament est faux

Code : Tout sélectionner

<?php include("./includes/haut.php"); echo ("<div id='classement'>"); $flag=mysql_connect("", "", ""); $flag=mysql_select_db(""); echo ("<p>"); $requete = mysql_query("SELECT * FROM classement ORDER BY id"); while($classement = mysql_fetch_array($requete)) { echo "Nom : ".stripslashes($classement['nom'])." titre : ".stripslashes($classement['titre'])." progression : ".stripslashes($classement['progression'])."<br />"; } echo ("</p></div>"); include("./includes/bas.php"); ?>
Un sourire pour conclure ;-)

Mammouth du PHP | 985 Messages

22 nov. 2009, 15:55

je déconseille le stripslashes() dans ces conditions.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 58 Messages

22 nov. 2009, 16:01

, je viens d'essayer le code, envoyé, avant, pour ajout_classement_albums, il n'y a rien de changé, il n'y pas le bouton ajouter, regarder,
http://topmusic.free-hosting.fr/ajout_c ... albums.php

et pour le fichier classements_albums, je crois que ca marche, regarder http://topmusic.free-hosting.fr/classements_albums.php

comment je pourrai regler le probleme du 1er fichier?

merci par avance

Mammouth du PHP | 985 Messages

22 nov. 2009, 16:08

Pour le premier fichier, Ryle t'avait répondu, il avait d'ailleurs répondu a tout, mais j'étais déjà en fonction édit.

Problème de chemin donc:
(Il ne trouve pas les fichiers include()).

Les fichiers include() ne se trouvent surement pas dans le même répertoire:
./ = même répertoire
../ = descendre d'un répertoire
.../ = descendre de deux répertoire
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 58 Messages

22 nov. 2009, 16:25

Ce n'est pas pour l'include que je vous ecris, oubliez l'include un moment, je sais, le fichier include n'existe pas, ce fichier c'est juste une exemple, pour voir si ca marche ou pas pour pouvoir, le mettre sur une fichier normal...

Mammouth du PHP | 985 Messages

22 nov. 2009, 16:40

Faute de frappe ici: </br />

Donc:
while($classement = mysql_fetch_array($requete)) //boucle qui affiche les 5 champs du formulaire
{
echo'<label for="'.$classement['id'].'">n° '.$classement['id'].'</label><input type="text" name="'.$classement['id'].'" id="'.$classement['id'].'"/><br/>';
 }
echo' <label for="nom">Nom</label><br />
        <input type="text" name="nom" id="nom" tabindex="20" value=""/><br >

        <label for="titre">titre</label><br />
        <input type="text" name="titre" id="titre" tabindex="20" value=""/><br />
                           <label for="progression">progression</label><br />
        <textarea name="progression" id="progression" tabindex="20"><br />
        <input type="submit" value="Ajouter" name="requete" /></form>';
 
 include("./includes/bas.php");
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 58 Messages

22 nov. 2009, 16:45

je viens d'essayer mais il n'y a rien de changé.

merci par avance

Mammouth du PHP | 985 Messages

22 nov. 2009, 16:51

Normal, t'as été trop rapide :wink:
J'avais édité le code juste après.
Réessaye le code.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Mammouth du PHP | 985 Messages

22 nov. 2009, 16:59

Et comment tes includes avec des //, ca fausse le résultat et la recherche des erreurs et ce même html

[EDIT]
Et enlève le tabindex dans le textarea pour voir.
Modifié en dernier par Dr@ke le 22 nov. 2009, 17:01, modifié 1 fois.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 58 Messages

22 nov. 2009, 17:01

Mais c'est toujours pareil

merci par avance

Mammouth du PHP | 985 Messages

22 nov. 2009, 17:10

Ok j'ai trouvé, c'était tout bête comme souvent, tu as oublié de fermer ton textarea:
while($classement = mysql_fetch_array($requete)) //boucle qui affiche les 5 champs du formulaire
{
echo'<label for="'.$classement['id'].'">n° '.$classement['id'].'</label><input type="text" name="'.$classement['id'].'" id="'.$classement['id'].'"/><br/>';
 }
echo' <label for="nom">Nom</label><br />
        <input type="text" name="nom" id="nom" tabindex="20" value=""/><br >

        <label for="titre">titre</label><br />
        <input type="text" name="titre" id="titre" tabindex="20" value=""/><br />
                           <label for="progression">progression</label><br />
        <textarea name="progression" id="progression" tabindex="20"></textarea><br />
        <input type="submit" value="Ajouter" name="requete" /></form>';
 
 include("./includes/bas.php");
Marque résolut :wink:
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.