Fusion de lignes PhpSQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Fusion de lignes PhpSQL

Re: Fusion de lignes PhpSQL

par @rthur » 20 févr. 2016, 00:25

Modération :
Les "up" sont interdits sur PHPFrance.

Si tu n'as pas obtenu de réponse, c'est (au choix) :
- que ta question est mal formulée : reformule-la différemment ;
- que personne ne connaît la réponse ici : faire un "up" ne te donnera pas davantage de résultats ;
- que la réponse demandée exige un travail important que personne ne va faire à ta place ;
- que trop peu de temps s'est écoulé depuis ton précédent message pour qu'un membre ait pu y répondre.

Re: Fusion de lignes PhpSQL

par Nekk » 17 févr. 2016, 20:17

Code : Tout sélectionner

$table = $bdd->query("SELECT * FROM table_1 WHERE table_id = '".safe($table_id,'SQL')."'"); $table = $bdd->query("SELECT * FROM table_2 WHERE table_id = '".safe($table_id,'SQL')."'");
Comment transformer concrètement ces deux lignes en une seul ?

Re: Fusion de lignes PhpSQL

par Nekk » 16 févr. 2016, 15:00

Je crois que je me suis mal exprimé sur ce que je veux faire !

Voilà ce que j'essaie de coder :

Code : Tout sélectionner

<?php if(isset($_GET['id'])) { $badge_id = safe($_GET['id'],'SQL'); $badge = $bdd->query("SELECT * FROM retrophp_badges badge_id = '".safe($badge_id,'SQL')."'"); $badge = $bdd->query("SELECT * FROM retrophp_badges2 badge_id = '".safe($badge_id,'SQL')."'"); $shop = $badge->fetch(PDO::FETCH_ASSOC); if(Settings('Emulator') == "Azure") { $verif_badge = $bdd->query("SELECT * FROM users_badges WHERE badge_id = '".safe($shop['badge_id'],'SQL')."' AND user_id = ".safe($user['id'],'SQL').""); } else { $verif_badge = $bdd->query("SELECT * FROM user_badges WHERE badge_id = '".safe($shop['badge_id'],'SQL')."' AND user_id = ".safe($user['id'],'SQL').""); } $row = $verif_badge->rowCount(); if($row == 1) { $message = "<div class=\"message error\">Le badge demander figure déjà dans ton inventaire.</div>"; $message2 = "<div class=\"message error\">Le badge demander figure déjà dans ton inventaire.</div>"; } else { $do = safe($_GET['id'],'SQL'); if($do == $shop['badge_id']) { if($user['diamonds'] >= $shop['prix']) { if(Settings('Emulator') == "Azure") { $bdd->exec("INSERT INTO `users_badges` (`user_id`, `badge_id`) VALUES ('".safe($user['id'],'SQL')."', '".safe($shop['badge_id'],'SQL')."')"); } else { $bdd->exec("INSERT INTO `user_badges` (`user_id`, `badge_id`) VALUES ('".safe($user['id'],'SQL')."', '".safe($shop['badge_id'],'SQL')."')"); } $bdd->exec("UPDATE `users` SET `diamonds` = `diamonds` - '".safe($shop['prix'],'SQL')."' WHERE `id` = ".safe($user['id'],'SQL').""); $message = "<div class=\"message success\">Tu viens de recevoir ton badge! </div>"; $message2 = "<div class=\"message success\">Tu viens de recevoir ton badge! </div>"; } else { $message = "<div class=\"message error\">Tu n'as pas assez de diamants</div>"; $message2 = "<div class=\"message error\">Tu n'as pas assez de diamants</div>"; } } } } ?> <body> <div id="left-column" class="badgeshop"> <div id="shop" class="box"> <?php if(isset($message)) { echo $message; } ?> <div id="badge-list" class="habbo-scroll" style="overflow-y:scroll"> <?php $sql = $bdd->query("SELECT * FROM retrophp_badges"); while($b = $sql->fetch()) { ?> <span class="badge-item" onclick="window.location='<?php echo Settings('Url'); ?>/badgeshop/<?php echo $b['badge_id']; ?>#shop';"> <img src="<?php echo Settings('C_Images'); ?>/album1584/<?php echo $b['badge_id']; ?>.gif"> <div> <?php echo stripslashes($b['titre']); ?> </div> <span class="cost"> <?php echo $b['prix']; ?> Diamants <br> <i><?php echo stripslashes($b['description']); ?></i> </span> </span> <?php } ?> </div> </div></div> <div id="left-column" class="badgeshop"> <div id="shop" class="box"> <?php if(isset($message2)) { echo $message2; } ?> <div id="badge-list" class="habbo-scroll" style="overflow-y:scroll"> <?php $sql = $bdd->query("SELECT * FROM retrophp_badges2"); while($b = $sql->fetch()) { ?> <span class="badge-item" onclick="window.location='<?php echo Settings('Url'); ?>/badgeshop/<?php echo $b['badge_id']; ?>#shop';"> <img src="<?php echo Settings('C_Images'); ?>/album1584/<?php echo $b['badge_id']; ?>.gif"> <div> <?php echo stripslashes($b['titre']); ?> </div> <span class="cost"> <?php echo $b['prix']; ?> Diamants <br> <i><?php echo stripslashes($b['description']); ?></i> </span> </span> <?php } ?> </div> </div></div> </body>
En gros, j'essaie de faire 2 boutiques différentes sur 2 tables différentes dans la même page.
Au niveau de l'affichage c'est niquel, les 2 tables s'affichent en fonction du "SELECT"

Par contre, au niveau de l'achat, il n'y en à qu'une seule qui fonctionne
L'autre se contente juste d'afficher la table et l'achat ne donne rien.

Je pensais qu'il fallait fusionner les 2 lignes d'exec mais sans succés...

Re: Fusion de lignes PhpSQL

par Mazarini » 16 févr. 2016, 14:27

Par exemple :
$table = $bdd->query("SELECT * FROM table_1, table_2  WHERE table_1.table_id = table_2.table_id and table_1.table_id = '".safe($table_id,'SQL')."'")
Tu peux regarder également du coté de "left join" et autres join que je n'utilise que rarement (surement à tord).

Re: Fusion de lignes PhpSQL

par Nekk » 16 févr. 2016, 14:04

Bonjour !

Désolé, je viens de mettre à jour ;)

Re: [AIDE] Fusion de lignes PhpSQL

par @rthur » 16 févr. 2016, 11:45

Bonjour,

Merci de ne pas ajouter de tag [AIDE] dans les titres de tes sujets, ça n'apporte rien et nous savons déjà par ton message que tu as besoin d'aide.

Fusion de lignes PhpSQL

par Nekk » 16 févr. 2016, 11:41

Bonjour !

J'aimerais fusionner ces 2 lignes en une seul :)
Mais je ne connais pas la technique !

Code : Tout sélectionner

$table = $bdd->query("SELECT * FROM table_1 WHERE table_id = '".safe($table_id,'SQL')."'"); $table = $bdd->query("SELECT * FROM table_2 WHERE table_id = '".safe($table_id,'SQL')."'");
merci d'avance :)