Calcul en php et sql [Résolu]

kira1738 4 Messages postés lundi 29 janvier 2018Date d'inscription 31 janvier 2018 Dernière intervention - 29 janv. 2018 à 21:25 - Dernière réponse : Reivax962 3126 Messages postés jeudi 16 juin 2005Date d'inscription 13 février 2018 Dernière intervention
- 31 janv. 2018 à 09:10
Bonjour désolé de vous déranger actuellement je travail sur une petite interface en localhost

Niveau sécurité j'ai aucun soucie car le PC n'est et ne sera jamais connecter sur le réseau donc j'utilise des protocole mysql

Voici mon souci actuellement je fait juste un tableau j'aimmerais fait en sorte que la partie résultat face somme ( 1 + 2 ) - 3

<?php

$host = "localhost";
$Nom_sql = "root";
$password_sql = "root";
$nom_bd_sql = "perso";
mysql_connect($host, $Nom_sql, $password_sql)
or die('Impossible de se connecter au serveur '.$host.'. veuillez verifier votre configuration');
mysql_select_db($nom_bd_sql)
or die('Impossible de se connecter a la base de donnée '.$nom_bd_sql.'');
// On vérifie les infos qu'on reçoit via un GET


if( !isset($_GET['identificationuni']) || !($identificationuni = $_GET['identificationuni']))
;


// On recupere l'article via son id
$retour = mysql_query("SELECT * FROM calcul WHERE identificationuni = '".$identificationuni."' ORDER BY datedebut LIMIT 0, 10");
//on affiche notre boucle
while($donnees = mysql_fetch_array($retour)){
echo'



<tr>

<td>'.$donnees['etat'].'</td>
<td><time datetime="'.$donnees['1'].'"</time>'.$donnees['2'].'</td>
<td>'.$donnees['3'].'</td>
<td>'.$donnees['resultat'].'</td>



}






?>

</table>

Pouvez vous m'aider
je vous remerci de votre attention
Cordialement
Afficher la suite 

6 réponses

Répondre au sujet
jordane45 19964 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 15 février 2018 Dernière intervention - 30 janv. 2018 à 01:32
+1
Utile
5
Bonjour

À quoi correspondent 1 2 et 3 ?
Des champs de ta table ? Ils sont de quels type ? Que contiennent t ils ?
As tu simplement essayé de faire ton opération dans ta requête sql directement ?
kira1738 4 Messages postés lundi 29 janvier 2018Date d'inscription 31 janvier 2018 Dernière intervention - 30 janv. 2018 à 08:29
Bonjour Jordan
Oui ce sont des valeurs et j'aimerais que le
'.$donnees['resultat'].'</td>


Donne en faite le calcule ( Nombre N°1 + Nombre N° 2 ) - Nombre N° 3 = resultat

Je sais pas du tous comment faire si tu peux m'aider
Cordialement
jordane45 19964 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 15 février 2018 Dernière intervention - 30 janv. 2018 à 08:54
SELECT ( `1` +` 2` ) - `3`  as resultat
FROM calcul 
WHERE identificationuni = '".$identificationuni."' 
ORDER BY datedebut LIMIT 0, 10


Par contre nommer tes champs par des chiffres... ce n'est clairement pas une bonne idée !
kira1738 4 Messages postés lundi 29 janvier 2018Date d'inscription 31 janvier 2018 Dernière intervention - 31 janv. 2018 à 07:38
Salut jordan c'étais pour exemple
1 = point
2 = point offert
3 point perdu

Je ne comprend pas trop ta requêtes sql

// On recupere l'article via son id
$retour = mysql_query("SELECT * FROM pack WHERE identificationuni = '".$identificationuni."' ORDER BY datedebut LIMIT 0, 10 
UNION 
SELECT ('point' + 'pointoffert' ) - 'pointperdu' as resultat FROM pack WHERE identificationuni = '".$identificationuni."' ORDER BY datedebut LIMIT 0, 10
 ");
//on affiche notre boucle
while($donnees = mysql_fetch_array($retour)){
echo'
 


Si j'ai bien compris ça doit donnée ça

et je fait
<td class="hidden-phone">'.$donnees['resultat'].'</td>


pour la réponse

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /public_html/polaris/histopackprofil.php on line 40
jordane45 19964 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 15 février 2018 Dernière intervention - 31 janv. 2018 à 07:41
Retire les quotes autour des champs ou sinon remplaces les par des backquotes
Reivax962 3126 Messages postés jeudi 16 juin 2005Date d'inscription 13 février 2018 Dernière intervention - 31 janv. 2018 à 09:10
Bonjour,

Il ne faut pas faire un UNION, mais rajouter le calcul à la liste des champs retournés :
// On recupere l'article via son id
$retour = mysql_query("SELECT *, ('point' + 'pointoffert' ) - 'pointperdu' as resultat FROM pack WHERE identificationuni = '".$identificationuni."' ORDER BY datedebut LIMIT 0, 10 ");
//on affiche notre boucle
while($donnees = mysql_fetch_array($retour))


Et je rajouterais que les mysql_query & cie sont obsolètes et doivent être remplacés par les classes PDO, mais Jordane te diras ça beauuuuuucoup mieux que moi (je suis sûr qu'il/elle a un message tout prêt à copier-coller)

Xavier
Commenter la réponse de jordane45