Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2429 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Requête Sql avec variable PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requête Sql avec variable PHP

n°1747486
Bilbo248
Posté le 17-06-2008 à 12:54:36  profilanswer
 

Bonjours j'ai un souci que je n'arrive pas à déterminé, voilà le code php la ligne 79 pose probléme :

Code :
  1. <html>
  2. <body>
  3. <?php
  4.  //Connexion au serveur MySQL
  5.   $db=mysql_connect("localhost","root" ) or die("erreur de connexion".msql_error());
  6.   //Ouverture de la base microrezo
  7.   mysql_select_db("microrezo",$db) or die("erreur de connexion à la base microrezo" );
  8.  $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis : <br/><br/>";
  9.  $msg_ok = "L'enregistrement à bien été effectué.";
  10.  $message = $msg_erreur;
  11.  // Interdiction des champs vide
  12.  if (empty($_POST['nomclient']))
  13.      $message .= "Le nom client<br/>";
  14.  if (empty($_POST['telclient']))
  15.   $message .= "Le numéro de téléphone<br/>";
  16.  if (empty($_POST['type']))
  17.   $message .= "Le type d'ordinateur<br/>";
  18.  if (empty($_POST['test']))
  19.   $message .="Les tests prévu pour la machine<br/>";
  20.  if (empty($_POST['descpanne']))
  21.   $message .="La description du/des probléme<br/>";
  22.  // Mise en place du message d'erreur
  23.  if (strlen($message) > strlen($msg_erreur)) {
  24.   echo $message;
  25.      $code_erreur = 1;
  26.  }
  27.  $nomclient = $_POST['nomclient'];
  28.  $telclient = $_POST['telclient'];
  29.  $type = $_POST['type'];
  30.  $date_entree = date("d-m-y" );
  31.  $descpanne = $_POST['descpanne'];
  32.  $test = $_POST['test'];
  33.  $sqltest = '' ;
  34.  for ($i=0; $i<count($test); $i++) {
  35.  $sqltest .= $test[$i];
  36.  $sqltest .= ', ';
  37.  }
  38.  //Je met une virgule en chaque valeur.
  39.  $access =$_POST['access'];
  40.  $sqlaccess = '';
  41.  for ($u=0; $u<count($access); $u++) {
  42.  $sqlaccess .= $access[$u];
  43.  $sqlaccess .= ', ';
  44.  }
  45.  $tache_prevu = $sqltest ;
  46.  $tache_effectue = "Aucune" ;
  47.  //Mise en place de limite de caractére  sur les champs 'nomclient','telclient','test'
  48.  $msg_longueur = "Erreur les champs suivants contiennent pose probléme : <br/><br>";
  49.  $msg = $msg_longueur;
  50.  if (strlen($nomclient) > 15 )
  51.   $msg .= "Le nom client ne doit pas contenir plus de 15 caractéres<br/>";
  52.  if (strlen($telclient) < 10)
  53.      $msg .= "Le numéro de téléphone doit contenir au minimum 10 chiffres.<br/>";
  54.  if (strlen($telclient) > 10)
  55.      $msg .= "Le numéro de téléphone doit contenir au maximum 10 chiffres.<br/>";
  56.  if (is_numeric($teclient) == "false" )
  57.      $msg .= "Le numéro de téléphone ne dois contenir que des chiffres.<br/>";
  58.  if (strlen($descpanne) > 500)
  59.   $msg .= "La description de la panne ne doit pas contenir plus de 500 caractéres.<br/>";
  60.  if (strlen($tache_prevu) > 600)
  61.   $msg .= "La description de la réparation ne doit pas excédé 500 caractéres.<br/>";
  62.  //Mise en place du message d'erreur pour la limite de caractére et de type de contenu.
  63.  if (strlen($msg) > strlen($msg_longueur)) {
  64.   echo $msg;
  65.   $code_erreur = 1;}
  66.  if ($code_erreur == 1) {
  67.  echo "Enregistrement non effectué car une erreur à été détecté";
  68.  }
  69.  else {
  70.  $sql = " INSERT INTO clients VALUES('idclient','$nomclient','$telclient')";
  71.  mysql_query($sql) or die ("erreur".mysql_error());
  72.  $idclient = mysql_query("SELECT idclient FROM clients WHERE nomclient = '$nomclient' AND telclient = '$telclient'" );
  73.  $sql = "INSERT INTO machine VALUES('$idmachine','$type', '$sqlaccess', '$descpanne','$date_entree','$tache_prevu','$tache_effectue','$idclient')";
  74.  mysql_query($sql) or die ("erreur".mysql_error());
  75.  echo  $sqlaccess ;
  76.  }
  77.  ?>


En faite je veux pouvoir sauvegarder l'idclient créer automatiquement par la requête précédente dans ma table machine tout simplement.


Message édité par Bilbo248 le 17-06-2008 à 23:38:32

---------------
Photographie d'amateur |--| Stats BDPV - Photovoltaique
mood
Publicité
Posté le 17-06-2008 à 12:54:36  profilanswer
 

n°1747501
PunkRod
Digital Mohawk
Posté le 17-06-2008 à 13:16:03  profilanswer
 

ligne 77 : $sql = " INSERT INTO clients VALUES('','$nomclient','$telclient')";
> si ton champ id_client est bien 'auto-increment' ça devrait fonctionner
 
et ensuite ligne 79 tu faire plus simple et utiliser 'mysql_insert_id()'

n°1747838
Bilbo248
Posté le 17-06-2008 à 20:51:00  profilanswer
 

ma ligne 77 ne me pose aucun problème et fonctionne très bien comme celà, je vais par contre regardé ce que tu m'a conseillez pour la ligne 79,
quel différence entre ce que j'ai mis et simplement mysql_insert_id() ?!
EDIT : çà fonctionne parfaitement avec mysql_insert_id() , cependant si l'on veut faire comme ma première solution comment faire ?!


Message édité par Bilbo248 le 17-06-2008 à 21:22:00

---------------
Photographie d'amateur |--| Stats BDPV - Photovoltaique
n°1747896
Profil sup​primé
Posté le 17-06-2008 à 22:17:00  answer
 

Salut !
 
T'as fortement besoin de passer par la documentation de base de php ! (tu connais depuis quelques heures ?)
 
la premiere idée qui me passe par la tete : "encore un qui n'a pas lu la doc, RTFM"

Citation :

"Bonjours j'ai un souci que je n'arrive pas à déterminé,"


---> http://fr2.php.net/mysql_query
 
ne dis surtout pas que tu a cherché, pour 2 secondes !
 
 
- mysql_query ne te retourne non pas une valeur mais une ressource
il faut utiliser les fonctions mysql_fetch_* suite à cela
 
- contrairement à ce que te dis PunkRod, le champ de la clé primaire n'as pas a etre spécifié :
déclare ton insertion de tout autre champs ainsi :
INSERT INTO ta_table(tes,champs,a,affecter) VALUES('de','ces','valeurs','la');
 
- ton $idmachine tu l'inventes d'où ?
- des requetes avec des quotes doublés... jamais vu ca en mysql
- mysql_insert_id() pour obtenir l'id dernierement inseré (a faire pour $idclient et $idmachine)
- si une variable passé en post contient des caractères douteux... tes requetes explosent ! ---> regarde mysql_real_escape_string pour protéger efficacement
- ta ligne 77 fonctionne très bien ??? mais bien sur il est vachement numérique ton idclient
 
 
Corriges cela et tout ira mieux

Message cité 1 fois
Message édité par Profil supprimé le 17-06-2008 à 22:18:10
n°1747939
Bilbo248
Posté le 17-06-2008 à 23:43:03  profilanswer
 


---> http://fr2.php.net/mysql_query
 
ne dis surtout pas que tu a cherché, pour 2 secondes ! J'ai cherchez, mais pas ce qu'il fallait, nuance ;)
 
 
- mysql_query ne te retourne non pas une valeur mais une ressource La différence entre ressource et valeur c'est quoi ?!
il faut utiliser les fonctions mysql_fetch_* suite à cela Ceci pour affiché le résultat à l'écran ?! Mais pour l'insérer dans une variable ?!
 
- contrairement à ce que te dis PunkRod, le champ de la clé primaire n'as pas a etre spécifié :
déclare ton insertion de tout autre champs ainsi :
INSERT INTO ta_table(tes,champs,a,affecter) VALUES('de','ces','valeurs','la');
 
- ton $idmachine tu l'inventes d'où ? Auto incrémentation dans mes table
- des requetes avec des quotes doublés... jamais vu ca en mysql Une erreur quand j'ai copié le code.
- mysql_insert_id() pour obtenir l'id dernierement inseré (a faire pour $idclient et $idmachine) Pas la peine pour id machine, étant donné que mon idclient ne dépend pas de mon idmachine
- si une variable passé en post contient des caractères douteux... tes requetes explosent ! ---> regarde mysql_real_escape_string pour protéger efficacement J'avais vu quelque chose en rapport avec celà, donc à reregardé.
- ta ligne 77 fonctionne très bien ??? mais bien sur il est vachement numérique ton idclient Cet ligne fonctionne bien malgrés mon erreur, merci l'autoincrémentation ;)
 
 
Corriges cela et tout ira mieux[/quotemsg]


Message édité par Bilbo248 le 17-06-2008 à 23:48:10

---------------
Photographie d'amateur |--| Stats BDPV - Photovoltaique

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Requête Sql avec variable PHP

 

Sujets relatifs
Génération de PDF à partir de PHP[Résolu] Message d'erreur PHP envoyé dans le log d'Apache 2
scroll barre contenue dans la variable htmlEquivalence code PHP en CGI
[SQL Server] Capacité et temps d'exécutionProblème Flash -> PHP
Pb de temps d'execution d'une requeteMigration SQL 6.5 vers 2005
Aide sur requete SQL avec variable PHP[PHP] Requête sql avec une variable
Plus de sujets relatifs à : Requête Sql avec variable PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR