Calcul en php

Nassou22 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
Neliel Messages postés 6146 Date d'inscription   Statut Contributeur Dernière intervention   -
Je bloque pour un calcul. J'ai fait un php de réservation (je suis un cinéma et les gens peuvent réserver leur place),tout fonctionne corectement,maintenant jaimerai crée un php dont je défini une variable $chiffre avec la valeur 141 ,ensuite je veux prendre l'id max(en Auto-Increment)(pour le moment ma table a 2 réservation de client) et je voudrais donc soustraire $chiffre à l'id et afficher le résultat,puis le passé en pourcentage.
Le principe étant d'indiquer combien de place son encore disponible et faire un taux de remplissage
J'ai tapé sa le code suivant :

<?php
$chiffre = $_POST['141'];
{
include "connexionbase.php";
$sql= "select max(id) - $chiffre from reservation";
$result= mysql_query($sql);
while($num=mysql_fetch_array($result))
{
echo $num;}
mysql_close();
}

?>

Sauf que,sa a pas lair de fonctionner.. J'ai crée ce code en mélangeant plusieurs éléments données en cours,mais bon..
Need help
A voir également:

3 réponses

Neliel Messages postés 6146 Date d'inscription   Statut Contributeur Dernière intervention   1 693
 
Bonjour,

$sql= "select max(id) - $chiffre from reservation";

Ce n'est pas bon ça...

max(id) c'est quoi ? Il n'y a pas de variable dans cette instruction...


0
Nassou22 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
max(id) correspond a un élément de ma data base,1er champ qui sapel "id" et qui est en auto-increment,donc quand les gens réserve sa liste tout seul au niveau des chiffres.
Sa fonctionnai dans un exemple de cours ^^ donc c'est censé fonctionner ici aussi non ?
0
Neliel Messages postés 6146 Date d'inscription   Statut Contributeur Dernière intervention   1 693
 
Ah ok... je connaissais pas.

Dans ce cas, tu remplace
$chiffre = $_POST['141'];

par

$chiffre = 141;

$_POST sert uniquement à récupérer des variables envoyés par formulaire avec la méthode du même nom.

Pour la requête SQL, ça ne peut pas fonctionner pour deux raisons:

1. Tu ne peux pas mettre le nom d'une variable entre guillemet et espéré qu'elle soit prix en compte.

exemple:

On ne fait pas:

echo "le prix est de $prix euro";

mais

echo "le prix est de ".$prix."euro";

2. Tout ce qui a entre SELECT et FROM doit correspondre à un nom de champ ou une instruction mysql comme count ou max()...

En somme, tu dois présenter ta requête en deux temps... tu récupère d'abord le max(id) en faisant:

$req1="select max(id) from reservation";
$res1=mysql_query($req1);
$idmax1=mysql_result($req1,0,"max(id)");
echo $idmax1;

et ensuite tu fais le calcul:

$nouvel_id = $idmax - $chiffre;

Et ensuite une nouvelle requête:

$req2 = "select * from reservation where id=".$nouvel_id."";
$res2 = mysql_query($req2);
$don = mysql_fetch_array($res2);

ensuite tu accèdes au champ en faisant: $don['<nom_du_champ>'];
0
Nassou22 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai essayé ce que tu m'a conseilé,sa fonctionne pas non plus ^^"
La je fais des test depuis tout à l'heure ,mais j'men sor pa!
0
Neliel Messages postés 6146 Date d'inscription   Statut Contributeur Dernière intervention   1 693
 
met

or die(mysql_error()) derrière chaque mysql_query...

$res1 = mysql_query($req1) or die(mysql_error());

$res2 = mysql_query($req2) or die(mysql_error());

Il va t'afficher l'erreur qui bloque la requête...
0
Nassou22 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Ok je vais essayer sa. Merci de ton aide.
Je te dirais si sa a fonctionner dans la soirée.
0
Darkito Messages postés 1191 Date d'inscription   Statut Membre Dernière intervention   545
 
Bonjour,


Dans un premier temps, je pense qu'il y a un souci avec l'affectation de $chiffre.

Il me semble que $_POST['141'] n'ets pas correct.

il serait plus simple de mettre $chiffre=141;

Ensuite, pour des raisons de lisibilité, il vaudrait mieux mettre :

$sql= "select max(id) - ".$chiffre." from reservation";
0
Nassou22 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai testé ce que tu m'a dit,sa fonctionne pas :S
Sa affiche sur la page " Array " ,uniquement sa. Donc je sais pas
0
Neliel Messages postés 6146 Date d'inscription   Statut Contributeur Dernière intervention   1 693
 
Je pense qu'il voulais faire:

$chiffre=141;
0
fxtaa Messages postés 1050 Date d'inscription   Statut Membre Dernière intervention   74
 
Salut,

Avant de passer par php, ta requête fonctionne directement sur mysql ? (en remplacant $chiffre par 141)
0
Neliel Messages postés 6146 Date d'inscription   Statut Contributeur Dernière intervention   1 693
 
C'est pourquoi je lui ai dit de rajouter le "die(mysql_error())", si c'est un problème de requête, la fonction le dira...
0