8768 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai besoin de votre aide pour solutionner un bug d'insert.
Je n'ai aucun message d'erreur.
L'instruction d'insertion dans la bdd est purement et simplement ignorée.
Pouvez-vous m'aider à y voir plus clair svp ?
Un grand merci par avance.

Voici l'url : http://www.itiandgo.com/site/add_sortie-test.php


        $req = $bdd->prepare("INSERT INTO sorties (".
                "sortie_user_id, sortie_statut, sortie_categorie_code, ".
                "sortie_photo, sortie_titre01, ".
                "sortie_site_web, sortie_descriptif, ".
                "sortie_adresse01, sortie_adresse02, ".
                "sortie_code_postal, sortie_localite, ".
                "sortie_gps_longitude, sortie_gps_latitude, ".
                "sortie_date_debut, sortie_date_fin, ".
                "sortie_horaire01, sortie_horaire02, ".
                "sortie_horaire03, sortie_horaire04, ".
                "sortie_horaire05, sortie_horaire06, ".
                "sortie_horaire07, ".
                "sortie_prix_euros, ".
                "sortie_restrictions, ".
                "sortie_nbre_visites, ".
                "sortie_date_creation, sortie_date_dern_modification".     
            ") VALUES ('".
                $user_id."', '".$_POST['sortie_statut']."', '".$_POST['sortie_categorie_code']."', '".
                "upload', '".$_POST['sortie_titre01']."', '".
                $_POST['sortie_site_web']."', '".$_POST['sortie_descriptif']."', '".
                $_POST['sortie_adresse01']."', '".$_POST['sortie_adresse02']."', '".
                $_POST['sortie_code_postal']."', '".$_POST['sortie_localite']."', '".
                $_POST['sortie_gps_longitude']."', '".$_POST['sortie_gps_latitude']."', '".
                $_POST['sortie_date_debut']."', '".$_POST['sortie_date_fin']."', '".
                $_POST['sortie_horaire01']."', '".$_POST['sortie_horaire02']."', '".
                $_POST['sortie_horaire03']."', '".$_POST['sortie_horaire04']."', '".
                $_POST['sortie_horaire05']."', '".$_POST['sortie_horaire06']."', '".
                $_POST['sortie_horaire07']."', '".
                $_POST['sortie_prix_euros']."', '".
                $_POST['sortie_restrictions']."', '".
                $_POST['sortie_nbre_visites']."', '".
                $_POST['sortie_date_creation']."', '".$_POST['sortie_date_dern_modification']."'".
            ")");
        $req->execute();
        $record = "10";
        $req->closeCursor();

Modifié par jytest (08 Jun 2016 - 19:23)
Bonjour,
Pouvez-vous essayer cela ? :
$req = $bdd->prepare("INSERT INTO sorties (
		sortie_user_id, sortie_statut, sortie_categorie_code,
		sortie_photo, sortie_titre01,
		sortie_site_web, sortie_descriptif,
		sortie_adresse01, sortie_adresse02,
		sortie_code_postal, sortie_localite,
		sortie_gps_longitude, sortie_gps_latitude,
		sortie_date_debut, sortie_date_fin,
		sortie_horaire01, sortie_horaire02,
		sortie_horaire03, sortie_horaire04,
		sortie_horaire05, sortie_horaire06,
		sortie_horaire07,
		sortie_prix_euros,
		sortie_restrictions,
		sortie_nbre_visites,
		sortie_date_creation, sortie_date_dern_modification) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");

	
$req->execute(array(
		$user_id, $_POST['sortie_statut'], $_POST['sortie_categorie_code'], 
		"upload", $_POST['sortie_titre01'], 
		$_POST['sortie_site_web'], $_POST['sortie_descriptif'], 
		$_POST['sortie_adresse01'], $_POST['sortie_adresse02'], 
		$_POST['sortie_code_postal'], $_POST['sortie_localite'], 
		$_POST['sortie_gps_longitude'], $_POST['sortie_gps_latitude'], 
		$_POST['sortie_date_debut'], $_POST['sortie_date_fin'], 
		$_POST['sortie_horaire01'], $_POST['sortie_horaire02'], 
		$_POST['sortie_horaire03'], $_POST['sortie_horaire04'], 
		$_POST['sortie_horaire05'], $_POST['sortie_horaire06'], 
		$_POST['sortie_horaire07'], 
		$_POST['sortie_prix_euros'], 
		$_POST['sortie_restrictions'], 
		$_POST['sortie_nbre_visites'], 
		$_POST['sortie_date_creation'], $_POST['sortie_date_dern_modification']));
$record = "10";
$req->closeCursor();

Et me dire si ok, si retourne erreur, ou quelque chose d'autre. A noter aussi qu'en PDO cela ne se fait pas de placer les variables directement dans la requête, encore moins si elle ne sont même pas traitées avant ! Les paramètres doivent être passés avec un tableau lors du "execute", peut-importe la méthode (paramètres nommés, marqueurs, etc..).

cordialement
Oui cela fonctionnait bien pour l'enregistrement.

Mais mon code bloquait juste à l'instruction "$req->closeCursor();"
En la supprimant cela va plus loin...

Par contre comment faire pour obtenir le dernier id enregistré dans "sorties",
car j'en ai besoin pour mettre derrière mon nomfichier ?

Merci à a tous pour votre aide.
Cela ne fonctionne pas tout le temps.
Pourquoi ?


        $_POST['sortie_statut']="OFF";
        $_POST['sortie_nbre_visites']="0";
        $_POST['sortie_gps_longitude']="";
        $_POST['sortie_gps_latitude']="";
        $_POST['sortie_date_creation']=date('Ymd');
        $_POST['sortie_date_dern_modification']=date('Ymd');
        $req = $bdd->exec("INSERT INTO sorties (".
                "sortie_user_id, sortie_statut, sortie_categorie_code, ".
                "sortie_photo, sortie_titre01, ".
                "sortie_site_web, sortie_descriptif, ".
                "sortie_adresse01, sortie_adresse02, ".
                "sortie_code_postal, sortie_localite, ".
                "sortie_gps_longitude, sortie_gps_latitude, ".
                "sortie_date_debut, sortie_date_fin, ".
                "sortie_horaire01, sortie_horaire02, ".
                "sortie_horaire03, sortie_horaire04, ".
                "sortie_horaire05, sortie_horaire06, ".
                "sortie_horaire07, ".
                "sortie_prix_euros, ".
                "sortie_restrictions, ".
                "sortie_nbre_visites, ".
                "sortie_date_creation, sortie_date_dern_modification".     
            ") VALUES ('".
                $user_id."', '".$_POST['sortie_statut']."', '".$_POST['sortie_categorie_code']."', '".
                "upload', '".$_POST['sortie_titre01']."', '".
                $_POST['sortie_site_web']."', '".$_POST['sortie_descriptif']."', '".
                $_POST['sortie_adresse01']."', '".$_POST['sortie_adresse02']."', '".
                $_POST['sortie_code_postal']."', '".$_POST['sortie_localite']."', '".
                $_POST['sortie_gps_longitude']."', '".$_POST['sortie_gps_latitude']."', '".
                $_POST['sortie_date_debut']."', '".$_POST['sortie_date_fin']."', '".
                $_POST['sortie_horaire01']."', '".$_POST['sortie_horaire02']."', '".
                $_POST['sortie_horaire03']."', '".$_POST['sortie_horaire04']."', '".
                $_POST['sortie_horaire05']."', '".$_POST['sortie_horaire06']."', '".
                $_POST['sortie_horaire07']."', '".
                $_POST['sortie_prix_euros']."', '".
                $_POST['sortie_restrictions']."', '".
                $_POST['sortie_nbre_visites']."', '".
                $_POST['sortie_date_creation']."', '".$_POST['sortie_date_dern_modification']."'".
            ")");
        $record = $bdd->lastInsertId();

        if (strlen($_FILES['sortie_photo']['tmp_name']) > 0) {
            $errTransfert="";
            if ($_FILES['sortie_photo']['error'] > 0) $errTransfert = "Erreur lors du transfert";
            if ($_FILES['sortie_photo']['size'] > $maxsize) $errTransfert = "Le fichier est trop gros";
            $extensions_valides = array( '.jpg' , '.jpeg' , '.png' );
            $extension_upload = strtolower(strrchr($_FILES['sortie_photo']['name'], '.')); 
            //if (in_array($extension_upload,$extensions_valides)) echo "Extension correcte";
            $image_sizes = getimagesize($_FILES['sortie_photo']['tmp_name']);
            if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight) $errTransfert = "Image trop grande";
            if ($errTransfert == "") {
                $nomfichier = $stockage."id-sortie-".$record.$extension_upload;
                $resultat = move_uploaded_file($_FILES['sortie_photo']['tmp_name'], $nomfichier);
                if ($resultat) {
                    $errTransfert = "Transfert réussi !";
                    $req = $bdd->exec("UPDATE sorties SET ".
                        "sortie_photo='".$nomfichier."' ".
                        "WHERE sortie_id='".$record."' ");
                    $errTransfert = "Transfert réussi";
                    header('Location: index.php');
                    exit;
                } else {
                    $req = $bdd->exec("DELETE FROM sorties WHERE sortie_id='".$record."'");
                    $errTransfert = "Transfert échoué !";
                }
            }
        } else {
            header('Location: index.php');
            exit;
        }

Modifié par jytest (08 Jun 2016 - 19:24)