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 :

Demande d'aide sur une requête


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 25
    Par défaut Demande d'aide sur une requête
    Bonjour à tous, je cherche à réaliser un tableau à 4 colonnes (Caméra, Emprunteur, Heure d'emprunt, Valider). La première colonne caméra liste toutes les caméras se trouvant dans la bdd et pour les autres colonnes c'est à l'utilisateur de les remplir.

    Petit exemple, si sur ma 1ère ligne il y a caméra 1, l'utilisateur devra remplir sur cette même ligne le champs Emprunteur et l'heure d'emprunt et appuyer sur le bouton valider pour que l'Emprunteur et l'heure d'emprunt soient inscrits dans la base.

    Mon problème est que j'arrive pas à formuler la requête nécessaire. J'arrive à inscrire l'Emprunteur et l'heure d'emprunt mais le problème est qu'il me génère une nouvelle ligne dans ma table (ce qui est logique) et moi j'aimerais que si l'Emprunteur décide d'emprunter la caméra une et qu'il remplit la ligne de la caméra une en y remplissant les champs Emprunteur et heure d'emprunt, que lorsqu'il appuie sur le bouton valider, les champs Emprunteur et heure d'emprunt soient correctement mis sur la même ligne que caméra une dans la BDD.

    J'ai une BDD de une table de 4 colonnes (id_materiel, materiel, emprunteur, heure_emprunt)

    Voici le code

    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
    <?php
    	try
    	{
    		$bdd = new PDO('mysql:host=***;dbname=***;charset=utf8', '*', '*',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    	}
    	catch (Exception $e)
    	{
            die('Erreur : ' . $e->getMessage());
    	}
     
    	if (isset($_POST['emprunter']) && !empty($_POST['emprunter']) == 'Emprunter') 
    	{
    		if (isset($_POST['emprunteur']) && !empty($_POST['emprunteur'])
    		&& isset($_POST['heure_emprunt']) && !empty($_POST['heure_emprunt']))
    		{
    			$bdd->exec('INSERT INTO resine_materiel(emprunteur, heure_emprunt) VALUES("'.$_POST['emprunteur'].'", "'.$_POST['heure_emprunt'].'")');
    		}
    	}
     
    	$lecture = $bdd->query('SELECT * FROM resine_materiel');
     
    	echo "<table class='table'>
    			<thead>
    				<tr>
    					<th>Caméra</th>
    					<th>Emprunteur</th>
    					<th>Heure d'emprunt</th>
    					<th>Valider</th>
    				</tr>
    			</thead>";
     
    	while($donnees_materiel=$lecture->fetch(PDO::FETCH_ASSOC)) // On lit les entrées une à une grâce à une boucle
    	{
    		$nom_materiel = $donnees_materiel['nom_materiel'];
    		echo "<tr>";
    ?>
     
    					<form method="post" action="index.php">
    						<td><?php echo $nom_materiel;?></td>
    						<td><input type='text' name='emprunteur'></td>
    						<td><input type='text' name='heure_emprunt'></td>
    						<td><input type='submit' value='Emprunter' name='emprunter'></td> 
    					</form>
    <?php
    	echo "</tr>";		
    	}
    	echo "</table>";
    ?>
    <html>
    	<head>
    		<title>Accueil</title>
    	</head>
    	<body>
    		<!--<h1><center><strong>Liste du materiel</strong></center></h1>-->
     
    	</body>
    </html>
    Merci à tous

  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
    Par défaut
    - Tu t'es emmelé avec les isset et les empty
    - On ne met pas des valeurs venant d'un utilisateur directement dans une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (isset($_POST['emprunter']) && $_POST['emprunter'] == 'Emprunter') 
    	{
    		if (!empty($_POST['emprunteur']) && !empty($_POST['heure_emprunt']))
    		{
    			$sth = $bdd->prepare('INSERT INTO resine_materiel(emprunteur, heure_emprunt) VALUES(:emprunteur, :heure_emprunt)';
    			$sth->execute(array(':emprunteur'=>$_POST['emprunteur'], ':heure_emprunt'=>$_POST['heure_emprunt']));
    		}
    	}
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [11gR2] Demande aide sur une requête SQL
    Par Igname dans le forum SQL
    Réponses: 17
    Dernier message: 08/10/2013, 10h08
  2. demande d'aide sur une requête d'update
    Par jmclej dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/02/2013, 10h41
  3. Demande d'aide sur une requête
    Par gandalf_le_blanc dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 02/11/2011, 04h21
  4. demande d'aide sur une requête sql serveur
    Par PHPkoala dans le forum Développement
    Réponses: 8
    Dernier message: 30/09/2009, 15h11
  5. Aide sur une requête (Group By...??)
    Par Cocolapin dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/12/2004, 10h26

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