Plusieur requete en un formulaire

Fermé
NightwishQc Messages postés 5 Date d'inscription vendredi 23 mars 2012 Statut Membre Dernière intervention 19 novembre 2013 - 23 mars 2012 à 19:09
NightwishQc Messages postés 5 Date d'inscription vendredi 23 mars 2012 Statut Membre Dernière intervention 19 novembre 2013 - 24 mars 2012 à 07:40
Bonjour,

J'aurais une question simple, mais dificile, voila, je m'explique.

Depuis 2 ans j'ai commencer a coder du HTML/CSS, et maintenant depuils 1 ans environt j'ai commencer avec le PHP et MySQL qui sont assez complexe quand on n'a juste la formation de éléphorm. Ma question est de savoir lorsque l'on envoi un formulaire, j'ai fait avec les boucles IF les vérifications de donné etc.. À la fin je fait quelque requete pour que les reponses au formulaire sois entre dans la base de donnne SQL. Mais dans ces requete, j'ai deux table differente, donc une que je creai un INSERT INTO, et l'autre un UPDATE.

Partie du code en question :

if ($valid)
{
$replacementChar1 = array('lyric','music');
$replacedChar1 = array('','*');
$editedtitle = "".$titre."".$format."";
$newtitle = str_replace($replacementChar1, $replacedChar1, $editedtitle);

$resetquery = $bdd->query('ALTER TABLE musique AUTO_INCREMENT = 1');
$savesong = $bdd->query('INSERT INTO musique (titre,album_id, singer_id, genre, embed, categorie_perma, user, date) VALUES ("'.$newtitle.'", "'.$_GET['albumid'].'", "'.$_GET['singerid'].'", "'.$genre.'", "'.$embed.'", "'.$format.'", "'.$_SESSION['loggeduser_username'].'", "'.$date.'")');

$addJts = $bdd->query('UPDATE users SET coins=coins+0.01 WHERE username="Nightwish"');

$done = 'Musique ajouté à succès, écouter <a href="watch.php?media='.$titre.'">'.$newtitle.'</a> maintenant.';
}

$resetquery fonctionne impecablement, $savemusic aussi mais $addJts non, je me demande si possible de le faire, je croit que cela ne fonctionne pas car il update pas sur la même table.

Alors ma question est-ce possible de faire quelque chose pour faire des requete sur plusieur table ?

Pour infos, j'utilise pour les test le server wamp de Windows

2 réponses

Bonjour

Il n'y a aucune raison pour que tu ne puisses pas faire plusieurs requêtes sur plusieurs tables, le problème ne vient pas de là.

Ta requête addJts a l'air tout à fait correcte.
As-tu bien un champ username qui vaut Nightwish (et non pas NightwishQc par exemple) ?
Le champ coin n'aurait-il pas un type INTEGER, auquel cas ajouter 0.01 ne lui fait aucun effet ?

Au passage, je me demande comment ta requête $savesong peut marcher alors que tu remets l'auto_increment à 1 à chaque fois.
1
NightwishQc Messages postés 5 Date d'inscription vendredi 23 mars 2012 Statut Membre Dernière intervention 19 novembre 2013
24 mars 2012 à 07:29
Pour répondre a tes question, dans la base de donné il y a bien Nightwish, j'utilise la valeur $_SESSION pour prendre l'info du nom d'utilisateur dans lequel il peux se connecter. Pour le champ coin, j'ai essayer en requete SQL seul sur phpMyAdmin en premier, je ne savais pas comment utiliser un update incrementant selon la valeur qu'on lui donnais, moi étant 0.01 il me fallais le mettre en float ou double. La requete $addJts marche super bien si je la fait dans phpMyAdmin, mais aussitôt que je l'ajoute avec l'autre requete $savemusic, rien ne fonctionne. Pour alter auto increment = 1 c'étais parce que je croyais qui remmettais les valeurs a leurs place iniative car lorsqu'on suprime une valeur de la table, cela provoque des saut de chiffre, example 1, 2 , 3 , 7, 10 .... je pensais qui les remettais en ordre.

Voila que j'ai maintenant suprimer la ligne de la requete alter pour auto incrementer, mais $addJts refuse encore de fonctionner.

if ($valid)
{
$replacementChar1 = array('lyric','music');
$replacedChar1 = array('','*');
$editedtitle = "".$titre."".$format."";
$newtitle = str_replace($replacementChar1, $replacedChar1, $editedtitle);

$savesong = $bdd->query('INSERT INTO musique (titre,album_id, singer_id, genre, embed, categorie_perma, user, date) VALUES ("'.$newtitle.'", "'.$_GET['albumid'].'", "'.$_GET['singerid'].'", "'.$genre.'", "'.$embed.'", "'.$format.'", "'.$_SESSION['loggeduser_username'].'", "'.$date.'")');

$addJts = $bdd->query('UPDATE users SET coins=coins+0.01 WHERE username=""'.$_SESSION['loggeduser_username'].'""');

$done = 'Musique ajouté à succès, écouter <a href="watch.php?media='.$titre.'">'.$newtitle.'</a> maintenant.';
}

Pour infos, c'est pas la seul fois, j'ai déja voulu faire que lorsqu'un membre s'incrit, il inscrvais les informations dans table users, et je voulais qui ajoute aussi queques de ces info dans une autre table, et bien evidament l'un deux uniquement fonctionnais.
0
NightwishQc Messages postés 5 Date d'inscription vendredi 23 mars 2012 Statut Membre Dernière intervention 19 novembre 2013
24 mars 2012 à 07:40
Finalement j'ai trouver mon erreur, pour commencer merci <<le père>> pour ta reponse, et de plus mon username=""'.$_SESSION['loggeduser_username'].'"" avais " de trop fallais username="'.$_SESSION['loggeduser_username'].'"

Merci pour votre aide.
0