Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/03/2007, 07h54   #1
Invité de passage
 
Inscription : mars 2007
Messages : 6
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mars 2007
Messages : 6
Points : 0
Points : 0
Par défaut [Conception] écriture et update dans BDD

Bonjour
Voila j'ai fais un script qui permet d'updater des votes a partir de la personne qui recois sinon si la personne n'est pas encore dans la base de donnée s'a l'ajoute (nom et vote acquis) ! mon probleme c'est que ni l'update ni l'ecriture dans la bdd ne fonctionne
Vous pouvais me dire ce qui ne va pas pourquoi svp!
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>
 
<body>
<h1>Ajouter un Bonus de votes</h1>
<form action="bonus.php" method="post">
<table border="0" cellspacing="0" cellpadding="4">
<tr>
<td align="right" width="174">Receveur</td>
<td><input type="text" name="receveur" size="40"/></td>
</tr>
<tr>
<td align="right" width="174">Vote recu</td>
<td><input type="checkbox" name="vote_recu" size="40" value=""/> 10 votes</td>
</tr>
<tr>
<td align="right" width="174">Envoyeur</td>
<td><input type="text" name="envoyeur" size="40"/></td>
</tr>
<tr>
<td align="right" width="174">Vote envoyer</td>
<td><input type="checkbox" name="vote_envoyer" size="40" value=""/> J'envoie 10 votes</td>
</tr>
 
<tr>
<td align="right" width="174"></td>
<td><input type="submit" name="bonus" value="Envoyer"/></td>
</tr>
</table>
</form>
</body>
</html>
<?php
 
// On récupère les champs (voir plus haut)
// On commence par récupérer les champs
if(isset($_POST['reveveur'])) $receveur=$_POST['receveur'];
else $receveur="";
 
if(isset($_POST['vote_recu'])) $vote_recu=$_POST['vote_recu'];
else $vote_recu="";
 
// On vérifie si les champs sont vides
if(empty($receveur) OR empty($vote_recu))
{
echo '<font color="red">Attention, seul le champs <b>envoyeur et vote envoyé</b> peut rester vide !</font>';
}
// Aucun champ n'est vide, on peut enregistrer dans la table
else
{
$db = mysql_connect('xxx', 'yyy', 'zzz'); // connexion à la base
mysql_select_db('wwwwwww'); // sélection de la base
 
// on regarde si l'url existe déjà
$sql = "SELECT * FROM special WHERE vote_recu='$vote_recu'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
 
// on compte le nombre de résultats
$res = mysql_num_rows($req);
 
if($res!=0) // l'url existe déjà, on affiche un message d'erreur
{
$fonction = $_GET['fonction'];
 
function plus() {
global $receveur;
$sql = "UPDATE special SET vote_recu=vote_recu+10 WHERE receveur=".$receveur;
mysql_query($sql);
echo 'Vos votes on été updatés.';
}
if($fonction == 'vote_recu'){
$fonction();
}
}
else // L'url n'existe pas, on insère les informations du formulaire dans la table
{
$sql = "INSERT INTO special(id, receveur, vote_recu, envoyeur, vote_envoyer, total) VALUES('','$receveur','$vote_recu','$envoyeur','$vote_envoyer','$total')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
 
// on affiche le résultat pour le visiteur
echo 'Nouveau ajouté.';
}
mysql_close(); // on ferme la connexion
}
?>
lladnll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 09h09   #2
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
bonjour ,

qu'entends tu par 'uploader des votes' ?

comment ça ça ne marche pas ? tu as des messages d'erreur ? ou autre ?
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 09h44   #3
Invité de passage
 
Inscription : mars 2007
Messages : 6
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mars 2007
Messages : 6
Points : 0
Points : 0
Citation:
Envoyé par RideKick
bonjour ,

qu'entends tu par 'uploader des votes' ?

comment ça ça ne marche pas ? tu as des messages d'erreur ? ou autre ?

salut! je voulez dire UPDATER les votes desolé ( je sais pas pourquoi j'ai ecris upload c'est vrai arfffff surement parce que j'ai passé ma nuit a chercher le probleme de mon script ), ce qui correspond a ex: si Marie a deja dix vote aquis , bien si elle en recois de nouveau 10 votes d'un coup la base de donnée se mettra a jour (10+10 =20 votes) en se qui conscerne Marie ! mais si marie n'existe pas encore dans la BDD bien on la crée !

Code :
$sql = "UPDATE special SET vote_recu=vote_recu+10 WHERE receveur=".$receveur;
et

Code :
$sql = "INSERT INTO special(id, receveur, vote_recu, envoyeur, vote_envoyer, total) VALUES('','$receveur','$vote_recu','$envoyeur','$vote_envoyer','$total')";

et le probleme ici est que la ca ne s'ecrit pas dans la BDD , n'y l'ajout d'un nouveau ni le calcul s'effectue ! et aucun message d'erreur s'affiche. c'est comme si l'action s'etait effectuée mais en verrifiant les champs dans la table bien rien n'a bouger

si tu as une solution plus simple je suis preneur ridekick

voila
lladnll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 09h52   #4
Membre chevronné
 
Inscription : juin 2005
Messages : 572
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : juin 2005
Messages : 572
Points : 690
Points : 690
L'idée est là pour moi, par contre dans ton update il manque des quotes pour entourer le nom du receveur.

As tu tenté d'afficher les requetes à l'écran et de vérifier leur comportement sous phpMyAdmin ?
ratapapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 10h09   #5
Invité de passage
 
Inscription : mars 2007
Messages : 6
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mars 2007
Messages : 6
Points : 0
Points : 0
Citation:
Envoyé par ratapapa
L'idée est là pour moi, par contre dans ton update il manque des quotes pour entourer le nom du receveur.

As tu tenté d'afficher les requetes à l'écran et de vérifier leur comportement sous phpMyAdmin ?
salut ratapapa
oui j'ai regarder directement sous phpadmin bien rien ne bouge et sa n'ecris ni l'ajout ni le calcul

tu peux me l'ecrire le quote manquant ! je vois pas ou et c'est surrement du a ca vu que je commence par la recherche de l'update des votes par rapport au receveur ca se pourai que sa vienne de la sinon je vois pas ou sa peux cloché
lladnll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 10h14   #6
Membre chevronné
 
Inscription : juin 2005
Messages : 572
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : juin 2005
Messages : 572
Points : 690
Points : 690
Code :
1
2
 
$sql = "UPDATE special SET vote_recu=vote_recu+10 WHERE receveur='".$receveur."'";
Apparemment receveur est un champ texte donc l'utilisateur indique directement le nom (attention aux multiples dangers des majuscules, mauvaise syntaxe, etc. dans ce cas personnellement j'utilise un système de sélection, via liste déroulante ou autre).

D'autre part ton code me semble assez peu orthodoxe, puisque tu déclares une fonction au milieu du code pour l'appeler une seule fois, et par le biais d'une variable.

EDIT : quand je parlais de regarder sous phpMyAdmin je sous entendais faire un echo de ta requete et l'exécuter dans phpMyAdmin ^^
ratapapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 15h40   #7
Invité de passage
 
Inscription : mars 2007
Messages : 6
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mars 2007
Messages : 6
Points : 0
Points : 0
Merci j'avais pas vu le point manquant !

lol j'utilise une fonction car je vais m'en servir ensuite pour ma partie soustraction pour que l'on puisse agir sur les votes dans les 2 sens

j'ai pas encore testé si sa marche mais je te tiens au courant de l'evolution !
lladnll est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 17h41   #8
Invité de passage
 
Inscription : mars 2007
Messages : 6
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mars 2007
Messages : 6
Points : 0
Points : 0
Bon! Bien j'ai corrigé le quote mais sa ne s'ecris toujours pas dans ma BDD sa me stress ! on m'a parler d'un probleme au niveau des premiers "if" moi perso je vois pas de probleme ??
lladnll est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h58.


 
 
 
 
Partenaires

Hébergement Web