Résolu [PHP] Combiner 2 requêtes

Solutions (15)
Tags :
  • Éditeur de texte
  • Php
  • Logiciels
  • Programmation
, Administrateur |
Bonjour à tous,

Voici mon soucis: je cherche à effectuer 2 suppressions simultanées mais dans 2 tables différentes sauf que je ne sais pas comment procéder.

J'ai une table "news" contenant un champ "id". J'ai une seconde table "news_commentaires" contenant un champ "id_logiciel". Donc "id_logiciel" = "id".
Je cherche à faire les requêtes suivantes en une seule:
  1. mysql_query("DELETE FROM news WHERE id='$id'");
  2. mysql_query("DELETE FROM news_commentaires WHERE id_logiciel='$id'");

Merci d'avance pour votre aide ;) 
Contenus similaires
Meilleure solution
partage
|
Parse error: syntax error, unexpected T_STRING

> je te laisse rechercher sur google, comme ca tu verras à quoi est due cette erreur.
de plus, je te conseil d'installer un editeur de texte avec colorisation syntaxique, tu aura beaucoup plus de faciliter a concaténer tes strings (chaine) avec par exemple, que j'utilise : notepad++ (gratuit et supporte pas mal de langage avec les fonctions pré-enregistré).
  • Commenter cette solution |
Score
0
òh
òi
, Administrateur |
Ah oui, c'est un peu plus clair :) 
  • Commenter cette réponse |
Score
0
òh
òi
, Ex-AdMiN |
Voici un script qui explique la migration

J'ai un texte plus détaillé en cours de rédaction
  • Commenter cette réponse |
Score
0
òh
òi
, Administrateur |
Ah ça peut être utile...

Mais pour l'instant, ça fonctionne comme ça donc je ne vais pas trop toucher. Par contre, je garde ton idée pour plus tard quand j'aurais plus de facilités avec MySQL. Merci en tous cas ;) 
  • Commenter cette réponse |
Score
0
òh
òi
, Programmation (collector) |
heuu oui simple ! ! !
tu va dans ton phpmyadmin , et quand tu cree la base ( tu peut le changer meme apres l'avoir cree ;)  )

tu va l'onglet operation et tu change la ligne Moteur de stockage qui es par defaut MyISAM en innobd

ensuite , tu passe le champ de id de l'article en primair sur la base des article , et sur la base des commentaire , tu fais aussi passer le champ avec l'id de l'article au quel sont lier les commentaire en primaire , puis tu a un lien sous ta base de le tableau de t'es base de donner qui es aparu : Gestion des relation !

ta plus cas metre la relation et ON DELETE -- CASCADE ON UPDATE -- CASCADE

et lorsque tu va suprimer un article c'est la base de donner qui va automatiquement surprimer les commentaire associer , cela soulageras ta BDD
  • Commenter cette réponse |
Score
0
òh
òi
, Administrateur |
andrelec1 a dit :
hey ... entait ya plus simple ! ! !
change le moteur de t'es base de donner , pour mettre innobd , puis tu t'es clef primaire et tu les lie , comme sa si tu supprime un article c'est mysql qui va supprimer les commentaire lier a cette article tous seul ^^

Ah parce que tu appelles ça "simple" ? Je n'ai rien compris :D 

Mais le soucis est résolu, je m'en veux vraiment de te faire perdre du temps Okinou parce que j'aurais très bien pu me rendre compte tout seul qu'il manquait un " ; " :/ 

Merci de m'avoir ouvert les yeux en tous cas ;) 
  • Commenter cette réponse |
Score
0
òh
òi
, Programmation (collector) |
hey ... entait ya plus simple ! ! !
change le moteur de t'es base de donner , pour mettre innobd , puis tu t'es clef primaire et tu les lie , comme sa si tu supprime un article c'est mysql qui va supprimer les commentaire lier a cette article tous seul ^^
  • Commenter cette réponse |
Score
0
òh
òi
, Administrateur |
C'est corrigé mais toujours la même erreur... :/ 
  • Commenter cette réponse |
Score
0
òh
òi
|
if (isset($_GET['mode']) AND $_GET['mode'] == 'suppression')

et pas besoin de faire un isset si tu compare la variable avec une chaine bien défini, donc au final

if ($_GET['mode'] == 'suppression')

suffit.
  • Commenter cette réponse |
Score
0
òh
òi
, Administrateur |
Les voici:
  1. // S'il sagit d'une suppression
  2. if (isset($_GET['mode']) AND $_GET['mode'] == suppression)
  3. {
  4. $id = $_GET['id']
  5.  
  6. mysql_query("DELETE FROM news WHERE id='".$id."'" );
  7. mysql_query("DELETE FROM news_commentaires WHERE id_logiciel='".$id."'" );
  8. ?>
  9. <p align="center">L'article a été supprimé avec succès !</p>
  10. <p align="center"><a href="index.php">Retourner aux News</a>.</p>
  11. <?php
  • Commenter cette réponse |
Score
0
òh
òi
|
met les ligne de 7 a 18.
  • Commenter cette réponse |
Score
0
òh
òi
, Administrateur |
J'ai toujours la même erreur, même en copiant/collant les 2 requêtes modifiées que tu viens de me donner :/ 
  • Commenter cette réponse |
Score
0
òh
òi
|
1. mysql_query("DELETE FROM news WHERE id='".$id."'" );
2. mysql_query("DELETE FROM news_commentaires WHERE id_logiciel='".$id."'" );

donc enfait rien a voir avec une combinaison, tu avais juste une erreur de syntaxe :) 
  • Commenter cette réponse |
Score
0
òh
òi
, Administrateur |
Eh bien PHP me retourne une erreur:
Citation :
Parse error: syntax error, unexpected T_STRING in C:\Inetpub\vhosts\bazar-info.net\httpdocs\Telechargements\logiciel_ajoute.php on line 13

Lignes 13 et 14:
  1. mysql_query("DELETE FROM news WHERE id='$id'");
  2. mysql_query("DELETE FROM news_commentaires WHERE id_logiciel='$id'");
  • Commenter cette réponse |
Score
0
òh
òi
|
Pourquoi cherches tu à les combiner ?
C'est normal d'avoir 2 requêtes à la suite vu que tu fais 2 opérations sur 2 table distinctes, rien d'anormal.
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS