Résolu Bonjour j'ai un petit soucis concernant l'affichage des mises a jour. je voudrais faire la mise à jour de deux table simultan

  • Auteur de la discussion fedely
  • Date de début

fedely

Habitué
Bonjour j'ai un petit soucis concernant l'affichage des mises a jour. je voudrais faire la mise à jour de deux table simultanément voici ma syntaxe:


<?php
$link=mysql_connect('localhost','root','');
if (!$link) {
die(' <p> Impossible de se connecter :'.mysql_error.' </p>');
}
$db=mysql_select_db('gestionpatients',$link);
if (!$db) {
die( '<p> Impossible de se connecter: '.mysql_error.' </p>');
}

$reqs="UPDATE patient SET nom='".$_REQUEST['nom']."','".$_REQUEST['prenom']."','".$_REQUEST['sexe']."','".$_REQUEST['lh']."','".$_REQUEST['dn']."','".$contact."',WHERE id_patient='".$_REQUEST['id_patient']."'";
$sql=mysql_query($reqs);
echo"$reqs";
$req="UPDATE consultation SET domaine='".$_REQUEST['domaine']."','".$_REQUEST['mont']."',WHERE id_patient='".$_REQUEST['id_patient']."'";
$sql1=mysql_query($req);
echo"$req";

?>

jusque là les tables se mettent pas à jour. Veuillez m'aider svp. merci d'avance
 

magellan

Modérâleur
Staff
PHP:
//Je vire les tests de connexion pour garder que la requete
$reqs="UPDATE patient SET nom='".$_REQUEST['nom']."','".$_REQUEST['prenom']."','".$_REQUEST['sexe']."','".$_REQUEST['lh']."','".$_REQUEST['dn']."','".$contact."',WHERE id_patient='".$_REQUEST['id_patient']."'";
$sql=mysql_query($reqs); 
echo"$reqs";
$req="UPDATE consultation SET domaine='".$_REQUEST['domaine']."','".$_REQUEST['mont']."',WHERE id_patient='".$_REQUEST['id_patient']."'";
$sql1=mysql_query($req); 
echo"$req"; 

?>
Hummm...affiche la variable reqs pour vérifier je voudrais bien voir ce qu'elle te sort en SQL brut...
PHP:
UPDATE patient SET nom='"
.$_REQUEST['nom']."','".$_REQUEST['prenom']."','".$_REQUEST['sexe']."','".$_REQUEST['lh']."','".$_REQUEST['dn']."','".$contact."',WHERE id_patient='".$_REQUEST['id_patient']."'";
$sql=mysql_query($reqs); 
echo"$reqs";
$req="UPDATE consultation SET domaine='".$_REQUEST['domaine']."','".$_REQUEST['mont']."',WHERE id_patient='".$_REQUEST['id_patient']."'";
Ta requête ne peux pas, il me semble, marcher au titre que tu ne détailles pas chaque champ en affectation.


tu fais bien nom='quelque chose', mais quid des autres champs?
Et comment cela se concatène exactement? je ne suis pas expert php donc... mais perso j'irais coller tout ça dans une var quelconque pour l'afficher ou bien la balancer dans un log histoire de voir le résultat.
Essaye ceci pour commencer:
PHP:
$reqs=UPDATE patient SET nom='"+.$_REQUEST['nom'].+"' where id_patient='"+.$_REQUEST['id_patient'].+"';"
puis affiche la variable reqs pour vérifier.

Essaye également une requête en dur comme
PHP:
resq="Update patient set nom='quelquechose', prenom='autre chose' where id_patient=199 // 199 code ID, mets ce que tu veux sureveiller côté base de données
Et regarde si cela fonctionne de la sorte.
 

magellan

Modérâleur
Staff
déjà Mets moi le contenu de la variable REQS ici que je puisse voir ce qu'il y a réellement dedans.
 

fedely

Habitué
voici ce qui sort lorsque je fait echà"echo"$reqs" et echo"$req";



UPDATE patient SET nom='kone',prenom='marietou',sexe='F',lh='riviera 3',dn='05/05/1991',contact='9090909',WHERE id_patient='106'UPDATE consultation SET domaine='dermatologie',mont='4000',WHERE id_patient='106
 

magellan

Modérâleur
Staff
Meilleure réponse
La virgule de trop et deux requêtes imbriquées SANS ";"

UPDATE patient SET nom='kone',prenom='marietou',sexe='F',lh='riviera 3',dn='05/05/1991',contact='9090909',WHERE id_patient='106'UPDATE consultation SET domaine='dermatologie',mont='4000',WHERE id_patient='106
FAUX

Fonctionnel
UPDATE patient SET nom='kone',prenom='marietou',sexe='F',lh='riviera 3',dn='05/05/1991',contact='9090909'enleve le',' ici!!!WHERE id_patient=106Il manque un ";" ici!!! sinon les deux requêtes ne peuvent PAS s'exécuter l'une après l'autre, et pas de guillemets sur un entier (ID)!!UPDATE consultation SET domaine='dermatologie',mont='4000' même chose un "," de TROP !!! Mets juste un espaceWHERE id_patient=Pas de guillemets sur un ENTIER en id106

UPDATE patient SET nom='kone',prenom='marietou',sexe='F',lh='riviera 3',dn='05/05/1991',contact='9090909' WHERE id_patient=106;UPDATE consultation SET domaine='dermatologie',mont='4000' WHERE id_patient=106
 

fedely

Habitué
oooh yess!!! mercii !!! ça fonctionne comme sur des roulettes. SUPERR I LIKE IT! j'ai mis les espaces et boom***
 

magellan

Modérâleur
Staff
pense à sélectionner ma réponse pour clore le sujet.
 

fedely

Habitué
j'ai une autre préoccupation c'est à dire que je veux maintenant faire la somme entre 2 date.
voila ma requete :
<?php
$date1=$_POST['date1'];
$date2=$_POST['date2'];
$sql="select login,mont,SUM(mont) as TOTAL_MONTANT
FROM consultation
WHERE date BETWEEN '$date1' AND '$date2'
GROUP BY login";
?>
 

magellan

Modérâleur
Staff
Encore une fois, balance moi la requête issue des logs que tu puisses déjà voir si le formatage est conforme!
 

fedely

Habitué
<?php
$date1=$_POST['date1'];
$date2=$_POST['date2'];
$sql="select SUM(mont) as TOTAL_MONTANT
FROM consultation
WHERE date BETWEEN '$date1' AND '$date2'
GROUP BY login";
$sqlresult=mysql_query($sql);
while ($tab=mysql_fetch_array($sqlresult))
{
echo " $tab";
}
?>
la requete n'abouti pas !!
 

magellan

Modérâleur
Staff
je réitère ... mets le contenu de la variable qu'on puisse lire la requête ...
 

fedely

Habitué
<?php
$date1=$_POST['date1'];
$date2=$_POST['date2'];
$sql="select mont,SUM(mont) as TOTAL_MONTANT FROM consultation WHERE date BETWEEN '$date1' AND '$date2' GROUP BY login";
$sqlresult=mysql_query($sql);
while ($row=mysql_fetch_array($sqlresult))
{
echo $row['mont'];
}
?>

 

fedely

Habitué
En fait lorsque j'execute on me met
( ! ) Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\CHR\script\verif_date.php on line
 

magellan

Modérâleur
Staff
Donne moi LE CONTENU de la variable $sql!

Je pensais être clair...
autre point:
Ta requête me semble ne pas avoir le moindre sens.
[citation]Select mont, Sum(Mont) as TOTAL_MONTANT From Consultation[/citation]
tu ne peux pas obtenir la somme unique par login, en même temps que les montants unitaires

Exemple
ID LOGIN Mont
1 10 10.5
2 11 15.5
3 11 16.25

Comment veux-tu afficher un group by là où tu as déjà des différences de la sorte?

Autre point: est-ce que login est dans la MEME table? Si ce n'est pas le cas ça ne risque pas de fonctionner du tout!

La requête me semblerait être plutôt
[Citation]Select login, sum(mont) as total from consultation where date between date1 and date2 group by login;[/citation]
 

fedely

Habitué
lorsque je fais echo "$sql"; de la requete que tu me donne voici ce que j'obtiens : select login SUM(mont) as TOTAL_MONTANT FROM consultation WHERE date BETWEEN '2016/03/10' AND '2016/03/21' group by login
 

magellan

Modérâleur
Staff
LA VIRGULE!

select login,<----- LA VIRGULE ICI SUM(mont) as TOTAL_MONTANT FROM consultation WHERE date BETWEEN '2016/03/10' AND '2016/03/21' group by login


Autre point: la colonne login existe dans la table consultation?
 

fedely

Habitué
Mercii pour ton aide j'ai pu le faire / j'avais mal formulee ma requete / Grand merci a toi. J'ai une autre preoccupation si je peux me le permettre ! Je veux maintenant pouvoir imprimer un ticket de caisse a partir de mon application. J'ai besoin de fichier zip qui permettrait cela. //
 

magellan

Modérâleur
Staff
Un ticket de caisse?! Sur quel type d'imprimante?

S'il s'agit d'une imprimante à ticket (Epson TMCxx) soit c'est du port COM (et là bonne chance), soit USB, auquel cas tu devras faire une feuille de style spécifique pour éditer le ticket au format de sortie rouleau.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 080
Membres
1 586 395
Dernier membre
franckorus
Partager cette page
Haut