[RESOLU] Insert base sql + serveur

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] Insert base sql + serveur

Re: [RESOLU] Insert base sql + serveur

par Mazarini » 18 oct. 2012, 13:56

        if ($id) {
... (update)
}
        else {
                //$num_client = round(rand(1500, time())/500000);
                //$username = $_SESSION["administrateur"] or $_SESSION["utilisateur"];
$sql = "insert into ".PROGRAMMES." values ('', '','', '$titre', '$lieux', '$nbre_lots', '$livraison', '$type', '$num_lot', '$genre', '$etage', '$orientation', '$avec', '$surface_fiscale', '$surface_habitable', '$surface_jardin', '$surface_terasse', '$surface_loggia', '$surface_cave', '$ht', '$tva', '$immobilier', '$prix_pack_1', '$prix_pack_2', '$loyer_scellier_15', '$loyer_scellier_9', '$adresse_programme', '$num_permis_construction',  '$permis_delivre', '$adresse_notaire', '$signature_previsionnelle', '$reference')";

                //$date_limite = (time()+(86400 * 364));
//              $sql_dossier = "insert into ".ENTREPRISES_DOSSIERS." values ('', '$num_dossier', '$date_limite', '$num_saisie', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '$num_client')";
//              $resultat_dossier = @mysql_query($sql_dossier, $conn);
        //}
                $result = @mysql_query($sql, $conn)  or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
                $id = mysql_insert_id(); // c'est ici, juste après l'insert
}
...
Essayes de comprendre pourquoi il faut le mettre la...

Re: Insert base sql + serveur

par orell1 » 18 oct. 2012, 10:15

voila maintenant l'insert se fait correctement mais pas l'upload!
j'y comprends rien...

Re: Insert base sql + serveur

par orell1 » 18 oct. 2012, 10:04

Ok j'ai trouvé, j'ai ressorti de IF : $id = mysql_insert_id();

ce qui donne:
$id = mysql_insert_id();
	//------------------------------------- upload de la photo ------------------------------------
if (isset($_FILES['photo'])) {
	$tmp_file = $_FILES['photo']['tmp_name'];
	if (($tmp_file) && ($tmp_file != "none")) {

	   	$filename = "galerie_programmes/".$_FILES['photo']['name'];
		move_uploaded_file ($tmp_file, $filename);
		
		$conn = db_connect();	
    		$sql = "update ".RUFFIN_PROGRAMMES." set photo = '$filename' where id = '$id'";
    		$result = @mysql_query($sql, $conn);	
 	}
}
//-----------------------------------------------------------------------------------------
	//------------------------------------- upload du plan ------------------------------------
if (isset($_FILES['plan_bien'])) {
	$tmp_file = $_FILES['plan_bien']['tmp_name'];
	if (($tmp_file) && ($tmp_file != "none")) {

	   	$filename = "galerie_programmes/plans/".$_FILES['plan_bien']['name'];
		move_uploaded_file ($tmp_file, $filename);
		
		$conn = db_connect();	
    		$sql = "update ".RUFFIN_PROGRAMMES." set plan_bien = '$filename' where id = '$id'";
    		$result = @mysql_query($sql, $conn);	
 	}
}
	
Est-ce bien cela?

Re: Insert base sql + serveur

par orell1 » 18 oct. 2012, 10:01

ok.
Ce que je ne comprends pas c'est que désormais l'insert fonctionne avec :
if (isset($_FILES['photo'])) {
	$tmp_file = $_FILES['photo']['tmp_name'];
	if (($tmp_file) && ($tmp_file != "none")) {
		$id_photo = mysql_insert_id();
	   	$filename = "galerie_programmes/".$_FILES['photo']['name'];
		move_uploaded_file ($tmp_file, $filename);
		
		$conn = db_connect();	
    		$sql = "update ".RUFFIN_PROGRAMMES." set photo = '$filename' where id = '$id_photo'";
    		$result = @mysql_query($sql, $conn);	
 	}
}
mais pas pour l'upload du plan... :-(
//------------------------------------- upload du plan ------------------------------------
if (isset($_FILES['plan_bien'])) {
	$tmp_file = $_FILES['plan_bien']['tmp_name'];
	if (($tmp_file) && ($tmp_file != "none")) {
		$id_plan = mysql_insert_id();
	   	$filename = "galerie_programmes/plans/".$_FILES['plan_bien']['name'];
		move_uploaded_file ($tmp_file, $filename);
		
		$conn = db_connect();	
    		$sql = "update ".RUFFIN_PROGRAMMES." set plan_bien = '$filename' where id = '$id_plan'";
    		$result = @mysql_query($sql, $conn);	
 	}
}

Re: Insert base sql + serveur

par Mazarini » 18 oct. 2012, 09:56

Tu fais un update lorsque $id n'est pas renseigné et un insert dans le cas contraire.
S'il faut renseigner l'id, c'est dans le traitement ou tu fais l'insert et uniquement dans le cas de l'insert. Et bien sur forcément avant les updates qui suivent l'insert.

A toi de regarder dans la doc comment marche mysql_insert_id(). Il doit y avoir des exemples. Je ne peux/veux pas écrire le code à ta place.

Re: Insert base sql + serveur

par orell1 » 18 oct. 2012, 09:51

Ok j'ai réussi à le placer pour l'upload de la photo, en recanche ça ne fonctionne pas pour l'upload du plan :
	//------------------------------------- upload de la photo ------------------------------------
if (isset($_FILES['photo'])) {
	$tmp_file = $_FILES['photo']['tmp_name'];
	if (($tmp_file) && ($tmp_file != "none")) {
		$id_photo = mysql_insert_id();
	   	$filename = "galerie_programmes/".$_FILES['photo']['name'];
		move_uploaded_file ($tmp_file, $filename);
		
		$conn = db_connect();	
    		$sql = "update ".RUFFIN_PROGRAMMES." set photo = '$filename' where id = '$id_photo'";
    		$result = @mysql_query($sql, $conn);	
 	}
}
//-----------------------------------------------------------------------------------------
	//------------------------------------- upload du plan ------------------------------------
if (isset($_FILES['plan_bien'])) {
	$tmp_file = $_FILES['plan_bien']['tmp_name'];
	if (($tmp_file) && ($tmp_file != "none")) {
		$id_plan = mysql_insert_id();
	   	$filename = "galerie_programmes/plans/".$_FILES['plan_bien']['name'];
		move_uploaded_file ($tmp_file, $filename);
		
		$conn = db_connect();	
    		$sql = "update ".RUFFIN_PROGRAMMES." set plan_bien = '$filename' where id = '$id_plan'";
    		$result = @mysql_query($sql, $conn);	
 	}
}
merciiii

Re: Insert base sql + serveur

par orell1 » 18 oct. 2012, 09:43

il faut que je le mette ou : $id = mysql_insert_id(); ???

Merci

Re: Insert base sql + serveur

par orell1 » 18 oct. 2012, 09:30

l'update fonctionne bien c'est l'insert int qui ne fonctionne pas...
je suis obligé de faire un uptage pour que les fichiers soient pris en compte :-(

Re: Insert base sql + serveur

par Mazarini » 18 oct. 2012, 09:28

...Sauf erreur de ma part, tu ne recupères pas l'id après l'insert : $id = mysql_insert_id();...
Que dire de plus ?

Re: Insert base sql + serveur

par orell1 » 18 oct. 2012, 09:22

ah ok, merci!
donc il faut que je fasse comment ... :-(

merci beaucoup

Re: Insert base sql + serveur

par Mazarini » 18 oct. 2012, 09:18

Bonjour,

Sauf erreur de ma part, tu ne recupères pas l'id après l'insert : $id = mysql_insert_id();
Donc les updates se font avec id = 0 ou false et ne trouve rien.

Insert base sql + serveur

par orell1 » 18 oct. 2012, 08:26

Bonjour à tous,
j'ai un petit soucis d'upload sur mon serveur et ma base de données...
En effet lorsque j'essaie d'ajouter une photo (champs "photo") ou un plan en pdf (champs "plan_bien") l'upload ne se fait du premier coup, en effet il faut que je créé une première fois une fiche qui viendra compléter la base de données, ensuite j'enregistre pour que tous les éléments soient pris en compte par la base, lorsque les enregistrement sont faits, je reviens sur la fiche créée pour la modifier et là, lorsque l'upload du plan et de la photo fonctionne...

Bizarre non?
Je pense que c'est un mini problème, quelqu'un peut regarder svp?

Merci par avance.
Voici le fichier php qui permet d'insérer dans le serveur les fichiers et dans la base sql les infos :
<?php


//--------les includes des fonctions permettent le bon fonctionnement du site-------------- 
include "include_fns.php";
//-----------------------------------------------------------------------------------------
// ------------------------------- recuperation des variables -----------------------------
	 $story = $_POST['story'];
	
	$id = $_POST['id'];
	//$photo = $_POST['photo'];
	$titre = strtoupper(addslashes(trim($_POST['titre'])));
	$lieux = $_POST['lieux'];
	$nbre_lots = $_POST['nbre_lots'];
	$livraison = addslashes(trim($_POST['livraison']));
	$type = strtoupper(addslashes(trim($_POST['type'])));
	$num_lot = ($_POST['num_lot']);
	$genre = $_POST['genre'];
	$etage = strtoupper(addslashes(trim($_POST['etage'])));
	$orientation = addslashes(trim($_POST['orientation']));
	$avec = addslashes(trim($_POST['avec']));
	$surface_fiscale = $_POST['surface_fiscale'];
	$surface_habitable = $_POST['surface_habitable'];
	$surface_jardin = $_POST['surface_jardin'];
	$surface_terasse = $_POST['surface_terasse'];
	$surface_loggia = $_POST['surface_loggia'];
	$surface_cave = $_POST['surface_cave'];

	//$num_dossier = round(rand(0, time())/25000);
	//$num_saisie = round(time()/1500000);

	$ht = strtoupper(addslashes(trim($_POST['ht'])));
	$tva = strtoupper(addslashes(trim($_POST['tva'])));
	$immobilier = strtoupper(addslashes(trim($_POST['immobilier'])));
	$prix_pack_1 = strtoupper(addslashes(trim($_POST['prix_pack_1'])));
	$prix_pack_2 = strtoupper(addslashes(trim($_POST['prix_pack_2'])));
	$loyer_scellier_15 = $_POST['loyer_scellier_15'];
	$loyer_scellier_9 = $_POST['loyer_scellier_9'];
	
	$adresse_programme = addslashes($_POST['adresse_programme']);
	$num_permis_construction = addslashes($_POST['num_permis_construction']);
	$permis_delivre = addslashes($_POST['permis_delivre']);
	$adresse_notaire = addslashes($_POST['adresse_notaire']);
	
	$signature_previsionnelle = addslashes($_POST['signature_previsionnelle']);
	
	$reference = addslashes($_POST['reference']);
	

//-----------------------------------------------------------------------------------------
// || !$_POST['telephone'] || !$_POST['adresse'] || !$_POST['code_postal'] || !$_POST['ville'] || !$_POST['num_siret']
//-------------- verifie la presence des variables sinon affiche message erreur -----------
if (!$_POST['reference']) {
   			    
	echo "<div id=\"ruffin_message\">".IMPOSSIBLE_POURSUIVRE_SAISIE_INCOMPLETE." !<br />";
       	echo "<a href=\"$_SERVER[HTTP_REFERER]\">".RETOUR."</a></div><br />";
//-----------------------------------------------------------------------------------------

//-------------------- affichage du bas de page et quitte le programme --------------------
    	include "bas.php";	
    	exit();
}
else {
//-----------------------------------------------------------------------------------------

//--------------------- connexion db requete sql sur table articles -----------------------
    $conn = db_connect();
//-----------------------------------------------------------------------------------------

//-----------------------------------------------------------------------------------------
	if ($id) {
		
		$sql = "update ".PROGRAMMES." set  titre = '$titre', lieux = '$lieux', nbre_lots = '$nbre_lots', livraison = '$livraison', type = '$type', num_lot = '$num_lot', genre = '$genre', etage = '$etage', orientation = '$orientation', avec = '$avec', surface_fiscale = '$surface_fiscale', surface_habitable = '$surface_habitable', surface_jardin = '$surface_jardin', surface_terasse = '$surface_terasse', surface_loggia = '$surface_loggia', surface_cave = '$surface_cave', ht = '$ht', tva = '$tva', immobilier = '$immobilier', prix_pack_1 = '$prix_pack_1', prix_pack_2 = '$prix_pack_2', loyer_scellier_15 = '$loyer_scellier_15', loyer_scellier_9 = '$loyer_scellier_9', adresse_programme = '$adresse_programme', num_permis_construction = '$num_permis_construction',  permis_delivre = '$permis_delivre', adresse_notaire = '$adresse_notaire', signature_previsionnelle = '$signature_previsionnelle', reference = '$reference' where id = '$id'";
		
	$result = @mysql_query($sql, $conn)  or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
	
	if (!$result) {
	echo "<div id=\"ruffin_message\">".ERREUR_REQUETE." <PRE>$sql</PRE><br />";
       	echo "<a href=\"$_SERVER[HTTP_REFERER]\">".RETOUR."</a></div><br />";
  exit();
}
	}
	else {
		//$num_client = round(rand(1500, time())/500000);
		//$username = $_SESSION["administrateur"] or $_SESSION["utilisateur"];
$sql = "insert into ".PROGRAMMES." values ('', '','', '$titre', '$lieux', '$nbre_lots', '$livraison', '$type', '$num_lot', '$genre', '$etage', '$orientation', '$avec', '$surface_fiscale', '$surface_habitable', '$surface_jardin', '$surface_terasse', '$surface_loggia', '$surface_cave', '$ht', '$tva', '$immobilier', '$prix_pack_1', '$prix_pack_2', '$loyer_scellier_15', '$loyer_scellier_9', '$adresse_programme', '$num_permis_construction',  '$permis_delivre', '$adresse_notaire', '$signature_previsionnelle', '$reference')";

		//$date_limite = (time()+(86400 * 364));
//		$sql_dossier = "insert into ".ENTREPRISES_DOSSIERS." values ('', '$num_dossier', '$date_limite', '$num_saisie', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '$num_client')";
//		$resultat_dossier = @mysql_query($sql_dossier, $conn);
	//}
		$result = @mysql_query($sql, $conn)  or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}
//-----------------------------------------------------------------------------------------
	//------------------------------------- upload de la photo ------------------------------------
if (isset($_FILES['photo'])) {
	$tmp_file = $_FILES['photo']['tmp_name'];
	if (($tmp_file) && ($tmp_file != "none")) {
	   	$filename = "galerie_programmes/".$_FILES['photo']['name'];
		move_uploaded_file ($tmp_file, $filename);
		
		$conn = db_connect();	
    		$sql = "update ".PROGRAMMES." set photo = '$filename' where id = '$id'";
    		$result = @mysql_query($sql, $conn);	
 	}
}
//-----------------------------------------------------------------------------------------
	//------------------------------------- upload du plan ------------------------------------
if (isset($_FILES['plan_bien'])) {
	$tmp_file = $_FILES['plan_bien']['tmp_name'];
	if (($tmp_file) && ($tmp_file != "none")) {
	   	$filename = "galerie_programmes/plans/".$_FILES['plan_bien']['name'];
		move_uploaded_file ($tmp_file, $filename);
		
		$conn = db_connect();	
    		$sql = "update ".PROGRAMMES." set plan_bien = '$filename' where id = '$id'";
    		$result = @mysql_query($sql, $conn);	
 	}
}
	
//----------------------si la requete n'aboutie pas message erreur ------------------------
if (!$result) {
	echo "<div id=\"ruffin_message\">".ERREUR_REQUETE." <PRE>$sql</PRE><br />";
       	echo "<a href=\"$_SERVER[HTTP_REFERER]\">".RETOUR."</a></div><br />";
  exit();
}
//------------------------------------------------------------------------------------------

//------------------------------------------------------------------------------------------
    include "bas.php";	
   echo "<meta http-equiv=\"refresh\" content=\"1;url=gestion_liste_fiches_programmes.php\" />";
//------------------------------------------------------------------------------------------
}
?>