Je sollicite votre aide pour du php et SQL

Statut
N'est pas ouverte pour d'autres réponses.

jb_master

Touriste
Bonjour,

je dois préparer un travail pour mon examen d'informatique et j'éprouve quelques difficultés, j'espère que vous pourrez m'aider à débloquer cette situation. Je vous dis de suite que le php de base, je n'ai pas dur mais quand il faut mélanger avec le SQL, ça me dépasse un peu.

J'ai un compte sur phpmyadmin où j'ai créer des tables, dont une qui se nomme "Questions" et dans laquelle il y a 2 champs "ID" et "Question".
J'ai d'abord créer une petite page html demandant le nom de la personne qui se connecte et dans mon php je mets une petite phrase d'accueil puis j'aimerais afficher les questions (avec les numéros devant) qui se trouvent dans ma base de donnée.

En m'aidant de ce que l'on a fait aux cours, j'ai pondu ceci (mais bien sur il y a une erreur quelque part. Et si ça peut vous aider, voici l'adresse de départ http://s052184.php.hec.ulg.ac.be/index.html ):

//Phrase d'accueil
$name=$_GET["nom"];
echo "Bonjour Monsieur $name, merci pour votre participation à cette enquête portant sur les logiciels de système de gestion de base de données";
echo "<br>Merci de répondre à ces différentes questions:<br>"


//Connexion à la base de données
$conn = mysql_connect('localhost' , $_SERVER['DB_USER'], $_SERVER['DB_PASS']);
if (!$conn){
echo "Impossible de se connecter à la base de données : " . mysql_error();
exit;
}
if (!mysql_select_db("mschyns_".$_SERVER['DB_USER'])) {
echo "Impossible de sélectionner la base mydbname : " . mysql_error();
exit;
}
//Requête
$sql = "SELECT ID, Question FROM Questions";
$result = mysql_query($sql);
if (!$result) {
echo "impossible d'exécuter la requête ($sql) dans la base: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "aucune ligne trouvée, rien à afficher.";
exit;
}

//Ecriture des éléments qui vérifient la requête
$nb=0;
$row = mysql_fetch_assoc($result);
while ($row) {
echo "$row["id"] $row["question"]<br>";
$row = mysql_fetch_assoc($result);
$nb=$nb+1;
}

//fermer la connexion
mysql_close($conn);
 

Jereck

Α & Ω
Staff
jb_master a dit:
$row = mysql_fetch_assoc($result);
while ($row) {
echo "$row["id"] $row["question"]<br>";
$row = mysql_fetch_assoc($result);
$nb=$nb+1;
}
c'est plus simple de faire (et ton echo est mal formé):

while ($row = mysql_fetch_assoc($result))) {
echo $row["id"] . " " . $row["question"] . "<br>";
$nb++;
}
 
1er
OP
jb_master

jb_master

Touriste
Merci beaucoup, j'y arrive maintenant. Mais je risque de repasser demander un coup de main!
 
1er
OP
jb_master

jb_master

Touriste
Bonjour,

voila, j'ai changer tout car je faisais trop compliqué avec mes tables, j'ai réduit à une seule. Il suffit juste d'envoyer des données maintenant et non plus en récupérer. J'ai créé mon index.html avec des champs à remplir (c'est une petite enquête): il y a Nom, Prenom, puis j'ai 10 questions et les champs s'appellent reponse1, reponse2,.... enfin un bouton Soumettre pour envoyer dans ma base de données.
Mais bien sur, quelque chose cloche et je ne parviens vraiment pas à trouver l'erreur !!

// Récupérer les champs
if(isset($_GET['nom'])) $nom=$_GET['nom'];
else $nom="";

if(isset($_GET['prenom'])) $prenom=$_GET['prenom'];
else $prenom="";

if(isset($_GET['reponse1'])) $reponse1=$_GET['reponse1'];
else $reponse1="";

if(isset($_GET['reponse2'])) $reponse2=$_GET['reponse2'];
else $reponse2="";

if(isset($_GET['reponse3'])) $reponse3=$_GET['reponse3'];
else $reponse3="";

if(isset($_GET['reponse4'])) $reponse4=$_GET['reponse4'];
else $reponse4="";

if(isset($_GET['reponse5'])) $reponse5=$_GET['reponse5'];
else $reponse5="";

if(isset($_GET['reponse6'])) $reponse6=$_GET['reponse6'];
else $reponse6="";

if(isset($_GET['reponse7'])) $reponse7=$_GET['reponse7'];
else $reponse7="";

if(isset($_GET['reponse8'])) $reponse8=$_GET['reponse8'];
else $reponse8="";

if(isset($_GET['reponse9'])) $reponse9=$_GET['reponse9'];
else $reponse9="";

if(isset($_GET['reponse10'])) $reponse10=$_GET['reponse10'];
else $reponse10="";

// Vérification des champs (sauf pour le champ 7)
if(empty($nom) OR empty($prenom) OR empty($reponse1) OR empty($reponse2) OR empty($reponse3) OR empty($reponse4) OR empty($reponse5) OR empty($reponse6) OR empty($reponse:cool: OR empty($reponse9) OR empty($reponse10))
{
echo '<font color="red">Attention, un champ n'a pas été saisi !</font>';
}

// Enregistrement
else
{
// Connexion à la base
$conn = mysql_connect('localhost' , $_SERVER['DB_USER'], $_SERVER['DB_PASS']);
if (!$conn){
echo "Impossible de se connecter à la base de données : " . mysql_error();
exit;
}

if (!mysql_select_db("mschyns_".$_SERVER['DB_USER'])) {
echo "Impossible de sélectionner la base mydbname : " . mysql_error();
exit;
}

// Requête
$sql = "INSERT INTO Reponses(ID, nom, prenom, reponse1, reponse2, reponse3, reponse4, reponse5, reponse6, reponse7, reponse8, reponse9, reponse10) VALUES('','$nom','$prenom','$reponse1','$reponse2','$reponse3','$reponse4','$reponse5','$reponse6','$reponse7','$reponse8','$reponse9','$reponse10')";

// Insertion des informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// Affichage du résultat pour le visiteur
echo 'Merci pour votre participation à cette enquête.';

// Fermeture de la connexion
mysql_close();
}
 

eLneciO

Elite
Code:
[size=1] if(isset($_GET['nom']))      $nom=$_GET['nom'];
else      $nom="";

if(isset($_GET['prenom']))      $prenom=$_GET['prenom'];
else      $prenom="";

if(isset($_GET['reponse1']))      $reponse1=$_GET['reponse1'];
else      $reponse1="";

if(isset($_GET['reponse2']))      $reponse2=$_GET['reponse2'];
else      $reponse2="";

if(isset($_GET['reponse3']))      $reponse3=$_GET['reponse3'];
else      $reponse3="";

if(isset($_GET['reponse4']))      $reponse4=$_GET['reponse4'];
else      $reponse4="";

if(isset($_GET['reponse5']))      $reponse5=$_GET['reponse5'];
else      $reponse5="";

if(isset($_GET['reponse6']))      $reponse6=$_GET['reponse6'];
else      $reponse6="";

if(isset($_GET['reponse7']))      $reponse7=$_GET['reponse7'];
else      $reponse7="";

if(isset($_GET['reponse8']))      $reponse8=$_GET['reponse8'];
else      $reponse8="";

if(isset($_GET['reponse9']))      $reponse9=$_GET['reponse9'];
else      $reponse9="";

if(isset($_GET['reponse10']))      $reponse10=$_GET['reponse10'];
else      $reponse10="";[/size]
euh je pense que tu peux remplacer ca par
Code:
if(isset($_GET)) extract($_GET);
 
1er
OP
jb_master

jb_master

Touriste
En effet, pous une question d'ergonomie.. Mais j'ai toujours ce problème: "Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /var/web/s052184/public_html/add.php on line 11"
 

Ahava

Revenant
Y a quoi à la ligne 11 de ton fichier add.php ?

fin donne nous qques lignes avant et qques lignes apres qd meme :)
 
1er
OP
jb_master

jb_master

Touriste
Ahava a dit:
Y a quoi à la ligne 11 de ton fichier add.php ?

fin donne nous qques lignes avant et qques lignes apres qd meme :)
tout est au dessus :roll:
 

Ahava

Revenant
jb_master a dit:
tout est au dessus :roll:
Hé, t'es super drole toi :)


Alors je dirai, si tout est là, que t'a oublié les balises ouvrantes et fermantes de ton fichier php ;)
 
1er
OP
jb_master

jb_master

Touriste
Ahava a dit:
Hé, t'es super drole toi :)


Alors je dirai, si tout est là, que t'a oublié les balises ouvrantes et fermantes de ton fichier php ;)
Oui ça je sais, je n'ai mis que les instructions, sinon il y a rien d'autre, le problème se trouvait là, mais j'ai solutionné celui-ci. Merci quand même !
 

SkYlEsS

Elite
Ce que Ahava voulait dire, c'est que si on avait pô tout ton fichier ou du moins depuis le début, les numéros de lignes ne correspondaient pas pour nous ;)
 

oNi-

:baille: Lecteur
extract($_GET,[*]) crée un variable pour chaque entrée du tableau $_GET.
Si t'as $_GET['truc'], $_GET['machin'], etc ça te donnera $truc, $machin, etc

[*]
EXTR_OVERWRITE Ecrase les variables existantes
EXTR_SKIP N'écrase pas les variables existantes
EXTR_PREFIX_SAME Si une variable existe déjà, une nouvelle variable est créée avec un préfixe donné en 3ème argument à la fonction
EXTR_PREFIX_ALL Crée de nouvelles variables avec le préfixe passé en 3ème argument pour toutes les clés du tableau
EXTR_PREFIX_INVALID Crée de nouvelles variables avec le préfixe passé en 3ème argument pour les noms de variable invalides (par exemple $1)

source - point 7.
 

SkYlEsS

Elite
Dément, j'n'connaissais pô :)
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut