[RESOLU] Afficher information d'une colonne à partir des autres de la même ligne

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Afficher information d'une colonne à partir des autres de la même ligne

Re: [RESOLU] Afficher information d'une colonne à partir des autres de la même ligne

par Vladeo » 13 juil. 2015, 09:42

Salut @rthur, merci de ta réponse rapide, et effectivement je confond beaucoup de chose, j'essaie de me documenter un maximum mais je t'avoue que c'est un peu compliqué pour moi.
Faut-il que j'utilise PDO comme ceci ?

Code : Tout sélectionner

$pdo->query('SELECT age FROM Utilisateurs WHERE Nom = \'echo $_POST['nom']\'');

Re: [RESOLU] Afficher information d'une colonne à partir des autres de la même ligne

par @rthur » 13 juil. 2015, 09:23

Bonjour,

Tu mélanges l'utilisation de PDO et des fonctions mysql_*
Il faut que tu utilises PDO également pour passer tes requêtes et plus mysql_query()

Re: [RESOLU] Afficher information d'une colonne à partir des autres de la même ligne

par Vladeo » 13 juil. 2015, 09:03

Merci beaucoup pour vos réponses !
Si jamais quelqu'un se sent encore l'âme de me donner un tuyaux, j'ai cette erreur quand je fais ma démarche:
"Erreur SQL !
SELECT age FROM Utilisateurs WHERE Nom LIKE 'joe'
No database selected
"
Mais j'ai bien "joe" dans ma base de donnée :mrgreen:

voilà mes deux fichiers:

Code : Tout sélectionner

Entrez votre Prénom et Nom pour nous communiquer combien de temps vous avez couru !<br/> <form action="test.php" method="post"> <p> Prénom: <input type="text" name="Prenom" /> Nom: <input type="text" name="Nom" /> <input type="submit" value="Valider" /> </p> </form>
test.php

Code : Tout sélectionner

<?php include("fcourse.php"); //fichier de connexion à ma base de donnée (peut être useless vu que je me connecte après) try { $bdd = new PDO('mysql:host=localhost;dbname=MaBase;charset=utf8', 'root', 'root'); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } $sql = "SELECT age FROM Utilisateurs WHERE Nom LIKE '".mysql_escape_string($_POST['Nom'])."'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); while($data = mysql_fetch_assoc($req)) { echo $_data['age']; } ?> Nous avons <strong> <?php echo $data['age'] ?></strong> heures de promesse de course !<br /> <p>Merci de partager votre résultat !<br/> <?php mysql_close(); ?>

Re: [RESOLU] Afficher information d'une colonne à partir des autres de la même ligne

par tof73 » 10 juil. 2015, 15:55

$sql = "SELECT age FROM Utilisateurs WHERE nom LIKE 'echo $_POST['nom']'";
plutôt :
$sql = "SELECT age FROM Utilisateurs WHERE nom LIKE '".mysql_escape_string($_POST['nom'])."'";

Re: [RESOLU] Afficher information d'une colonne à partir des autres de la même ligne

par Rukien » 10 juil. 2015, 15:46

Salut,

Compare avec ta solution, ça doit venir de là :

Code : Tout sélectionner

echo $data['age']
mysql_fetch_assoc te permet de récupérer le résultat de ta requête sous forme de tableau associatif. Le résultat de cette fonction est stocké dans ta variable $data : aucune raison d'aller chercher dans $_POST :)

Sinon pour la recherche par nom, effectivement ça va marcher. Mais il faut t'assurer que le nom soit unique, sinon tu pourra récupérer plus d'un résultat dans certains cas !

Re: [RESOLU] Afficher information d'une colonne à partir des autres de la même ligne

par Vladeo » 10 juil. 2015, 15:27

Au pire des cas, si tu passes par là, peut-être tu pourrais me dire ce que est faux dans mon code, je tente des trucs;

Donc ma première page pour qu'on rentre nom et prénom:

Code : Tout sélectionner

Entrez votre Prénom et Nom pour nous communiquer combien de temps vous avez couru !<br/> <form action="rcourse.php" method="post"> <p> Prénom: <input type="text" name="prenom" /> Nom: <input type="text" name="nom" /> <input type="submit" value="Valider" /> </p> </form>
Qui amène vers cette page:

Code : Tout sélectionner

<?php include("fcourse.php"); try { $bdd = new PDO('mysql:host=localhost;dbname=MaBase;charset=utf8', 'root', 'root'); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } $sql = "SELECT age FROM Utilisateurs WHERE nom LIKE 'echo $_POST['nom']'"; // ouais pas besoin de mettre "prenom" j"imagine que du moment que le nom est bon ça passe // age étant le nombre que je veux ressortir (en vrai c'est une heure) Utilisateurs ma table qui contient aussi "nom" et "prenom" $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); while($data = mysql_fetch_assoc($req)) { echo (int)$_POST['age']; // C'est ici que j'aimerai récup' mon nombre } mysql_close(); ?> <p>Merci de partager votre résultat !<br/>
Désolé mon code est surement très sale j'ai encore du mal avec la logique de ce langage haha

Re: Afficher information d'une colonne à partir des autres de la même ligne

par Vladeo » 10 juil. 2015, 14:47

Merci beaucoup ! Je vais tester ça, je met le topic en résolu car maintenant même si c'est galère je sais ou je vais :D

Merci encore !

Re: Afficher information d'une colonne à partir des autres de la même ligne

par xTG » 10 juil. 2015, 11:24

En effet tu fais un formulaire pour rentrer le nom et le prénom.
Dans la page de traitement tu auras une requête SQL de type SELECT qui portera comme condition WHERE ces deux champs et qui récupérera le nombre d'heure.
Il ne te reste plus qu'à l'afficher. ;)

https://dev.mysql.com/doc/refman/5.0/en/select.html

Afficher information d'une colonne à partir des autres de la même ligne

par Vladeo » 09 juil. 2015, 15:12

Salut !
J'aurais besoin d'une petite piste:
J'apprend le php depuis quelques jours (je n'ai que des notions à la base), après pas mal d'expérience en front end j'essaie de me mettre au back end pour aider ma boite, mais aujourd'hui j'ai un problème et je ne pense pas que ce soit très compliqué pour quelqu'un de confirmé.

Voilà le projet:

J'ai crée un formulaire, où l'on inscrit Nom, Prénom et un nombre d'heure. Ces informations vont sur la même table dans ma base de donnée.
J'utilise la colonne du nombre d'heure pour faire une somme que j'affiche sur le site. En tant que néophyte ça à pas été de la tarte mais j'y suis arrivé grâce aux nombreuses ressources dispo sur internet.

Mais là je coince, car ce que je dois faire, c'est pouvoir donner accès au nombre d'heure inscrit par quelqu'un à partir de son nom et prénom; Par exemple, si Marcel Duchamp a dit qu'il ferait 4 heures sur mon premier formulaire, il faut qu'il puisse retrouver ce chiffre en rentrant son nom et prénom quelque part.
Donc c'est pas un "espace membre" qu'il me faut, mais il faudrait que la base de donnée affiche le nombre se situant sur la même ligne que Nom/Prénom quand tu les rentre.

J'imagine que ça doit se passer en deux temps: d'abord un page ou on rentre Nom et Prénom, et le script envois sur une page qui t'affiche cette infos selon ce que t'as rentré.

Je sais pas si j'ai été clair, mais si quelqu'un peut me donner une piste je suis preneur !

Merci d'avoir lu :)