Blocage création requêtes SQL
Sam le skieur
Messages postés
64
Statut
Membre
-
vordano Messages postés 1981 Statut Membre -
vordano Messages postés 1981 Statut Membre -
Bonjour,
Je m'adresse à vous car j'ai des problèmes sur le langage SQL dans lequel je débute tout juste. Je m'explique: dans une BDD (phpmyadmin) j'ai une table nommée candidats, dans laquelle se trouvent les attributs idcandidat, Nom, Prénom, Age, Taille, Poids, Sexe, Total espéré (le but étant de faire un vote). On me demande donc à partir de cette table de créer une page php affichant les candidats de la table dans un tableau qui permet de voter pour eux. On m'a donc donné le code à programmer pour cette page (que je ne comprends par ailleurs pas tout à fait):
<html>
<body>
<?php
$connect = mysql_connect("xxx.yyy.utc", "nf.....48", "ic....7Y") or die ("Error connecting to mysql: " . mysql_error());
//echo "$connect";
$result = mysql_select_db("nf....48");
echo "\n<form method=post action='recap.php'>";
echo "\n<table border='1'>";
echo "\n<caption> Présentation des candidats </caption>";
echo "\n<tr>
<th> Nom </th>
<th> note donnee </th>
</tr>";
$result = mysql_query("SELECT * FROM candidats");
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
$nom = $row[1];
$idcandidat = $row[0];
echo "\n<tr>";
echo "<td> $nom </td> ";
echo "<td> <input type='text' name='$idcandidat'></td>";
echo "</tr>";
}
echo "\n</table>";
echo "<input type='submit' value='voter'>";
echo "</form>";
mysql_free_result($result);
mysql_close($connect);
?>
</body>
</html>
Le problème vient après: L'utilisation du nouveau formulaire de vote mis au point à la question précédente permet de voter (ou non si le champ est vide) pour plusieurs candidats. Cette action de voter pour plusieurs candidats est appelée "votation" dans mon exercice. Il faut générer un numéro de votation unique quand une votation est passée (comme un numéro de commande). Il m'a donc été demandé de créer une table supplémentaire GenereNumVote avec juste une colonne idvote de type entier dans la BDD. Et il faut donc créer une nouvelle page php recap.php avec le code php et les requêtes SQL pour générer un nouveau numéro et le récupérer. Cette page sera le résultat de l'action Voter de la page codée ci-dessus. Et là je dois avouer que je ne sais absolument pas comment faire. Si quelqu'un pouvait m'aider et/ou m'expliquer, je lui en serais vraiment reconnaissant. Merci d'avance pour vos réponses!
Je m'adresse à vous car j'ai des problèmes sur le langage SQL dans lequel je débute tout juste. Je m'explique: dans une BDD (phpmyadmin) j'ai une table nommée candidats, dans laquelle se trouvent les attributs idcandidat, Nom, Prénom, Age, Taille, Poids, Sexe, Total espéré (le but étant de faire un vote). On me demande donc à partir de cette table de créer une page php affichant les candidats de la table dans un tableau qui permet de voter pour eux. On m'a donc donné le code à programmer pour cette page (que je ne comprends par ailleurs pas tout à fait):
<html>
<body>
<?php
$connect = mysql_connect("xxx.yyy.utc", "nf.....48", "ic....7Y") or die ("Error connecting to mysql: " . mysql_error());
//echo "$connect";
$result = mysql_select_db("nf....48");
echo "\n<form method=post action='recap.php'>";
echo "\n<table border='1'>";
echo "\n<caption> Présentation des candidats </caption>";
echo "\n<tr>
<th> Nom </th>
<th> note donnee </th>
</tr>";
$result = mysql_query("SELECT * FROM candidats");
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
$nom = $row[1];
$idcandidat = $row[0];
echo "\n<tr>";
echo "<td> $nom </td> ";
echo "<td> <input type='text' name='$idcandidat'></td>";
echo "</tr>";
}
echo "\n</table>";
echo "<input type='submit' value='voter'>";
echo "</form>";
mysql_free_result($result);
mysql_close($connect);
?>
</body>
</html>
Le problème vient après: L'utilisation du nouveau formulaire de vote mis au point à la question précédente permet de voter (ou non si le champ est vide) pour plusieurs candidats. Cette action de voter pour plusieurs candidats est appelée "votation" dans mon exercice. Il faut générer un numéro de votation unique quand une votation est passée (comme un numéro de commande). Il m'a donc été demandé de créer une table supplémentaire GenereNumVote avec juste une colonne idvote de type entier dans la BDD. Et il faut donc créer une nouvelle page php recap.php avec le code php et les requêtes SQL pour générer un nouveau numéro et le récupérer. Cette page sera le résultat de l'action Voter de la page codée ci-dessus. Et là je dois avouer que je ne sais absolument pas comment faire. Si quelqu'un pouvait m'aider et/ou m'expliquer, je lui en serais vraiment reconnaissant. Merci d'avance pour vos réponses!
A voir également:
- Blocage création requêtes SQL
- Creation compte gmail - Guide
- Création site web - Guide
- Création compte google - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Creation compte vinted - Guide
8 réponses
Bonjour,
J'ai retiré ce qui me semblait être des clés d'accès à ta BDD... Si ce n'était pas nécessaire ou utile et sans aucun risque, fais-les moi connaitre pour les rétablir.
J'ai retiré ce qui me semblait être des clés d'accès à ta BDD... Si ce n'était pas nécessaire ou utile et sans aucun risque, fais-les moi connaitre pour les rétablir.
salut,
le numéro unique dont tu parle peut être généré facilement si ton champ est en auto-incrément (à chaque insertion dans la table, le champ prend une valeur unique).
(a priori tu devrais avoir 3 tables: personne, estCandidat, votation)
le numéro unique dont tu parle peut être généré facilement si ton champ est en auto-incrément (à chaque insertion dans la table, le champ prend une valeur unique).
(a priori tu devrais avoir 3 tables: personne, estCandidat, votation)
Merci, ce problème d'auto incrémentation a été résolu en cochant une case pour dans la BDD. En revanche je bloque toujours complètement sur la création de la dernière page recap.php. Je n'ai aucune idée du code qu'il faut y mettre.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le but est d'insérer dans une table "vote" comprenant trois attributs "idvote" "idcandidat" et "note". recap.php est censée récupérer le numéro "idvote" généré dans la table GenereNumVote ainsi que les résultats de mon code posté ci-dessus "idcandidat" et "note" et les insérer dans cette table "vote"
normalement quand tu affiche la liste des candidats, tu es capable de stocker le numéro dans l'un des attributs.
donc quand tu envoi ton vote, tu peux récupérer le numéro du candidat du formulaire envoyé, et tu peux aussi récupérer le vote (je suppose que c'est un entier qui représente une note)
dans ton php tu récupère tes infos avec $_GET['attribut_name'] ou $_POST['attribut_name']
donc quand tu envoi ton vote, tu peux récupérer le numéro du candidat du formulaire envoyé, et tu peux aussi récupérer le vote (je suppose que c'est un entier qui représente une note)
dans ton php tu récupère tes infos avec $_GET['attribut_name'] ou $_POST['attribut_name']
Merci, grâce à vous j'ai pu avancer quelque peu. Actuellement j'ai un léger souci technique puisque j'ai un code php (requête envoyée par un formulaire) qui ne fonctionne pas puisqu'à chaque ligne correspondant à un "mysql_fetch_array", j'ai une erreur de type "mysql_fetch_array() expects parameter 1 to be resource, boolean given". Je n'arrive pas à voir d'où cela peut provenir. Voici mon code php:
<html>
<body>
<?php
define ('nulle', 0);
$connect = mysql_connect("***", "***", "***") or die ("Error connecting to mysql: " . mysql_error());
$result = mysql_select_db("***");
$nom=$_POST['nom'];
$query="select note FROM 'candidats' WHERE Nom=$nom ";
$result=mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo $row['note'];
$add=$_POST['add'];
$subtract=$_POST['subtract'];
$ajouter=$_POST['ajouter'];
$soustraire=$_POST['soustraire'];
if (!empty($add)){
$query="UPDATE 'candidats' SET note = note + $ajouter WHERE Nom=$nom";
$result=mysql_query($query);
}
if (!empty($subtract) and $row['note']>$soustraire){
$query="UPDATE 'candidats' SET note = note - $soustraire WHERE Nom=$nom";
$result=mysql_query($query);
}
else{
$query="UPDATE 'candidats' SET note = 'nulle' WHERE Nom=$nom";
$result=mysql_query($query);
}
$prenom=$_POST['prenom'];
$age=$_POST['age'];
$taille=$_POST['taille'];
$poids=$_POST['poids'];
$sexe=$_POST['sexe'];
$query="select prenom FROM 'candidats' WHERE Nom=$nom ";
$result=mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo $row['prenom'];
if (!empty($prenom)){
$query="UPDATE 'candidats' SET prenom = '$prenom' WHERE Nom=$nom";
$result=mysql_query($query);
}
$query="select Age FROM 'candidats' WHERE Nom=$nom ";
$result=mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo $row['Age'];
if (!empty($age)){
$query="UPDATE 'candidats' SET Age = '$age' WHERE Nom=$nom";
$result=mysql_query($query);
}
$query="select Taille FROM 'candidats' WHERE Nom=$nom ";
$result=mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo $row['Taille'];
if (!empty($taille)){
$query="UPDATE 'candidats' SET Taille = '$taille' WHERE Nom=$nom";
$result=mysql_query($query);
}
$query="select Poids FROM 'candidats' WHERE Nom=$nom ";
$result=mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo $row['Poids'];
if (!empty($poids)){
$query="UPDATE 'candidats' SET Poids = '$poids' WHERE Nom=$nom";
$result=mysql_query($query);
}
$query="select Sexe FROM 'candidats' WHERE Nom=$nom ";
$result=mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo $row['Sexe'];
if (!empty($poids)){
$query="UPDATE 'candidats' SET Sexe = '$sexe' WHERE Nom=$nom";
$result=mysql_query($query);
}
?>
</body>
</html>
<html>
<body>
<?php
define ('nulle', 0);
$connect = mysql_connect("***", "***", "***") or die ("Error connecting to mysql: " . mysql_error());
$result = mysql_select_db("***");
$nom=$_POST['nom'];
$query="select note FROM 'candidats' WHERE Nom=$nom ";
$result=mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo $row['note'];
$add=$_POST['add'];
$subtract=$_POST['subtract'];
$ajouter=$_POST['ajouter'];
$soustraire=$_POST['soustraire'];
if (!empty($add)){
$query="UPDATE 'candidats' SET note = note + $ajouter WHERE Nom=$nom";
$result=mysql_query($query);
}
if (!empty($subtract) and $row['note']>$soustraire){
$query="UPDATE 'candidats' SET note = note - $soustraire WHERE Nom=$nom";
$result=mysql_query($query);
}
else{
$query="UPDATE 'candidats' SET note = 'nulle' WHERE Nom=$nom";
$result=mysql_query($query);
}
$prenom=$_POST['prenom'];
$age=$_POST['age'];
$taille=$_POST['taille'];
$poids=$_POST['poids'];
$sexe=$_POST['sexe'];
$query="select prenom FROM 'candidats' WHERE Nom=$nom ";
$result=mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo $row['prenom'];
if (!empty($prenom)){
$query="UPDATE 'candidats' SET prenom = '$prenom' WHERE Nom=$nom";
$result=mysql_query($query);
}
$query="select Age FROM 'candidats' WHERE Nom=$nom ";
$result=mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo $row['Age'];
if (!empty($age)){
$query="UPDATE 'candidats' SET Age = '$age' WHERE Nom=$nom";
$result=mysql_query($query);
}
$query="select Taille FROM 'candidats' WHERE Nom=$nom ";
$result=mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo $row['Taille'];
if (!empty($taille)){
$query="UPDATE 'candidats' SET Taille = '$taille' WHERE Nom=$nom";
$result=mysql_query($query);
}
$query="select Poids FROM 'candidats' WHERE Nom=$nom ";
$result=mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo $row['Poids'];
if (!empty($poids)){
$query="UPDATE 'candidats' SET Poids = '$poids' WHERE Nom=$nom";
$result=mysql_query($query);
}
$query="select Sexe FROM 'candidats' WHERE Nom=$nom ";
$result=mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo $row['Sexe'];
if (!empty($poids)){
$query="UPDATE 'candidats' SET Sexe = '$sexe' WHERE Nom=$nom";
$result=mysql_query($query);
}
?>
</body>
</html>