Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1

    INNER JOIN 3 tabelle

    Salve a tutti,

    ho un problema con Inner Join e tre tabelle.

    Ho tre tabelle:

    democat (categoria)
    demosubcat (sottocategoria)
    demoarticoli (articoli)

    tutte e tre le tabelle hanno in comune il campo idcat.

    la mia query che recupera correttamente tramite $_GET il valore $id :

    Codice PHP:

    $query
    ="DELETE democat.*, demosubcat.*, demoarticoli.* FROM 
      democat as t1 
      INNER JOIN  demosubcat as t2 on t1.idcat = t2.idcat 
      INNER JOIN  demoarticoli as t3 on t1.idcat = t3.idcat 
        WHERE  t1.idcat='
    $id'"
    Non funziona. Dove sto sbagliando?

    Grazie mille.

  2. #2
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    Ciao,

    prova prima di tutto a togliere
    democat.*, demosubcat.*, demoarticoli.*
    dopo il delete .

    il delete non ha bisogno di nessun parametro

  3. #3
    Ciao,

    per le domande riguardanti esclusivamente i database e/o l'sql c'č l'apposita sezione Database

    Sposto li
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  4. #4
    eliminati i parametri ma nessuna buona notizia. Non riesco ad eliminare nč categoria nč tanto meno quelle associate...

  5. #5
    Sto provando anche a eliminare sottocategoria e articoli abbinati con il seguente metodo:

    Codice PHP:
    $query="DELETE FROM demosubcat as t1 
      INNER JOIN  demoarticoli as t2 on t1.subcat = t2.subcat 
          WHERE  t1.subcat='
    $id'"
    anche in questo caso, nonostante sia tutto corretto nella fase di inserimento delle relazioni tra le tabelle, l'operazione di DELETE non viene eseguita.

    Qualche soluzione?

  6. #6
    Visto che non č specificato il database in question č Mysql...

  7. #7

    Mysql inner join

    Con la seguente query:

    Codice PHP:

    $query
    ="DELETE FROM democat, demosubcat, demoarticoli USING democat, demosubcat, demoarticoli WHERE democat.idcat=demosubcat.idcat AND democat.idcat=demoarticoli.idcat AND democat.idcat='$id'"
    riesco ad eliminare categoria, sottocategoria e articoli correlati. Ma se non ho articoli caricati, la query non funziona, ovviamente. Quale soluzione posso adottare per risolvere il problema?

    Grazie.

  8. #8
    ...ma visto che le tre tabelle contengono tutte il campo idcat, e ne conosci il valore, non puoi eseguire tre query di cancellazione distinte?

    $query="DELETE FROM democat WHERE idcat='$id'";
    $query="DELETE FROM demosubcat WHERE idcat='$id'";
    $query="DELETE FROM demoarticoli WHERE idcat='$id'";

  9. #9

  10. #10
    Sto provando cosė:

    Codice PHP:

    <?php
       
    include ("config.inc.php");
       include (
    "connect.php");
      
    // recupero valore da id pagina
      
    $id $_GET['id'];
      
      
    //inserimento dati su tabella
    //$query="DELETE FROM democat WHERE idcat='$id'";
    /*$query="DELETE democat.*, demosubcat.*, demoarticoli.*
    FROM democat INNER JOIN demosubcat, demoarticoli
    ON democat.idcat = demosubcat.idcat AND democat.idcat = demoarticoli.idcat
    WHERE democat.idcat ='$id'";*/
    $query1="SELECT COUNT(*) FROM demosubcat";

    $result1 mysql_query($query1,$db);

    $righe mysql_num_rows($result1);

    if (
    $righe == ) {

    $query2="DELETE FROM democat WHERE idcat='$id'";

    }
    $query2="SELECT COUNT(*) FROM demoarticoli";

    $result2 mysql_query($query2,$db);

    $righe2 mysql_num_rows($result2);

    if (
    $righe2 == 0) {

    $query3="DELETE FROM democat, demosubcat USING democat, demosubcat WHERE democat.idcat=demosubcat.idcat AND democat.idcat='$id'"

    }else{



    $query4="DELETE FROM democat, demosubcat, demoarticoli USING democat, demosubcat, demoarticoli WHERE democat.idcat=demosubcat.idcat AND democat.idcat=demoarticoli.idcat AND democat.idcat='$id'"


    /*$query ="DELETE FROM demosubcat, demoarticoli USING demosubcat, demoarticoli WHERE demosubcat.subcat=demoarticoli.subcat AND demosubcat.subcat='$id'";*/

    $result3 mysql_query($query4,$db);

    if(
    $result3) {
    echo 
    '<script>alert("Categoria eliminata.");
                  location="eliminacategorie.php";    
                  </script>'
    ;


    }else{
    echo 
    "categoria non eliminata";


    }

    }
    }

    ?>
    ma non ottengo risultati...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.