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 :

INSERT INTO .. INNER JOIN


Sujet :

PHP & Base de données

  1. #21
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 69
    Par défaut
    Madfrix, la partie admin est protégée par session et pwd

    vaut également et
    vaut Juste une question de rapidité ;-)

    Sabotage: Tu as raison; je vais remédier à cela ;-) Merci

  2. #22
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Citation Envoyé par soksabaidee Voir le message
    Madfrix, la partie admin est protégée par session et pwd

    <? ?> vaut également <?php ?> et
    <?php echo "chaine";?> vaut <?= "chaine";?>

    Juste une question de rapidité ;-)

    Sabotage: Tu as raison; je vais remédier à cela ;-) Merci
    Oui mais c'est moche et ca peut poser problème dans le premier cas

  3. #23
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 69
    Par défaut
    Voilà, j'ai modifié ma requête SQL tout s'inscrit correcteur dans php myadmin sauf qu'il le reprend pas ID auto incrémenté de la table pays.

    Voici le code... Que dois-je faire?

    Merci d'avance

    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
    98
    99
    100
    101
    102
    103
    104
     
    <?
    	require("inc.connect.php");
    	require("inc.security.php");
     
    	if(isset($_POST['button'])){
     
    		$erreur = "";
     
    		if($_POST['name_district']==""){
    			$erreur .="<p>Veuillez rentrer le nom du département</p>";
    		} else{
    			$name_district = $_POST['name_district'];
    		}
    		$id = $_POST['id'];
     
    		if($erreur == ""){
    			if($_POST['id']==""){
    				$sql="
    				INSERT INTO district(
    				id_country,
    				name_district
    				) VALUES (
    				'$id_country',
    				'$name_district'
    				)
    				";
    			} else{
    				$sql="UPDATE district SET
    					  name_district='$name_district',
    					  id_country='$id_country'
    					  WHERE id_district=" . $_POST['id'];
    			}
    			$result = mysql_query($sql);
    			if(!$result){
    				$erreur = "Problème SQL : " . "<br />" . $sql . "<br />" . mysql_error();
    			} else{
    				header("location: list_estate.php");
    			}
    		}
    	} else if(isset($_GET['id']) && $_GET['id']!=""){
    		$sql = "SELECT * FROM district 
    				INNER JOIN country ON country.id_country=district.id_country
    				WHERE id_district=" . $_GET['id'];
     
    		$result = mysql_query($sql);
    		if($result){
    			while($ligne = mysql_fetch_array($result)){
    				$id=$ligne['id_district'];
    				$id_country=$ligne['id_country'];
    				$name_district=$ligne['name_district'];
    			}
    		}
    	}
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Insertion d'un nouveau bien</title>
    <link href="../css/admin.css" rel="stylesheet" type="text/css" media="screen" />
    </head>
    <body>
    <div id="wrapper">
    <h1>INSERTION D'UN NOUVEAU DEPARTEMENT:</h1>
    <?= $erreur ?>
    	<form id="form1" name="form1" method="post" action="<?= $_SERVER['PHP_SELF']; ?>" >
    		<p>
            	<label>Pays:
                    <select id="id_country" name="id_country">
    					<option value="">----</option>
    					<?
    						$sql = "SELECT * FROM country ORDER BY id_country";
    						$result = mysql_query($sql);
    						if(!$result){
    							echo "Pas de résultats";
    						} else{
    							while ($ln_country = mysql_fetch_array($result)){
    								if ($ln_country['id_country']==$id_country){
    									$selected="selected='selected'";
    								} else{
    									$selected="";
    								}
    								echo "<option value='" . $ln_country['id_country'] ."' $selected>" . utf8_encode ($ln_country['name_country']) . "</option>";
    							}
    						}
    					?>
                    </select>
                </label>		
    		</p>
        	<p>
            	<label>Nom du département / province:<br />
                	<input type="text" name="name_district" id="name_district" value="<?=utf8_encode($name_district)?>" />
            	</label>*
    			    <input type="hidden" name="id" id="hiddenField" value="<?=$id?>" />
        	</p>
    		<p>
            	<label>
                	<input type="submit" name="button" id="button" value="Envoyer" />
                </label>
            </p>		
    	</form>
    </body>
    </html>

  4. #24
    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
    Par défaut
    $id_country n'est pas défini dans ton script.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #25
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 69
    Par défaut
    mais je pense l'avoir déclaré... Si pas où donc?

    Merci de votre aide

  6. #26
    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
    Par défaut
    A quel endroit de ton script penses-tu l'avoir fait ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #27
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 69
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_country=$ligne['id_country'];
    Non? J'avoue je suis perdu

  8. #28
    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
    Par défaut
    Cette ligne est apres la requête donc ca ne peut pas marcher.
    De plus ce n'est pas cette valeur que l'on veut. Reprends mes messages, je t'ai dis 5 fois comment faire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #29
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2010
    Messages : 5
    Par défaut
    Bonjour, je me permets de remonter ce sujet, j'ai un problème similaire...

    Je vous explique: je suis en stage de développement web et je dois créer un site qui permette d'enregistrer des news dans une base de données mysql. J'ai créé le formulaire et la page php qui se charge de récupérer les données, mais quand j'exécute le code, rien ne se stocke dans ma base de données, malgré le fait que le message que j'ai généré ("insertion réussie") s'affiche.

    J'ai beaucoup cherché pour trouver une solution et j'avoue que je m'y perds un peu, en effet, dans le formulaire on peut sélectionner des options dans des listes déroulantes (un journal, une rubrique, une commune), or j'avais intégré ces données dans ma requête insert et forcément ça m'a ajouté ces données, or ce n'est pas ce que je veux faire, du coup je ne sais pas comment traiter ces données issues d'une liste déroulante...

    Je me suis également rendue compte qu'il y avait un problème de logique dans mes requêtes, en effet j'essayais d'ajouter des clés étrangères avant des clés primaires... Et pour les requêtes insert into, je ne sais pas quelle syntaxe utiliser, je vois de tout sur le net... Des simples quotes, des double quotes avec des points pour concaténer, bref je ne m'y retrouve pas...

    J'ai également des problèmes pour l'envoi d'un fichier: les news sont en fait des images ou des documents pdf que l'utilisateur va rechercher sur son disque dur. Et je ne vois pas vraiment comment stocker ces information dans ma base de données, ne fût-ce que l'url du fichier...

    Voici le code de mon formulaire:

    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
    <form method="post" action="affichage_news.php" enctype="multipart/form-data">
            <strong>Titre : </strong><input type="text" name="titre_news" size="60"><br/><br/>
            <strong>Sous-titre : </strong><input type="text" name="soustitre_news" size="60"><br/><br/>
            <strong>Journal : </strong>
             <p>
                <?php
     
                    // liste déroulante des noms de journaux
                    echo "<select name=\"nom_journal\">";
     
                    $journal = "SELECT nom_journal FROM journal";
                    $result = mysql_query($journal);
     
                    while($row = mysql_fetch_array($result))
                    {
                        echo "<option value='" . $row["nom_journal"]. "'>" .$row["nom_journal"]. "</option>";
                    }
                    echo "</select>";
                ?>
             </p>
            <strong>Rubrique : </strong>
             <p>
                <?php
     
                    // liste déroulante des noms de rubriques
                    echo "<select name=\"nom_rubrique\">";
     
                    $rubrique = "SELECT nom_rubrique FROM rubrique";
                    $result = mysql_query($rubrique);
     
                    while($row = mysql_fetch_array($result))
                    {
                        echo "<option value='" . $row["nom_rubrique"]. "'>" .$row["nom_rubrique"]. "</option>";
                    }
                    echo "</select>";
                ?>
             </p>
            <strong>Commune : </strong>
             <p>
                <?php
     
                    // liste déroulante des noms de communes
                    echo "<select name=\"nom_commune\">";
     
                    $commune = "SELECT nom_commune FROM commune";
                    $result = mysql_query($commune);
     
                    while($row = mysql_fetch_array($result))
                    {
                        echo "<option value='" . $row["nom_commune"]. "'>" .$row["nom_commune"]. "</option>";
                    }
                    echo "</select>";
                ?>
             </p>
     
                <?php
                mysql_close($db);
                ?>
                <!--fonction date du jour-->
            <strong>Date de création : </strong>le 
            <?php
            $date_creation = date('d/m/Y');
            echo $date_creation;
            ?>
     
            <br/><br/>
            <strong>Date de parution : </strong><input type="text" name="date_parution"><br/><br/>
            <strong>Fichier image : </strong><input type="file" name="url_image"><br/><br/>
            <input type="submit" value="Envoyer" class="btn_envoi">    
              </form>
    Et le code de la page php qui se charge de récupérer les données (j'ai mis en commentaires les données relatives aux listes déroulantes, puisque je ne dois pas les insérer):

    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
    <?php
     
    $titre = $_POST["titre_news"];
    $sous_titre = $_POST["soustitre_news"];
    $journal = $_POST["nom_journal"];
    $rubrique = $_POST["nom_rubrique"];
    $commune = $_POST["nom_commune"];
    $date_creation = strftime("%d/%m/%y");
    $date_parution = $_POST["date_parution"];
    $image = $_FILES["url_image"]["name"];
     
     
    //$req_journal = "INSERT INTO journal(id_journal, nom_journal)
    //                VALUES('', '$journal')";
    //echo $req_journal . "<br/>";
    //
    //$req_rubrique = "INSERT INTO rubrique(id_rubrique, nom_rubrique)
    //                VALUES('', '$rubrique')";
    //echo $req_rubrique . "<br/>";
    //
    //$req_commune = "INSERT INTO commune(id_commune, code_postal, nom_commune)
    //                VALUES('', '', '$commune')";
    //echo $req_commune . "<br/>";
     
    $req_image = "INSERT INTO image(id_image, nom_image, url_image)
                 VALUES('', '', '".$image."')";
    echo $req_image . "<br/>";
     
    $req_news = "INSERT INTO news(id_news, titre_news, soustitre_news, date_creation, date_parution, id_image)
                VALUES('','".$titre."','".$sous_titre."','".$date_creation."','".$date_parution."','')";
    echo $req_news . "<br/>";
     
     
    //$result_journal = mysql_query($req_journal) or die('erreur : ' . mysql_error());
    //$result_rubrique = mysql_query($req_rubrique) or die('erreur : ' . mysql_error());
    //$result_commune = mysql_query($req_commune) or die('erreur : ' . mysql_error());
    $result_image = mysql_query($req_image) or die('erreur : ' . mysql_error());
    $result_news = mysql_query($req_news) or die('erreur : ' . mysql_error());
     
    if(($result_image) && ($result_news))
        {
            echo "Insertion réussie<br/><br/>";
            echo "<a href='formulaire_news.php'>Revenir au formulaire</a>";
        }
     
    else
    {
        echo "Echec lors de l'insertion des données.";
        include("formulaire_news.php");
    }
     
    mysql_close($db);
    ?>
    En plus du code j'ai également fait des echo sur mes requêtes pour voir ce qui clochait...

    Je suis désolée si tout cela est un peu confus, mais je suis vraiment perdue, j'ai passé mon temps à chercher sur internet et mon maître de stage n'est pas souvent disponible...

    Un grand merci d'avance à celui ou celle qui pourra m'aider s'il vous plaît, je désespère...

    Edit: c'est bon, j'ai trouvé le problème, je n'insérais pas dans la bonne base de données... Par contre maintenant je cherche comment récupérer les valeurs des listes déroulantes, parce que forcément quand je fais des insert ça me rajoute les données dans la table... J'ai découvert la fonction mysql_insert_id, est-ce bien celle-là que je dois utiliser?

Discussions similaires

  1. [AC-2007] Problème de jointure dans INSERT INTO avec INNER JOIN
    Par andy331 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 16/03/2010, 15h59
  2. Problème d'insert into avec inner join
    Par guivrator dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/04/2009, 15h43
  3. Réponses: 5
    Dernier message: 19/10/2006, 14h28
  4. erreur SQL ...INSERT INTO
    Par naidinp dans le forum ASP
    Réponses: 20
    Dernier message: 18/09/2003, 11h38
  5. Insert Into + Date
    Par BoeufBrocoli dans le forum SQL
    Réponses: 10
    Dernier message: 13/08/2003, 11h23

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