rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Incrémentation dans une base de donnée

Boskozz, le mardi 22 juillet 2008 à 00:02:59
Bonjour,
Je me suis fais un site regroupant mes compositions, triées et classées ... et j'aimerais,
lorsqu'une personne télécharge un morceau, que le compteur soit incrémenté
d'un dans la base donc
Voici mon code et quelques tentatives ...

Code PHP :
<a href="music'.$data['chemin'].'" onclick="incdl('.$data['nbdl'].','.$data['id'].' )">Lien</a>

Code Javascript enfin plutot la tentative :) :
<SCRIPT language="Javascript">
<!--
function incdl(nb, iid){
$sql = "UPDATE `nbdl` = `nbdl`+1 WHERE `id` = ".&data['id'];
$resultat = mysql_query($sql);
}
-->
</SCRIPT>

D'avance merci ....
Configuration: Windows XP
Firefox 3.0.1
Répondre à Boskozz  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
CIAnure, le mardi 22 juillet 2008 à 00:15:14
Là, tu mélange Javascript et PHP. c'est pas possible.

Sinon pour te répondre, il faut:

1) quand on télécharge ta musique, tu appelle une fonction javascript avec comme paramètre le numéro de ta musique et le nombre de téléchargement jusqu'à présent.
2) Ta fonction Javascript recharge la page avec les paramètres en méthode POST
3) Tu récupère les paramètres dans ta variable $_POST (donc en PHP)
4) Tu fait un appel MySQL pour incrémenter en base, la table qui comporte le nombre de téléchargement pour cette musique.

Est-ce clair pour toi? Bon courage. CIAnure
Répondre à CIAnure

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Boskozz, le mardi 22 juillet 2008 à 04:49:18
Merci et non pas assez clair :) Pour reprendre point par point.

1 et 2) <a href="music<?php echo $data['chemin']?>" onclick="incdl('<?php echo $data['nbdl']?>','<?php echo $data['id']?>' )">Lien</a>
Est ce que cette ligne est correcte ? j'imagine que non vu que je dois définir quelques part la méthode d'envoi POST, avec un formulaire je vois mais ici pas :s

3) pour récupérer les variable POST, ce serait comme ceci :
function incdl( nbdl , id ){
$sql = "UPDATE `nbdl` = ".$_POST['nbdl']."+1 WHERE `id` = ".$_POST['id'];
$resultat = mysql_query($sql);
}

4) lorsqu'on fait appelle a MySQL, faut il lui ouvrir la table dans le script lui même ? et la fermer ?

Moi non plus j'sais pas si j'ai été clair ;) J'espère ... et bon courage pour la réponse ;)
Répondre à Boskozz

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
CIAnure, le mardi 22 juillet 2008 à 12:33:03
1) ta ligne est bonne, mais met là entre les 2 balises <FORM name="form1"> </FORM>

2) Ta fonction Javascript doit recharger ton formulaire.

Ex :

function incdl( nbdl , id ){
document.form1.method = "POST";
document.form1.action = "Ton_URL?id="+id+"&nbdl="+nbdl
document.form1.submit();
}


3 et 4) Sur ta page, tu écrit un script PHP qui font un appel MySQL avec ce que tu veut (Tes parametres sont dans une variable $_POST)

Un problème que tu as, c'est que tu as l'air de ne pas bien maitrisé le PHP, MySQL et Javascript. Réfère toi aux cours. Bonne chance. CIAnure.
Répondre à CIAnure

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Boskozz, le mercredi 23 juillet 2008 à 01:16:59
J'ai effectivement oublié pas mal de chose et je mélange tout, mais bon si t'as encore un peu de courage pour corriger ma tentative, cela me ferait très plaisir :)

1) Coté lien, j'ai donc ajouté <FORM name="form<?php echo $data['id']?>"><a href ... avec l'id comme numéro de form, sinon vu la création du tableau , je me retrouvais avec des tas de form1. Mais cela me pose un probleme ailleur ...
2) Ici, dans la fonction Javascipt :
function incdl( nbdl , id, menupage ){
document.form+id.method = "GET";
document.form+id.action = "index.php?menupage="+menupage+"&id="+id+"&nbdl="+nbdl;
document.form+id.submit();
}
Est ce correct ? .form+id. ? Ya t'il possibilité de faire des tests, voir si ya quelques chose qui bouge ... :)
3) Dernière chose, pour le script PHP, je doute avoir bien fais, j'ai inséré dans le <HEAD> les lignes suivantes :
if (isset($_GET['id']))
{ $sql = "UPDATE `nbdl` = ".$_GET['nbdl']."+1 WHERE `id` = ".$_GET['id'];
$resultat = mysql_query($sql);
}

Suis je complètement perdu ? Ou ,y a t'il encore un espoir ;) ?
Encore merci ...
PS : Voici mon site au cas ou tu voudrais voir du concret : www.boskozz.com
Répondre à Boskozz

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Boskozz, le mercredi 23 juillet 2008 à 01:21:51
Ah oui j'ai oublié de dire aussi que tu m'avais dis la méthode POST mais étant donné que j'utilise déjà la méthode GET, j'ai tout passé en GET. Je ne sais pas si cela a vraiment des conséquences tant qu'il n'y a pas de données sécurisées ou privées. non ? :)

Encore merci ....
Répondre à Boskozz

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
CIAnure, le mercredi 23 juillet 2008 à 16:01:42
1) Faut que tu met qu'une fois la balise form ( haut de page qui englobe tout)
et ton form doit avoir un seul nom (Par exemple: form1)
donc <FORM name="form<?php echo $data['id']?> je ne voit pas l'intérêt

2) Ce qui fait que document.form+id.method = "GET"; ça ne peut pas marché
Met plutôt document.form1.method = "GET";

3)C'est bien la que tu dois faire ton appel MySQL. (Vérifie bien ta syntaxe quand même)

Sinon tu peut utiliser la méthode GET si tu veut, ça ne dérange pas. Bon courage
Répondre à CIAnure

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Boskozz, le vendredi 25 juillet 2008 à 10:30:21
Salut, J'ai continué de chercher, j'ai mis quelques alert() pour vérifier les variables ... avec les alert(), pas de problème, tout va bien mais quand je veux exécuter ton script seul, je ne vois pas de modification dans l'URL tandis que lorsque je met la même URL que j'ai mise dans document.form1.action, là, il daigne me changer mon URL mais ne me permet plus le téléchargement :s et puis même l'incrémentation ne se fait quand même pas ... enfin ca c'est peut etre encore mon script qui n'est pas au point ... enfin je te remet mon code, si jamais tu pourrais encore m'éclairer :)
Encore merci ...

Javascipt : j'ai rien changé vu que ça semble être bon ... vu les tests.

<SCRIPT language="Javascript">
<!--
function incdl( nbdl , id, menupage ){
document.form1.method = 'GET';
document.form1.action = 'index.php?menupage='+menupage+'&id='+id+'&nbdl='+nbdl;
document.form1.submit();
}
// -->
</SCRIPT>

Script PHP : sachant que la base est ouverte au dessus et fermée en fin de page ...

if (isset($_GET['id']))
{
$sql = "UPDATE music SET nbdl = ".$_GET['nbdl']."+1 WHERE id = ".$_GET['id'];
$resultat = mysql_query($sql);
}

HTML : Ceci est une partie du code déja passé sur le serveur PHP ( extrait de l'exploreur internet )
Et j'ai bien mis qu'un seul Form ...

<form method="GET" name="form1">


<tr>

<td><a href="music/08/Absence.mp3" class="mnu" onClick="incdl('0','18','08' )">Absence</a></span></td>
<td><span class="texte0">2008-07-01</span></td>
<td><span class="texte1">0</span></td>
<td><a href="music/08/Absence.mp3" class="mnu" onClick="incdl('0','18','08' )">Lien</a></td>
</tr>
Encore un grand merci ...
Répondre à Boskozz
[PHP/MySQL]Interrogation d'une base de donnée (Résolu)Salut, Je souhaite créer un petit site où je référence tous mes DVD avec un petit résumé. Pour cela, j'ai créé une page web pour enregistrer mes nouveaux DVD dans une base données et jusque là tout va bien. Mais maintenant, j'essaye de créer... www.commentcamarche.net/forum/affich-1569934-php-mysql-interrogation-d-une-base-de-donnee
Supprimer des donées de la base de données (Résolu)Bonjour, j'ai un petit soucis. Je souhaiterais supprimer des données dans ma base donné mais je n'y arrive pas. J'ai essayé différentes méthodes sans succes. Voici mon code. supprimer-user.php Supprimer un... www.commentcamarche.net/forum/affich-4839907-supprimer-des-donees-de-la-base-de-donnees
Cmnt mettre une image sur un fichier audio? (Résolu)Bonjour, voila mon probleme j'aimerai associer une image a un fichier audio du style mp3, id est pouvoir voir la jaquette de l'album de la chanson sur windows media player et cela avec la version da base donner sur le cd d'installation... www.commentcamarche.net/forum/affich-3077369-cmnt-mettre-une-image-sur-un-fichier-audio
[Windows] Nettoyer la base de registre avec RegCleanerLa plupart des applications stockent des données de configuration dans la base de registre car il s'agit d'un espace de stockage de données facile à gérer et commun à tous les systèmes Microsoft Windows. Néanmoins, beaucoup d'entre-elles laissent... www.commentcamarche.net/faq/sujet-2666-windows-nettoyer-la-base-de-registre-avec-regcleaner
[Organisation] Créer une base de connaissancesLe but d'une base de connaissances est de modéliser et stocker de manière informatique un ensemble de connaissances, idées, concepts ou données et de permettre leur consultation/utilisation. Il existe plusieurs méthodes et logiciels différents pour... www.commentcamarche.net/faq/sujet-4855-organisation-creer-une-base-de-connaissances
Surfer anonymementRien de plus frustrant de savoir que lorsque l'on surfe sur Internet, l'ordinateur laisse des traces. En effet, lorsque l'on se connecte à un site, l'ordinateur est identifié par son adresse IP, stockée par le site distant et par tous les sites... www.commentcamarche.net/faq/sujet-5351-surfer-anonymement
(Excel) Conversion de date (Résolu)Bonjour Je suis en présence d'un fichier Excel comportant 5025 entrées dont une colonne date sous la forme "jj/mm/aaaa", je dois convertir ces dates en "aaaa/mm/jj" afin de rendre ce fichier utilisable pour la mise à jour d'une base donnée... www.commentcamarche.net/forum/affich-3140785-excel-conversion-de-date
C'est quoi Mysql? (Résolu)Bonjour, J'aimerrai bien connaitre est ce que Mysql est un logéciel ou un langage de base donnée comme sql? Merci. www.commentcamarche.net/forum/affich-3036555-c-est-quoi-mysql
Php chargement session sans formulaire (Résolu)Bonjour, En PHP j'utilise les sessions par la méthode POST pour récupérer les données d'un formulaire, dans ce cas tout fonctionne très bien. Mon problème est : Comment récupérer une variable provenant d'une base donnée dans une... www.commentcamarche.net/forum/affich-1444753-php-chargement-session-sans-formulaire
Télécharger Foobar 2000Foobar2000 est un lecteur audio avancé pour les plateformes Microsoft Windows. Son interface graphique est volontairement sobre, ce qui rend ce player léger et fonctionnel. Il consomme très peu de mémoire et de CPU. Foobar2000 supporte... www.commentcamarche.net/telecharger/telecharger-195-foobar-2000
Toutes les réponses pour « Incrémentation dans une base de donnée »