Problème lors de la requête.

Résolu/Fermé
UbuntuPR Messages postés 89 Date d'inscription mercredi 22 juin 2011 Statut Membre Dernière intervention 1 août 2013 - 24 juil. 2013 à 19:53
UbuntuPR Messages postés 89 Date d'inscription mercredi 22 juin 2011 Statut Membre Dernière intervention 1 août 2013 - 24 juil. 2013 à 21:15
Bonsoir (ou bonjour ^^)

Voila, je réalise une page web dont le but est d'ajouter des équipes dans une base de données, et je souhaite également permettre l'upload d'une image, afin d'avoir le logo de l'équipe pour une page fiche équipe qui sera générée à partir de cette table.

J'ai donc un problème qui est le suivant :

- Lorsque que j'appuie sur envoyer, le fichier est bien uploadé sur le serveur, mais la requête sql n'aboutie pas. (PHP n'affiche aucune erreur)

- Si j'enlève l'upload, la requête php fonctionne et une ligne est ajouter à la table !

Voici le code, n'hésitez pas à ma questionner si vous me trouvez pas clair.

Code :

<html>
<head>
<title> Ajouter équipe </title>
<link rel="icon" type="image/x-icon" href="/Icone.ico" />
<link rel="apple-touch-icon" href="/Icone.ico" />
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body style="width:1000px;margin:auto;">
<div>
<fieldset>
<legend> Nouvelle équipe </legend>
<form method="post" action="newTeam.php" enctype="multipart/form-data">
<label for="team_name">Nom de l'équipe</label> : <input type="text" name="team_name" id="team_name"/><br/>
<label for="year">Année de fondation</label> : <input type="text" name="year" id="year"/><br/>
<label for="coach">Entraineur</label> : <input type="text" name="coach" id="coach"/><br/>
<label for="titres">Titres</label> : <input type="text" name="titres" id="titres"/><br/>
<label for="logo">Logo,images/</label> : <input type="file" name="logo"/><br/>
<label for="stars">Stars</label> : <input type="text" name="stars" id="stars"/><br/>
Conférence : <label for="conf">Est</label> : <input type="radio" name="conf" value="est" id="est"/> <label for="conf">Ouest</label> : <input type="radio" name="conf" value="ouest" id="ouest"/><br/>
<label for="divi">Division</label> : <input type="text" name="divi" id="divi"/><br/>
<input type="submit" value="envoyer"/>
</form>
</fieldset>
</div>
<?php

try
{
if(isset($_FILES['logo']))
{
$nom_logo = $_FILES['logo']['name'];
if ($_FILES['logo']['error'] > 0)
{
echo "Erreur : ".$_FILES['logo']['error']."<br>";
}
else
{
$pdo_options[PDO::ATTR_ERRMODE]=PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=test','root','');
if (isset($_POST['year']) and isset($_POST['team_name']) and isset($_POST['coach']) and isset($_POST['titres']) and isset($_POST['logo']) and isset($_POST['stars']))
{
$req = $bdd->prepare('INSERT INTO equipes (nom,fondation,titres_nba,logo,joueurs_vedettes,conference,division,entraineur) VALUES (:nom, :fondation, :titres_nba, :logo, :joueurs_vedettes, :conference, :division, :entraineur)');
$req->execute(array('nom' => $_POST['team_name'],'fondation'=>$_POST['year'],'titres_nba'=>$_POST['titres'],'logo'=>$_POST['logo'],'joueurs_vedettes'=>$_POST['stars'],'conference'=>$_POST['conf'],'division'=>$_POST['divi'],'entraineur'=>$_POST['coach']));
}
move_uploaded_file($_FILES["logo"]["tmp_name"],"../images/" . basename($_FILES["logo"]["name"]));
}
}

}

catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
</body>
</html>

5 réponses

loupix57 Messages postés 316 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 1 juin 2015 14
24 juil. 2013 à 20:06
Pourquoi faire d'abord l'upload ; puis ensuite (si il n'y a pas d'erreur) l'enregistrer dans ta bdd !!
Chaque chose dans son ordre !! ;-)
0
UbuntuPR Messages postés 89 Date d'inscription mercredi 22 juin 2011 Statut Membre Dernière intervention 1 août 2013 10
24 juil. 2013 à 20:07
Tu me conseil donc de faire l'inverse ?
0
loupix57 Messages postés 316 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 1 juin 2015 14
24 juil. 2013 à 20:09
non pas du tout !!!

Tout d'abort upload ton fichier ; Ensuite, si tout est ok ;
enregistre le dans ta BDD ;
Tu voit ?
0
loupix57 Messages postés 316 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 1 juin 2015 14
Modifié par loupix57 le 24/07/2013 à 20:16
// l'upload du fichier

$error = False;


if(isset($_FILES['logo'])){
$nom_logo = $_FILES['logo']['name'];
if ($_FILES['logo']['error'] > 0){
echo "Erreur : ".$_FILES['logo']['error']."<br>";
$error=True;}
else{move_uploaded_file($_FILES["logo"]["tmp_name"],"../images/" . basename($_FILES["logo"]["name"]));}

  // ensuite la BDD
// si il n'y a pas d'erreurs ; on sauvegarde.

if(!$error){

$pdo_options[PDO::ATTR_ERRMODE]=PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=test','root','');
if (isset($_POST['year']) and isset($_POST['team_name']) and isset($_POST['coach']) and isset($_POST['titres']) and isset($_POST['logo']) and isset($_POST['stars']))
{
$req = $bdd->prepare('INSERT INTO equipes (nom,fondation,titres_nba,logo,joueurs_vedettes,conference,division,entraineur) VALUES (:nom, :fondation, :titres_nba, :logo, :joueurs_vedettes, :conference, :division, :entraineur)');
$req->execute(array('nom' => $_POST['team_name'],'fondation'=>$_POST['year'],'titres_nba'=>$_POST['titres'],'logo'=>$_POST['logo'],'joueurs_vedettes'=>$_POST['stars'],'conference'=>$_POST['conf'],'division'=>$_POST['divi'],'entraineur'=>$_POST['coach']));
}

}



;-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
UbuntuPR Messages postés 89 Date d'inscription mercredi 22 juin 2011 Statut Membre Dernière intervention 1 août 2013 10
24 juil. 2013 à 21:15
Oui je vois, je te remercie de ton aide ! =)
0