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 :

Listing des nom de ma base de donnée, champ vide qui apparaissent tout seul


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut Listing des nom de ma base de donnée, champ vide qui apparaissent tout seul
    Bonjour à tous !

    Donc j'ai un soucis. J'ai mon panneau d'admin qui me permet de lister tous les films qui sont dans la base de donnée (site pour un cinéma).
    Et depuis peu, des cases vide apparaissent dans la base de donnée...


    Exemple dans ma base de donnée :


    Mon code de listing :
    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
    93
    94
    95
    96
    97
    <?php
    mysql_connect("*******", "*******", "********");
    mysql_select_db("********");
    if (isset($_GET['supprimer_film'])) // Si on demande de supprimer un film
    {
        // On protège la variable "id" pour éviter une faille SQL
        $_GET['supprimer_film'] = addslashes($_GET['supprimer_film']);
        mysql_query('DELETE FROM film WHERE id=\'' . $_GET['supprimer_film'] . '\'');
    	mysql_query('DELETE FROM horaire WHERE idfilm=\'' . $_GET['supprimer_film'] . '\'');
    }
     
    if (
    	isset($_POST['nomfilm']) AND
    	isset($_POST['realisateurfilm'])  AND  
    	isset($_POST['synopsis'])  AND 
    	isset($_POST['bandeannoncefilm'])  AND 
    	isset($_POST['jourdebut']))
    {
       		$nomfilm = $_POST['nomfilm'];
    		$acteurfilm =  $_POST['acteurfilm'];
    		$realisateurfilm = $_POST['realisateurfilm'];
    		$synopsis = $_POST['synopsis'];
    		$bandeannoncefilm = $_POST['bandeannoncefilm'];
    		$jourdebut =  $_POST['jourdebut'];
    		$prochainement = $_POST['prochainement'];
    		$publicfilm = $_POST['publicfilm'];
    		$genrefilm = $_POST['genrefilm'];
    		$indicefilm = $_POST['indicefilm'];
    		$handicape = $_POST['handicape'];
    		$date_exploser = explode('/', $jourdebut);
    		$jourfin = date("Y-m-d", mktime(0,0,0,$date_exploser[1], $date_exploser[2]+7, $date_exploser[0]));
    		$horaire = $_POST['horaire'];
     
        // On vérifie si c'est une modification de film ou pas
        if ($_POST['id'] == 0 AND
    		isset($_FILES['affichefilm'])&&($_FILES['affichefilm']['error'] == 0))
        {
    		$heure = $_POST['heure'];
    		$minute = $_POST['minute'];
    		$dureefilm = $heure."h".$minute;
    		$affichefilm = $_FILES['affichefilm']['name'];
    		$ext = $_FILES['affichefilm']['name'];
    		$ext = strrchr(strtolower($ext), '.');
     
            // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
            mysql_query("INSERT INTO film VALUES('', '".utf8_decode($nomfilm)."', 'images/', '".utf8_decode($realisateurfilm)."', '".utf8_decode($acteurfilm)."',  '".utf8_decode($synopsis)."', '".utf8_decode($bandeannoncefilm)."', '".$dureefilm."', '".$jourdebut."', '".$jourfin."', '".$prochainement."', '".utf8_decode($publicfilm)."', '".utf8_decode($genrefilm)."', '" .$indicefilm. "', '" .$handicape. "', '', '', '')");
    		$dernier_id = mysql_insert_id();
     
     
    		//Renomnage de l'image puis upload.
    		$nomfichier = mysql_insert_id().$ext;
    		move_uploaded_file($_FILES['affichefilm']['tmp_name'], '../images/films/'.$nomfichier);
    		$test = mysql_query("UPDATE film SET affichefilm='images/films/".$nomfichier."' WHERE id='".$dernier_id."'");
     
    		$horaire = $_POST["horaire"];
    		//Boucle pour rentrer les valeurs des horaires pour chaque jours b.
    			for ($b=0; $b<7; $b++){
    				mysql_query("INSERT INTO horaire VALUES('', '".$dernier_id."', '".$b."', '".$horaire[$b][0].$horaire[$b][1].$horaire[$b][2]."<br />".$horaire[$b][3]."')");
    			}
     
    			echo '<h2 align="center">Nouveau film enregistré</h2><br />';
        }
        else
        {	
    		$dureefilm = $_POST['dureefilm'];
            // On protège la variable "id" pour éviter une faille SQL
            $_POST['id'] = addslashes($_POST['id']);
            // C'est une modification, on met juste à jour
            mysql_query("UPDATE film SET nomfilm='".utf8_decode($nomfilm)."', realisateurfilm='".utf8_decode($realisateurfilm)."', acteurfilm='".utf8_decode($acteurfilm)."', synopsis='".utf8_decode($synopsis)."', bandeannoncefilm='".utf8_decode($bandeannoncefilm)."', dureefilm='" . $dureefilm . "', genrefilm='" .utf8_decode($genrefilm) . "', indicefilm='". $indicefilm ."', publicfilm='" . $publicfilm ."', datedebutfilm='" . $jourdebut . "', datefinfilm='" . $jourfin . "', prochainement='" . $prochainement . "', handicape='" . $handicape . "' WHERE id='" . $_POST['id'] . "'");
    		mysql_query("DELETE FROM horaire WHERE idfilm='" . $_POST['id'] . "'");
    		for ($b=0; $b<7; $b++){
    				mysql_query("INSERT INTO horaire VALUES('', '" . $_POST['id'] . "', '".$b."', '".$horaire[$b][0].$horaire[$b][1].$horaire[$b][2]."<br />".$horaire[$b][3]."')");
    			}
    			echo '<h2 align="center">Modification film enregistrée</h2><br />';
        }
    }
     
    ?>
    <h3 align="center"><a href="admin_rediger.php">Ajouter un film</a></h3><br />
    <table width="500px;" border="1" align="center"><tr>
    <th>Titre du film</th>
    <th>Modification</th>
    <th>Suppression</th>
    </tr>
    <?php
    $retour = mysql_query('SELECT * FROM film ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les films
    {
    ?>
    <tr>
    <td align="left"><?php echo htmlentities(trim($donnees['nomfilm'])); ?></td>
    <td align="center"><?php echo '<a href="admin_rediger.php?modifier_film=' . $donnees['id'] . '">'; ?>Modifier</a></td>
    <td align="center"><?php echo '<a href="admin_modifier.php?supprimer_film=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
    </tr>
    <?php
    } // Fin de la boucle qui liste les films
    ?>

    Et un screen de ce que ça peut donner :



    Merci à ceux qui jetteront un oeil !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    D'apres toi est ce que ce sont des lignes existantes qui sont mises à jour ou des lignes qui sont inserées ?

  3. #3
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Ben je pense à des ligne qui ont été mal supprimé... Mon id max était 50 et toutes les lignes vide était des id inférieur à 50.

    Aucun film ne se supprime, aucun ne se modifie tout seul, mais pourtant ces cases vides s'ajoutent...

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Non, un DELETE ne peut pas donner ça.

  5. #5
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Cela peut venir de quoi alors ?
    Je n'ajoute rien, je ne modifie rien, et par exemple demain quand je vais aller sur le panneau d'admin, les cases vont réapparaitre...

    C'est bizarre...

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Soit un INSERT soit un UPDATE avec des valeurs vides.
    Si tu ne sais pas determiner si ce sont des lignes qui ont perdu leurs valeurs ou de nouvelles lignes, tu peux toujours regarder toutes les requetes qui sont executées : enregistre dans un fichier les requetes telles qu'elles sont executées et quelques variables en jeu à ce moment la.

  7. #7
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Oula, j'ai compris la théorie, mais pourrais-tu m'aider dans la pratique ?

    Merci d'avance !

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // au début de ton code, tu ouvres un fichier de log
    $handle = fopen('log.txt','a');
    .....
    // ta requete normale
    $sql  = "INSERT INTO film VALUES('', '".utf8_decode($nomfilm)."', 'images/', '".utf8_decode($realisateurfilm)."', '".utf8_decode($acteurfilm)."',  '".utf8_decode($synopsis)."', '".utf8_decode($bandeannoncefilm)."', '".$dureefilm."', '".$jourdebut."', '".$jourfin."', '".$prochainement."', '".utf8_decode($publicfilm)."', '".utf8_decode($genrefilm)."', '" .$indicefilm. "', '" .$handicape. "', '', '', '')"
     mysql_query($sql);
     
    // on ecrit la requete dans notre fichier
    fwrite($handle,"INSERT\r\n" .  $sql . "\r\n");
    Comme ca tu pourras suivre tout ce qui se passe.

  9. #9
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Ok je test ça, et je posterais le résultat dans quelques jours !

    Merci beaucoup en tout ça

  10. #10
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Fichier vide, et ce matin des lignes vides sont réapparu !!!

    Soucis je crois ... Non ?

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Non ca va seulement dire que tu n'as pas eu de requete d'INSERT.
    Fais la meme avec la requete d'UPDATE.

  12. #12
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Justement je l'avais fait avec les deux, comme ceci :


    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
    <?php
    // au début de ton code, tu ouvres un fichier de log
    $handle = fopen('log.txt','a');
    ?>
    ...
     
    // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
            $sql = "INSERT INTO film VALUES('', '".utf8_decode($nomfilm)."', 'images/', '".utf8_decode($realisateurfilm)."', '".utf8_decode($acteurfilm)."',  '".utf8_decode($synopsis)."', '".utf8_decode($bandeannoncefilm)."', '".$dureefilm."', '".$jourdebut."', '".$jourfin."', '".$prochainement."', '".utf8_decode($publicfilm)."', '".utf8_decode($genrefilm)."', '" .$indicefilm. "', '" .$handicape. "', '', '', '')";
    		mysql_query($sql);
    		// on ecrit la requete dans notre fichier
    fwrite($handle,"INSERT\r\n" .  $sql . "\r\n");
     
    ...
     
    // C'est une modification, on met juste à jour
            $sql2 = "UPDATE film SET nomfilm='".utf8_decode($nomfilm)."', realisateurfilm='".utf8_decode($realisateurfilm)."', acteurfilm='".utf8_decode($acteurfilm)."', synopsis='".utf8_decode($synopsis)."', bandeannoncefilm='".utf8_decode($bandeannoncefilm)."', dureefilm='" . $dureefilm . "', genrefilm='" .utf8_decode($genrefilm) . "', indicefilm='". $indicefilm ."', publicfilm='" . $publicfilm ."', datedebutfilm='" . $jourdebut . "', datefinfilm='" . $jourfin . "', prochainement='" . $prochainement . "', handicape='" . $handicape . "' WHERE id='" . $_POST['id'] . "'";
    		mysql_query($sql2);
    		// on ecrit la requete dans notre fichier
    fwrite($handle,"INSERT\r\n" .  $sql2 . "\r\n");

    Et il n'y a pas d'autre requête concernant la table film... A part le delete !

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/02/2011, 18h52
  2. Réponses: 1
    Dernier message: 25/11/2008, 11h11
  3. Afficher la liste des Tables d'un Base de Donnée.
    Par faressam dans le forum VBA Access
    Réponses: 3
    Dernier message: 18/03/2008, 05h36
  4. Liste des tables d'une bases de données spécifique
    Par faridos23 dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/08/2003, 22h20
  5. Liste des tables d'une bases de données spécifique
    Par faridos23 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 26/08/2003, 22h20

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