+ Rispondi alla Discussione
Risultati da 1 a 11 di 11

Integrita' referenziale

Ultimo Messaggio di Alex_2019 il:
  1. #1
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    85

    Integrita' referenziale

    Ho bisogno del vostro aiuto,

    ho queste tabelle


    actor

    Colonna Tipo Null Predefinito Commenti
    actor_id (Primaria) smallint(5) No
    nome varchar(45) No



    gallery

    Colonna Tipo Null Predefinito Commenti
    gallery_id (Primaria) int(11) No
    gallery varchar(225) No

    in Designer (phpMyAdmin) vorrei relazionare actor_id con gallery_id per creare per ogni attore una gallery,
    il problema che quando cerco di collegarli mi visualizza questo errore

    Codice:
    mysql impossibile aggiungere il vincolo di integrita' referenziale (foreign key constraint)


    nel database actor e' relazionato con un'altra tabella

    film_actor

    Colonna Tipo Null Predefinito Commenti
    actor_id (Primaria) smallint(5) No
    film_id (Primaria) smallint(5) No

    Indici

    Chiave Tipo Unica Compresso Colonna Cardinalità Codifica caratteri Null Commenti
    PRIMARY BTREE No actor_id 64 A No
    film_id 128 A No
    idx_fk_film_id BTREE No No film_id 128 A No

  2. #2
    Utente Premium
    Data Registrazione
    Nov 2018
    Località
    Ragusa
    Messaggi
    171
    Aggiungi flaviors200 su Google+ Aggiungi flaviors200 su Facebook Aggiungi flaviors200 su Linkedin
    Ciao,

    se vuoi aggiungere una chiave esterna devi prima creare un campo a cui associarla.

    Es. se vuoi creare una o più gallery per ogni attore, hai uno schema del genere

    Tabella actor
    actor_id, name

    Tabella gallery
    gallery_id, actor_id_fk, gallery

    Dove actor_id_fk è la chiave esterna collegata a actor_id della tabella actor.

  3. #3
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    85
    Ciao flaviors200,
    grazie della risposta

    come faccio a creare actor_id_fk?
    con una query o da crea campo, se e' la seconda che tipo, int(11)?
    per la relazione da gallery actor_id_fk - actor_id o viceversa?

  4. #4
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    85
    sto provando, ma senza successo,

    ancora errore



    Ultima modifica di Alex_2019; 25-07-19 alle 16:22

  5. #5
    Utente Premium
    Data Registrazione
    Nov 2018
    Località
    Ragusa
    Messaggi
    171
    Aggiungi flaviors200 su Google+ Aggiungi flaviors200 su Facebook Aggiungi flaviors200 su Linkedin
    Scusa ma quando crei una chiave esterna, questa deve uguale al campo a cui è legata.

    Se definisci il campo actor_id come smallint(5) unsigned, la chiave esterna actor_id_fk deve essere smallint(5) unsigned

  6. #6
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    85
    caspita, hai ragione, nemmeno mi ero accorto

    la relazione mi sembra corretta



    qual'e' la query per ricuperare le foto nella pagina attore?
    Ultima modifica di Alex_2019; 25-07-19 alle 20:12

  7. #7
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    85
    sono riuscito a creare la query, ma per qualcosa che mi sfugge non riesco a visualizzare la foto nella tab "Gallery", solo l'icona vuota,

    ho deciso di inserire le foto in una cartella con il nome dell'attore, per facilitare la ricerca,

    l'immagine e' posizionata nella cartella image_upload/actor/uploads/Ginger Rogers/ginger_rogers.jpg

    la path mi restituisce pero' http://localhost/Cinema/image_upload/actor/uploads/Ginger Rogers/

    se qualcuno gentilmente mi aiuta

    Codice PHP:
    <?php

    require_once("connetti.php"); 

    $actor_id $_GET["id"];
    $sql="select photo from gallery where actor_id_fk=".$_GET['id']; 
    $result=mysql_query($sql); $riga=mysql_fetch_row($result); 
    $filename=basename($riga[0]);        

    ?>
    Codice PHP:
    <div role="tabpanel" class="tab-pane"id="gallery"><p class="bioheading">Gallery</p><div class="biodata">
    <img src="image_upload/actor/uploads/<?php echo $row  ['nome'] .$row  ['photo'];?>"></div></div>

    questi sono i campi

    Ultima modifica di Alex_2019; 25-07-19 alle 22:03

  8. #8
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    85
    ho provato a strutturare un'altra query con il metodo di Stefano, risultato: un disastro

    mi restituisce errore

    Codice:
    mySQL error: Not unique table/alias: 'gallery'
    Codice PHP:
    <?php             

     
    require_once("connetti.php");

    $gallery_id $_GET['id']; 

    $query "SELECT 

    gallery.actor_id_fk as actor_id_fk,
    gallery.photo as photo

    FROM gallery INNER JOIN gallery ON gallery.actor_id_fk = gallery.actory_id_fk WHERE gallery.actor_id = " 
    $gallery_id;


    $result mysql_query$query );
    if (!
    $result)
     die(
    "mySQL error: "mysql_error());  
    while( 
    $row mysql_fetch_object$result ) ) : ?>                                
                
       <div role="tabpanel" class="tab-pane"id="gallery"><p class="bioheading">Gallery</p><div class="biodata">
    <img src="image_upload/actor/uploads/<?php echo $row->photo?>" width="285px" height="400px" style="border:6px solid #333333;"></div></div>
    <? endwhile; ?>
    questa e' lo schema aggiornato


  9. #9
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    85
    aggiornamento:
    questa funziona, ma...

    1) visualizza solo una foto dell'id associato (in realta' ci sono altre)

    2) nel campo photo devo inserire la path e il nome della foto, /Ginger Rogers/ginger_rogers.jpg

    vorrei che prelevasse il nome dall'id, ma non riesco a trovare la soluzione

    cosi:

    image_upload/actor/uploads/Ginger Rogers/ginger_rogers.jpg



    Codice PHP:
    <?php 
     
     
    require_once("connetti.php"); 

    $gallery_id $_GET["id"];
    $query mysql_query ("select photo from gallery where actor_id_fk = {$gallery_id}");

    while(
    $row=mysql_fetch_array($query)){ 
     
           
    ?>

    <div role="tabpanel" class="tab-pane"id="gallery"><p class="bioheading">Gallery</p><div class="biodata">"<img src="image_upload/actor/uploads/<?php echo $row  ['photo'];?>"></div></div>
     
    <?php
                    
    }
                
    ?>

  10. #10
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    85
    ho risolto parzialmente, con una nuova query

    Codice PHP:
    <?php 

     
    require_once("connetti.php"); 

    $gallery_id $_GET["id"];
    $query mysql_query ("select photo from gallery where actor_id_fk = {$gallery_id}");

    while(
    $row=mysql_fetch_array($query)){ 
     
           
    ?>


    Codice PHP:
    <div role="tabpanel" class="tab-pane"id="gallery"><div class="biodata">
    <?php echo '<img src="image_upload/actor/uploads/' $row['photo'] . '" alt="" height="180" width="150"'?></div></div>
     <a href="image_upload/actor/uploads/<?php echo $row['photo']; ?>" onclick=" return iPop(this.href)">Enlarge Photo </a>

    <!-- esempio 2, con popup e javascript iPop -->

    <script src="js/ipop.js" type="text/javascript"></script>

    <!-- esempio 2, con popup e javascript iPop --> 

    <?php
                    
    }
                
    ?>

    resta il problema delle directory e la posizione delle photo, io li vorrei allineate con il testo sotto, qualcuno esperto mi dice come fare?
    ho provato vari tentativi, ma senza risultati, il motivo e che le foto sono visibili nella tab,



    ps: domani vado via per le vacanze, poi non potro' rispondere per un mese circa
    Ultima modifica di Alex_2019; 26-07-19 alle 19:49

  11. #11
    User L'avatar di Alex_2019
    Data Registrazione
    Jul 2019
    Località
    Hell
    Messaggi
    85
    risolto

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.