Récupérer valeurs bouton déroulant PHP/MYSQL

Pepouze18
Invité n'ayant pas de compte PHPfrance

22 avr. 2014, 21:23

J'ai créer deux tables materiel/logiciel avec dans la table matériel une liste de pc et dans la table logiciel un petite liste de logiciel. J'ai créer une page comme ci dessous :

http://zupimages.net/up/14/17/8zg5.png


On peut visualiser les tables et par conséquant voir leur id. J'ai ensuite créer deux boutons déroulants avec en contenu les id des champs des tables :
<br></br>
    <form action="" method="post" id=test> 
         <?php 
 
      include 'fonctions.connect.php'; 
      $id_mat = "SELECT id_mat FROM Materiel"; 
      $nom_logi = "SELECT id_log FROM Logiciel";  
      $res2 = mysql_query($id_mat);
      $res3 = mysql_query($nom_logi);
      ?>
                <form action="test.php" id="test"><select name="id_mat" id="nom_mat"> 
                <option value='-1'>----Choisissez l'ID d'un matériel -----</option> 
                <?php 
                while ($row2 = mysql_fetch_array($res2))   
                { 
                $mat = $row2['id_mat']; 
                echo "<option value='$mat'>$mat</option>"; 
                }  
                ?> 
                </SELECT>
                <br></br>
		<div> 
                
                <select name="id_log" id="inv_log"> 
                <option value='-1'>----Choisissez l'ID d'un logiciel -----</option> 
                <?php 
                while ($row3 = mysql_fetch_array($res3))   
                { 
                $nom = $row3['id_log']; 
                echo "<option value='$nom'>$nom</option>"; 
                }  
                ?> 
                 
                </select>
	 	</div> 
        <br></br>
		 <div> <input type="submit", name="submit" Value="Ajouter"></form></div>
     <br></br>

J'ai ensuite ajouter un bouton ajouter,

et je veux que quand on clique dessus, il ajoute l'id du matériel et l'id du logiciel dans une table installer qui aura comme champs id_mat et id_log.

J'ai donc affecter a mon bouton le code php ci dessous :
<?php

include 'fonctions.connect.php';

<?php
if(isset($_POST['id_log'] && $_POST['id_mat']))

{


$id_log = (int) $_POST['id_log']
$id_mat = (int)  $_POST['id_mat']

$sql = "INSERT INTO installer (id_mat,id_log) VALUES ('$id_mat','$id_log' )";
mysql_query($sql) ;

}

?>

Mais ça ne marche pas.

Merci d'avance

Eléphant du PHP | 58 Messages

23 avr. 2014, 08:18

Remplaces
if(isset($_POST['id_log'] && $_POST['id_mat']))
par
if(isset($_POST['id_log'], $_POST['id_mat']))

Ibilolzrep
Invité n'ayant pas de compte PHPfrance

23 avr. 2014, 11:14

toujours pas, j'ai une erreur quand je clique sur ajouter :

arse error: syntax error, unexpected '<' in C:\wamp\www\test3\test.php on line 5

Eléphant du PHP | 58 Messages

23 avr. 2014, 12:27

Tu n'as pas besoin de "ré-ouvrir" le PHP, il faut que tu supprimes <?php à la ligne 5.

Pepouze18
Invité n'ayant pas de compte PHPfrance

23 avr. 2014, 15:29

En faisant :
<?php 
 
      include 'fonctions.connect.php'; 
      $id_mat = "SELECT id_mat FROM Materiel"; 
      $nom_logi = "SELECT id_log FROM Logiciel";  
      $res2 = mysql_query($id_mat);
      $res3 = mysql_query($nom_logi);
      ?>
                <form action="test.php" id="test"><select name="test1" id="test1"> 
                <option value='-1'>----Choisissez l'ID d'un matériel -----</option> 
                <?php 
                while ($row2 = mysql_fetch_array($res2))   
                { 
                $mat = $row2['id_mat']; 
                echo "<option value='$mat'>$mat</option>"; 
                }  
                ?> 
                </SELECT>
                <br></br>
  <div> 
                
                <select name="test2" id="test2"> 
                <option value='-1'>----Choisissez l'ID d'un logiciel -----</option> 
                <?php 
                while ($row3 = mysql_fetch_array($res3))   
                { 
                $nom = $row3['id_log']; 
                echo "<option value='$nom'>$nom</option>"; 
                }  
                ?> 
                 
                </select>
   </div> 
        <br></br>
   <div> <input type="submit", name="submit" Value="Ajouter">
            </form></div>
     <br></br>
           <footer>

                        <p class="ligne_dessus"> Réalisé par Thomas Kraëber. </p>
    
                        <p class="barre"></p>  

        </footer>
  </body>
</html>

Avec mon test.php :
<?php

include 'fonctions.connect.php';


if(isset($_POST['test1'], $_POST['test2']))

{


$test1 =  $_POST['test1'];
$test2 =  $_POST['test2'];

$sql = "INSERT INTO installer (id_mat,id_log) VALUES ('$test1','$test2' )";

mysql_query($sql) ;

}

?>
ça ne marche toujours pas

Eléphant du PHP | 58 Messages

23 avr. 2014, 15:58

Peux-tu poster le résultat de
<?php
include 'fonctions.connect.php';

if(isset($_POST['test1'], $_POST['test2'])) {
    $test1 =  $_POST['test1'];
    $test2 =  $_POST['test2'];

    $sql = "INSERT INTO installer (id_mat,id_log) VALUES ('$test1','$test2' )";

    var_dump(mysql_query($sql));
} else {
    var_dump($_POST);
}

?>
Et à l'occasion, remplaces les fonctions mysql_... par mysqli_... car elles sont obsolète depuis PHP 5.5 !

Eléphant du PHP | 58 Messages

23 avr. 2014, 16:00

Ajoute
method="POST"
dans ton form, a priori il est a GET par défaut c'est pourquoi ton $_POST doit être vide !

Pepouze18
Invité n'ayant pas de compte PHPfrance

23 avr. 2014, 16:21

Ok, j'ai rajouté la méthode post : <form action="test.php" method="post" id=test><select name="test1" id="test1"> , il me redirige bien vers test.php lors que clique sur ajouter mais rien ne s'ajoute :/

Eléphant du PHP | 58 Messages

23 avr. 2014, 16:45

Et si tu mets dans test.php les modifications que j'ai posté avant, tu obtiens quel résultat ?