Partage
  • Partager sur Facebook
  • Partager sur Twitter

pb recuperer des données existantes

    24 mai 2011 à 12:08:43

    bonjour,

    J'ai un formulaire de saisie qui me permer d'inserer dans ma table image plusieurs données.
    Cela fonctionne.

    Voici mon problème:

    par exemple quand je veux rentrer un lieu déja connu, il ne veut pas (idem pour les tables auteur, motcles, periode)
    voici mes tables
    image(idimage,titre...,idauteur,idate,idlieu,idmot)
    lieux(idlieu, lieu)

    Je ne sais vraiment pas quoi faire!Comment recuperer les données des autres tables

    Merci d'avance voici mon code:
    <?php
    
    
     // On commence par récupérer les champs 
    if(isset($_POST['titre']))      $titre=$_POST['titre'];
    else      $titre="";
    
    if(isset($_POST['support']))      $support=$_POST['support'];
    else      $support="";
    
    if(isset($_POST['photographe']))      $photographe=$_POST['photographe'];
    else      $photographe="";
    
    if(isset($_POST['date']))      $date=$_POST['date'];
    else      $date="";
    
    if(isset($_POST['provenance']))      $provenance=$_POST['provenance'];
    else      $provenance="";
    
    if(isset($_POST['droitimage']))      $droitimage=$_POST['droitimage'];
    else      $droitimage="";
    
    if(isset($_POST['description']))      $description=$_POST['description'];
    else      $description="";
    
    if(isset($_POST['localisation']))      $localisation=$_POST['localisation'];
    else      $localisation="";
    
    
    if(isset($_POST['nom']))      $nom=$_POST['nom'];
    else      $nom="";
    
    if(isset($_POST['periode']))      $periode=$_POST['periode'];
    else      $periode="";
    
    if(!empty($_POST['lieu']))      $lieu=$_POST['lieu'];
    else      $lieu="";
    
    if(isset($_POST['mot']))      $mot=$_POST['mot'];
    else      $mot="";
    if(isset($_POST['idate']))      $idate=$_POST['idate'];
    else      $idate="";
    
    if(isset($_POST['idauteur']))      $idauteur=$_POST['idauteur'];
    else      $idauteur="";
    
    if(isset($_POST['idlieu']))      $idlieu=$_POST['idlieu'];
    else      $idlieu="";
    
    if(isset($_POST['idmot']))      $idmot=$_POST['idmot'];
    else      $idmot="";
    
    if(isset($_POST['idimage']))      $idimage=$_POST['idimage'];
    else      $idimage="";
     
     require_once("connect.php");
    	$bd=mysql_connect(SERVEUR,NOM,PASSE);
    	mysql_select_db(BASE,$bd);
    	
    	// on regarde dans la table auteur si le nom existe déjà 
    	
    	
    $sql = "SELECT idauteur FROM auteur WHERE nom='$nom'"; 
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    $res= mysql_num_rows($req); 
    
    if($res!=0)  // le nom  existe déjà, on affiche un message d'erreur 
        { 
        echo '<font color="red">Désolé, mais ce nom  existe déjà dans notre base.</font>'; 
        } 
    
    else  // Le nom n'existe pas, on insère d'abord les infos dans auteur
        { 
        $sql = "INSERT INTO auteur (idauteur, nom) VALUES('','$nom')"; 
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    
        // on récupère l'idauteur qui vient d'être généré 
        $idauteur = mysql_insert_id();
    	 
      
        }
        
          
        	// on regarde dans la table dates si la periode existe déjà 
    	
    	
    $sql = "SELECT idate FROM dates WHERE periode='$periode'"; 
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    $res= mysql_num_rows($req); 
    
    if($res!=0)  // la periode  existe déjà, on affiche un message d'erreur 
        { 
        echo '<font color="red">Désolé, mais cette periode  existe déjà dans notre base.</font>'; 
        } 
    
    else  // La periode n'existe pas, on insère d'abord les infos dans dates
        { 
        $sql = "INSERT INTO dates (idate, periode) VALUES('','$periode')"; 
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
        
        // on récupère l'idate qui vient d'être généré 
        $idate = mysql_insert_id();
        
        
        } 
    
         // on regarde dans la table lieux si le lieu existe déjà 
        
        $sql = "SELECT idlieu FROM lieux WHERE lieu='$lieu'"; 
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    $res= mysql_num_rows($req); 
    
    if($res!=0)  // le lieu  existe déjà, on affiche un message d'erreur 
        { 
        echo '<font color="red">Désolé, mais ce lieu  existe déjà dans notre base.</font>'; 
        } 
    
    else  // Le lieu n'existe pas, on insère d'abord les infos dans lieux
        { 
        $sql = "INSERT INTO lieux (idlieu, lieu) VALUES('','$lieu')"; 
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    
        // on récupère l'idlieu qui vient d'être généré 
        $idlieu = mysql_insert_id(); 
    	 
    	
        } 
         
        
          
    	  
    	  // on regarde dans la table motcles si le mot existe déjà 
       
          $sql = "SELECT idmot FROM motcles WHERE mot='$mot'"; 
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    $res= mysql_num_rows($req); 
    
    if($res!=0)  // le mot  existe déjà, on affiche un message d'erreur 
        { 
        echo '<font color="red">Désolé, mais ce mot  existe déjà dans notre base.</font>'; 
        } 
    
    else  // Le mot n'existe pas, on insère d'abord les infos dans motcles
        { 
        $sql = "INSERT INTO motcles (idmot, mot) VALUES('','$mot')"; 
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    
        // on récupère l'idmot qui vient d'être généré 
        $idmot = mysql_insert_id(); 
    	 
    	
    	$sql = "INSERT INTO image (idimage, titre, support, photographe, date, provenance, droitimage, description, localisation, idauteur, idate, idlieu, idmot) VALUES('$idimage','$titre','$support','$photographe','$date','$provenance','$droitimage','$description','$localisation','$idauteur','$idate','$idlieu','$idmot')"; 
    	mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
        } 
    
        
    
    mysql_close($bd);  // on ferme la connexion   
    	
    ?>
    
    <div id="formulaire">
    
     <form action="nouveau3.php" method="post">
       
    
     
    
        <p>Titre:<br/>
        <input name="titre" size="22" value="" type="text"/>
       </p>   
       
       <p>Support:<br/>
        <input name="support" size="22" value="" type="text"/>
       </p>  
       
       <p>Photographe:<br/>
        <input name="photographe" size="22" value="" type="text"/>
       </p>   
       
       <p>Date:<br/>
        <input name="date" size="22" value="" type="text"/>
       </p>
       
        <p>Provenance:<br/>
        <input name="provenance" size="22" value="" type="text"/>
       </p>
       
        <p>Droits:<br/>
        <input name="droitimage" size="22" value="" type="text"/>
       </p>   
        <p>Description:<br/>
       <textarea name="description" rows="10" cols="50" ></textarea>
       </p>  
     
    <p>Localisation dans la photothèque:<br/>
       <textarea name="localisation" rows="10" cols="50" ></textarea>
      </p>
          <p>  Nom du photographe:</p>
            <input name="nom" size="22" value="" type="text"/>
       </p> 
              <p>  Periode :</p>
            <input name="periode" size="22" value="" type="text"/>
       </p> 
       
        <p>  Lieu :</p>
            <input name="lieu" size="22" value="" type="text"/>
       </p> 
             <p>  Mot-clé :</p>
            <input name="mot" size="22" value="" type="text"/>
       </p> 
       
         <input name="Valider" value="Valider" type="submit"/>
       <input name="Effacer" value="Effacer" type="reset"/>
     
    </form>
    
    • Partager sur Facebook
    • Partager sur Twitter
      24 mai 2011 à 13:57:48

      C'est parce que tu met les id à null alors que ce n'est pas possible.
      Essai de faire tes requêtes comme ça :
      INSERT INTO lieux (lieu) VALUES('$lieu')
      
      • Partager sur Facebook
      • Partager sur Twitter
        24 mai 2011 à 14:12:31

        merci de ton interêt en faite ça ne change rien quand je tape une donnée connue, il me met la valeur 0 et pas mon identifiant par exemple (idlieu.

        voici mes tables
        (idimage,titre,....,idlieu)
        lieux(idlieu,lieu)
        • Partager sur Facebook
        • Partager sur Twitter
          24 mai 2011 à 14:31:24

          C'est peut-être parce qu'un identifiant est un entier et que tu lui passe une chaine.
          Mais essaie de modifier tes requêtes SQL comme expliqué dans mon message précédent.
          • Partager sur Facebook
          • Partager sur Twitter
            24 mai 2011 à 14:41:03

            j'ai modifié mes requêtes comme tu m'as dis mais pas de changement.
            Je comprends mon problème d'abord je lui dis de regarder di le lieu existe, et si il existe d'afficher un message d'erreur c'est ce qu'il fait.
            En fait je voudrais que mon programme quand je tape un lieu qui est déja dans ma base récupere son identifiant dans la table image mais je ne sais pas comment

            Encore merci!
            • Partager sur Facebook
            • Partager sur Twitter

            pb recuperer des données existantes

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown