8797 sujets

Développement web côté serveur, CMS

Pages :
Smiley smile Bonjour,

Je suis entrain de faire un système de code chèque pour un copain.

Table sql avec 3 colonnes : Id + Code + Montant.

Le but de la manoeuvre est que lorsque le client tape son Code dans le formulaire le montant apparait à l'écran. Si le code est mauvais, rien s'affiche.

Bref, je rame un peu pour le code, avez vous un exemple ou un tuto, c'est pas bien sorcier je pense, mais encore faut il savoir si prendre et là, je sèche.

Je bloque au niveau de la requête à ma table slq.

Merci par avance pour vos lumières.

Bonne journée.

Dom
Modifié par CVS (29 Oct 2011 - 13:07)
J'ai tapé ça dans ma requête en php :

$reponse = $bdd->query('SELECT Code, Montant From cheque where Montant = .$_POST['Code']');

A première vue il y a un problème dans le code d'après Dreamweaver.

Smiley decu
Plusieurs choses :

- Si tu sais que ton champ Code sera unique, alors utilise le comme clé primaire et dégage Id.
- Si tu connais déjà la valeur de Code, pas la peine de le récupérer dans le SELECT.
- Par convention et souci de lisibilité, mets toutes tes clauses SQL (SELECT, WHERE, FROM...) en majuscules.
- N'écris pas directement ta requête dans ton query. Préfère une écriture du genre:
$queryMontant = 'SELECT Code, Montant From cheque where Montant = .$_POST['Code']';
$reponse = $bdd->query($queryMontant);
- Dans le cas présent, insère un echo de ta requête pour pouvoir la tester directement dans phpmyadmin ou voir ton erreur de syntaxe.
- PDO:ErrorInfo est ton amie.
- <troll>Les gens sérieux n'utilisent pas Dreamweaver.</troll>
Modifié par Florian_R (27 Oct 2011 - 11:05)
J'ai viré l'id, j'ai mis Code en clé primaire en type INT

J'ai mis de la majuscule sur les commandes.

Et toujours un message d'erreur.

A par Dreamweaver tu penses à Notepad++ ?

Bref, je galère toujours mais je vais bien finir par y arriver Smiley bawling
Quelle est l'erreur que t'indique Dreamweaver? Quand tu testes la requête via phpMyAdmin ou autre, ça te renvoie quoi?
Modifié par Florian_R (27 Oct 2011 - 12:19)
Message affiché dans ie, après avoir balancé le fichier sur le serveur.

Parse error: syntax error, unexpected T_STRING in /homez.318/dupontph/www/Panier/Paiement+.php on line 35

La ligne 35 est celle que tu m'as indiqué,c'est à dire :

$queryMontant = 'SELECT Code, Montant From cheque where Montant = .$_POST['Code']';
Code donné au serveur :

SELECT * FROM WHERE 1

Message d'erreur de Phpmyadmin :

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE 1' at line 1
J'avais pas fait gaffe au premier abord, tu as une erreur de quote. Version corrigée:
$queryMontant = 'SELECT Code, Montant From cheque where Montant = '.$_POST['Code'];
Merci beaucoup, ton code passe, reste à modifier quelques lignes et ça devrait fonctionner.

Je te tiens au courant.

Merci encore.

Dom Smiley smile
Modifié par CVS (27 Oct 2011 - 13:38)
J'ai un petit problème c'est que c'est plus compliqué que je pensai, je dois t'être fatigué !!!!

Je veux faire un formulaire avec entrée -> Code et que le serveur m'affiche le montant.

Le formulaire je sais faire mais le résultat s'affiche pas, donc il doit y avoir une coquille quelques part.

Aucun message d'erreur.

Bref, je suis pas doué ou j'ai pas les yeux en face des trous !!!!

Je boque au niveau du formulaire de saisie qui doit interroger la table.

Dom Smiley decu
Bonjour,

A mon avis, y as un problème dans ta requête, ca devrais plutôt être:
$queryMontant = 'SELECT Montant From cheque where Code = '.$_POST['Code'];
Bonjour,

Ton code passe mais j'ai ce message :

Fatal error: Call to a member function fetch() on a non-object in

Le code indiqué est :

$queryDeduction = 'SELECT Deduction From cheque where Code = '.$_POST['Code'];

while ($Deduction = $Deduction->fetch()) ICI
{
echo ($donnees['Deduction']);
}
$reponse->closeCursor();
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}

Ca doit pas être grand chose !!!
Teste avec ça :


$queryDeduction = 'SELECT Deduction From cheque where Code = '.$_POST['Code'];

$reponseDeduction = $bdd->query($queryDeduction);

while ($Deduction = $reponseDeduction->fetch()) ICI
{
echo ($donnees['Deduction']);
}
$reponseDeduction->closeCursor();
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
Réponse du serveur :

Erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Et ça?

$queryDeduction = 'SELECT Deduction From cheque where Code = '.$_POST['Code'];
$reponseDeduction = $bdd->query($queryDeduction);
while ($Deduction = $reponseDeduction->fetch())
{
echo ($donnees['Deduction']);
}
$reponseDeduction->closeCursor();
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}

Modifié par marcp (27 Oct 2011 - 16:46)
Pages :