IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Afficher directement le dernier ajouté


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    991
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 991
    Points : 659
    Points
    659
    Par défaut Afficher directement le dernier ajouté
    Bonsoir à tous,

    J'ai codé un mini site de ma vidéothèque, elle est pleinement fonctionnelle (ajout, edition et suppression).

    Le truc c'est que je n'arrive pas à faire de sorte lorsque j'ajoute un film, lors de l’enregistrement il faut que la page s’amène vers la fiche du film.

    Actuellement, si je rajoute un film, je serai amené vers listing_films.php?id_film=1, or je souhaite que ce soit amené vers le dernier fiche crée.

    Ne sachant pas trop d'où cela peut provenir, je mets donc plusieurs code sources.

    Voici le code source :

    listing_films.php, c'est la page laquelle on a une liste des titres avec les informations du film sélectionné.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    <!-- Connexion à la base de données -->
    <?php include('include/connexion_mysql.php'); ?>
     
    <!-- Récuperer des informations, tous les champs de la table films -->
    <?php
    	$recup_infos = $bdd->query('SELECT * FROM videotheque ORDER BY titre');
    ?>
     
     
     
    <?php
    	$nbre_films = $bdd->query('SELECT COUNT(*) AS nb_films FROM videotheque');
    	$donnees = $nbre_films->fetch();
     
    if(isset($_GET['id_film']))
    	{
    		// Créer variable id_film pour les traiter
    		$id_film = $bdd->prepare("SELECT * FROM videotheque WHERE id=:id");
    		$id_film->execute(array(
    		'id' => $_GET['id_film']
    		));
    	}
     
    else // si n'existe pas
    	{
    		$id_film = $bdd->query("SELECT * FROM videotheque");
    	}
     
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    	<head>
    		<title>Videothèque</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    		<link rel="stylesheet" media="screen" type="text/css" title="Defaut" href="design/style.css" />
    		<link rel="shortcut icon" href="design/favicon.ico" />
    	</head>
        <body>
        	<div id="top_header">
    		</div>
    		<div id="header">
    			<?php include('include/barre_navig.php'); ?>
    		</div>
            <div id="col_gauche">
    	        <div id="nbre_resultat">
        	    	Total de <?php echo $donnees['nb_films']; ?> films.
            	</div>
                <div id="aj_ed_sup">
                	<a href="film_add.php">Ajouter</a> - <?php $donneesfilmactuel = $id_film->fetch() ?>
    				<a href="film_edit.php?id_film=<?php echo $donneesfilmactuel['id']; ?>">Editer</a> - 
                    <a href="#">Supprimer</a>
                </div>
    			<div id="liste_reponse">
                	<!-- créer requete boucle pour recuperer tous les titres -->
    				<?php 
    					while ($donnees = $recup_infos->fetch())
    					{
    				?>
                    <!-- listing --><!-- + recup id via get id film -->
                    <a href="listing_films.php?id_film=<?php echo $donnees['id']; ?>"><?php echo $donnees['titre']; ?></a><br />
                    <!-- boucle fini, il faut fermer la requete -->
                    <?php 
    					} 
    					$recup_infos->closeCursor(); 
    				?>
    	        </div>
    		</div>
            <div id="col_droite">
    			Titre : <?php echo $donneesfilmactuel['titre']; ?><br />
            	R&eacute;alis&eacute; par : <?php echo $donneesfilmactuel['realisateur']; ?><br />
                Avec : <?php echo $donneesfilmactuel['participant']; ?><br />
                Dur&eacute;e : <?php echo $donneesfilmactuel['duree']; ?><br />
                Ann&eacute;e production : <?php echo $donneesfilmactuel['annee_production']; ?><br />
                Sortie cin&eacute;ma : <?php echo $donneesfilmactuel['sortie_cinema']; ?><br />
                R&eacute;sum&eacute; : <?php echo nl2br($donneesfilmactuel['resume_film']); ?><br />
                Couverture : <img src="<?php echo $donneesfilmactuel['couverture']; ?>" width="160" height="213" /><br />
                Format : <?php echo $donneesfilmactuel['format']; ?><br />
                Résolution : <?php echo $donneesfilmactuel['resolution']; ?><br />
                Son : <?php echo $donneesfilmactuel['son']; ?><br />
                Sous-titre : <?php echo $donneesfilmactuel['soustitre']; ?><br />
                Commentaires : <?php echo nl2br($donneesfilmactuel['commentaire']); ?><br />
                ID Allociné : <a href="http://www.allocine.fr/film/fichefilm_gen_cfilm=<?php echo $donneesfilmactuel['id_allocine']; ?>.html"><?php echo $donneesfilmactuel['id_allocine']; ?></a><br />
                Mediarange n° : <?php echo $donneesfilmactuel['mediarange']; ?><br />
                LDLL : <a href="<?php echo $donneesfilmactuel['li_int']; ?>">Téléchager<br /></a>
    			<?php
    				$id_film->closeCursor();
    			?>
            </div>
            <?php include('include/footer.php'); ?>
        </body>
    </html>
    film_add.php, c'est la page laquelle on complète les informations lors de la création d'une fiche film

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <!-- Début du connexion à la base de données -->
    <?php include('include/connexion_mysql.php'); ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    	<head>
    		<title>Videothèque</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    		<link rel="stylesheet" media="screen" type="text/css" title="Defaut" href="design/style.css" />
    		<link rel="shortcut icon" href="design/favicon.ico" />
    	</head>
        <body>
        	<div id="top_header">
    		</div>
    		<div id="header">
    			<?php include('include/barre_navig.php'); ?>
    		</div>
            <div id="col_droite">
            	<h3>Ajouter un nouveau film</h3>
                <p>Veuillez remplir tous les formulaires ci-dessous</p><br /><br />
                <form action="process_add.php" method="post" />
                	<label for="titre">Titre :</label><input type="text" name="titre" /><br />
                    <label for="id_allocine">ID Allociné :</label><input type="text" name="id_allocine" /><br />
                    <label for="couverture">Couverture :</label><input type="text" name="couverture" value="images/vide_covert1.jpg" /><br /><br /><br />
                    <label for="realisateur">Réalisateur :</label><input type="text" name="realisateur" /><br />
                    <label for="participant">Avec :</label><input type="text" name="participant" /><br />
                    <label for="duree">Durée de film :</label><input type="text" name="duree" /><br />
                    <label for="annee_production">Année de production :</label><input type="text" name="annee_production" /><br />
                    <label for="sortie_cinema">Sortie du cinéma :</label><input type="text" name="sortie_cinema" /><br />
                    <label for="resume_film">Résume du film :</label><input type="text" name="resume_film" /><br />
                    <label for="format">Format :</label><input type="text" name="format" /><br />
                    <label for="resolution">Résolution :</label><input type="text" name="resolution" /><br />
                    <label for="son">Son :</label><input type="text" name="son" /><br />
                    <label for="soustitre">Sous-titre :</label><input type="text" name="soustitre" /><br />
                    <label for="commentaire">Commentaire :</label><input type="text" name="commentaire" /><br />
                    <label for="li_int">Li_int :</label><input type="text" name="li_int" /><br />
                    <label for="mediarange">Mediarangen° :</label><input type="text" name="mediarange" /><br />
                    <input type="submit" value="Enregistrer le nouveau film" />
    			</form>
            </div>
            <?php include('include/footer.php'); ?>
        </body>
    </html>
    process_add.php, c'est la page laquelle le processus est en traitement avec la mysql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <!-- Début du connexion à la base de données -->
    <?php include('include/connexion_mysql.php'); ?>
     
    <?php
    	$film = $bdd->query('SELECT * FROM videotheque');
     
    	$add_new_film = $bdd->prepare("INSERT INTO videotheque VALUES('', :titre, :realisateur, :participant, :duree, :annee_production, :sortie_cinema, :resume_film, :couverture, :format, :resolution, :son, :soustitre, :commentaire, :id_allocine, :li_int, :mediarange)");
    	$add_new_film->execute(array(
    								   'titre' => $_POST['titre'],
    								   'realisateur' => $_POST['realisateur'],
    								   'participant' => $_POST['participant'],
    								   'duree' => $_POST['duree'],
    								   'annee_production' => $_POST['annee_production'],
    								   'sortie_cinema' => $_POST['sortie_cinema'],
    								   'resume_film' => $_POST['resume_film'],
    								   'couverture' => $_POST['couverture'],
    								   'format' => $_POST['format'],
    								   'resolution' => $_POST['resolution'],
    								   'son' => $_POST['son'],
    								   'soustitre' => $_POST['soustitre'],
    								   'commentaire' => $_POST['commentaire'],
    								   'id_allocine' => $_POST['id_allocine'],
    								   'li_int' => $_POST['li_int'],
    								   'mediarange' => $_POST['mediarange']
    								   ));
    	header("Location: listing_films");
     
    ?>
    Note d'information, dans la connexion_mysql.php, barre_navig.php et footer.php, il n'y a absolument rien qui peut intervenir dans la sélection de film.

    Merci d'avance de vos aides.
    Il est plus facile de dire que de faire.
    Handy-Mobil.fr

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par {F-I} Voir le message
    ...Ne sachant pas trop d'où cela peut provenir, ...
    Tu m'étonnes, Elton. Je pensais que TU avais codé...

    Remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	header("Location: listing_films");
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	// -----------------
    	// id de la dernière fiche créée
    	$id_film_add = $add_new_film->lastInsertId('id_film');
    	// -----------------
    	header("Location: listing_films.php?id_film=".$id_film_add);
    Dois-je préciser dans quel fichier ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    991
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 991
    Points : 659
    Points
    659
    Par défaut
    Bonjour,

    Merci de ton aide, oui je l'avais codé avec quelques aides d'un ami, il m'avait expliqué comment procéder. Je ne te cache pas que je ne connais pas grand chose dans ce domaine

    J'ai donc modifié le code source dans la page process_add.php, je m'étais dit que cela pourrait être cela mais je ne savais pas trop quoi écrire.

    Bref, j'ai modifié et cela ne passe pas, j'ai tenté d'ajouter une fiche et lors d'enregistrement cela reste bloqué, page blanche en étant dans process_add.php.

    L'enregistrement a été bien faite, il y a eu l'ajout dans la BDD mais la page est restée bloqué, une idée pourquoi ?

    Merci beaucoup
    Il est plus facile de dire que de faire.
    Handy-Mobil.fr

  4. #4
    Invité
    Invité(e)
    Par défaut
    RE.
    Enlève cette ligne, qui est du code html, à éviter avant un header('location ...') :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!-- Début du connexion à la base de données -->
    ainsi que l'espace (même raison) :
    et ce code, qui ne sert à rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$film = $bdd->query('SELECT * FROM videotheque');
    Enfin, dans TA BdD, l'id s'appelle... id !
    => le nommer id_film aurait été une meilleure... idée !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$id_film_add = $add_new_film->lastInsertId('id');
    Ce qui donne au final process_add.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?php 
    	// connexion à la base de données
    	include('include/connexion_mysql.php');
     
    	// Ajout du film en base de données
    	$add_new_film = $bdd->prepare("INSERT INTO videotheque VALUES('', :titre, :realisateur, :participant, :duree, :annee_production, :sortie_cinema, :resume_film, :couverture, :format, :resolution, :son, :soustitre, :commentaire, :id_allocine, :li_int, :mediarange)");
    	$add_new_film->execute(array(
    				   'titre' => $_POST['titre'],
    				   'realisateur' => $_POST['realisateur'],
    				   'participant' => $_POST['participant'],
    				   'duree' => $_POST['duree'],
    				   'annee_production' => $_POST['annee_production'],
    				   'sortie_cinema' => $_POST['sortie_cinema'],
    				   'resume_film' => $_POST['resume_film'],
    				   'couverture' => $_POST['couverture'],
    				   'format' => $_POST['format'],
    				   'resolution' => $_POST['resolution'],
    				   'son' => $_POST['son'],
    				   'soustitre' => $_POST['soustitre'],
    				   'commentaire' => $_POST['commentaire'],
    				   'id_allocine' => $_POST['id_allocine'],
    				   'li_int' => $_POST['li_int'],
    				   'mediarange' => $_POST['mediarange']
    				   ));
    	// -----------------
    	// id de la dernière fiche créée
    	$id_film_add = $add_new_film->lastInsertId('id');
    	// -----------------
    	header("Location: listing_films.php?id_film=".$id_film_add);
    N.B. le ?> à la fin n'est pas non plus nécessaire (je l'ai donc supprimé aussi)

    N.B.2 Je n'ai pas évoqué la "Gestion d'erreur" et vérification des données transmises avant insertion en BdD...
    Dernière modification par Invité ; 03/08/2013 à 10h10.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    991
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 991
    Points : 659
    Points
    659
    Par défaut
    Merci de ton retour.

    Je ne vois pas trop le rapport puisque cela marchait avec avant concernant le bout de code <!-- Début du connexion à la base de données -->
    Mais j'ai quand même supprimé ce bout de code à ta demande, dans la page process_add.php, film_add.php et listing_film.php

    J'ai bien entendu effectué également la suppression de ?> <?php qui sont entre le debut et la fin du code parce que c'est inutile comme tu le disais.

    J'ai aussi apporté la modification avec ton code source donné, le résultat est toujours le même. Page blanche.

    J'ai pensé que cela pourrait provenir de Firefox (souci de cache ? j'ai vidé mais même problème, j'ai donc testé sous Internet, le problème persiste donc cela vient du code)

    Remarque, j'ai tenté de faire un retour à l'état d'avant de tout modification, ça fonctionne, il y a donc un souci avec le nouveau code source que tu m'as donné, reste à savoir lequel

    Si tu le souhaites, je pourrai te donner des pages que tu as besoin.

    Merci
    Il est plus facile de dire que de faire.
    Handy-Mobil.fr

  6. #6
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: listing_films")
    Il manque .php au fichier, et pourtant ça fonctionne

    Cela signifie sûrement que tu as un traitement/urlrewriting des noms de fichiers (re-)
    Dans le fichier .htaccess ?
    A voir, donc.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    991
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 991
    Points : 659
    Points
    659
    Par défaut
    Non, je n'utilise pas .htaccess ni un traitement/urlrewriting, c'est un poil compliqué pour moi

    Une idée ?
    Il est plus facile de dire que de faire.
    Handy-Mobil.fr

  8. #8
    Invité
    Invité(e)
    Par défaut
    C'est à toi de nous dire comment/pourquoi ceci fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: listing_films");
    Surtout avec du code html avant header(...)
    => Voir le fonctionnement de : header()
    N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    991
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 991
    Points : 659
    Points
    659
    Par défaut
    Je ne sais pas trop, comme au début, j'avais dit que je ne suis pas un doué dans ce domaine.

    Peut-être cela pourrait t'aider, lors d'édition : process_edit.php, j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: listing_films?id_film=".$_POST['id']."");
    Est-ce que cela te donne une idée ?

    Merci
    Il est plus facile de dire que de faire.
    Handy-Mobil.fr

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bon.
    Essaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	header("Location: listing_films?id_film=".$id_film_add);
    Sinon, je pense que tu as surtout un problème dans la conception globale.
    Jette un oeil à mon tuto : Système de Gestion-Affichage de Nouvelles

    Notamment, cette partie : 4. Administration, Gestion des Nouvelles
    Les formulaires + traitements (Modifier/Ajouter/Supprimer) sont sur la même page, avec des include(), sans besoin de header(...)

    Le principe peut être adapté à tes besoins : => Télécharger l'archive

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    991
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 991
    Points : 659
    Points
    659
    Par défaut
    Je te l'accorde le fait que j'ai un problème de conception, je ne suis pas doué en php&mysql et c'est un fait.

    Merci pour ces liens, je ne te cache pas, je les ai cliqués ces deux liens et j'ai survolé, c'est compliqué pour moi, c'est à dire que je ne comprends pas trop.

    Je vais essayer de lire encore cet après-midi et faire des tests avec le téléchargement proposé, je vais essayer d'adapter.

    Avec ton dernier code source, cela ne passe pas.

    Merci beaucoup pour le temps et la patience que tu m'avais consacré jusqu'à maintenant
    Il est plus facile de dire que de faire.
    Handy-Mobil.fr

Discussions similaires

  1. [MySQL] Comment afficher derniers ajouts
    Par bromlecornu dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/09/2011, 10h01
  2. Réponses: 4
    Dernier message: 30/01/2009, 00h11
  3. [MySQL] Afficher les 3 derniers enregistrements
    Par Wu dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 02/02/2006, 11h04
  4. Réponses: 2
    Dernier message: 02/06/2005, 10h21
  5. [Sprite] Comment les afficher directement à l'écran
    Par fror dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/03/2004, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo