• User Attivo

    Non riesco ad estrarre dati da doppia tabella

    Allora:
    Io ho due tabelle quasi uguali...

    immagini_Donne
    id id_personaggio categoria file_immagine

    video_donne
    id id_personaggio categoria file_antemprima file_video

    Il problema è che non riesco ad estrarli...mi stampa una sessantina di record (quando dovrebbero essere 9 x la tabella foto e 3 per quella video)
    Se vi puo'essere utile..mi stampa ripetutemente l' id 1,2,3 della tabella video...sempre quelle tre...

    $sql_materiale="SELECT * FROM immagini_donne,video_donne WHERE immagini_donne.id_vip='$_GET[id]' OR video_donne.id_vip='$_GET[id]' ";
    $result_materiale = mysql_query($sql_materiale) or die (mysql_error());

    <?

    while ($materiale=mysql_fetch_array($result_materiale) )
    {
    if ( $materiale[categoria]=="Foto%") { $categoria="immagini"; }
    elseif ( $materiale[categoria]=="Video%") { $categoria="video"; }
    echo "<tr>
    <td width="95" height="88">
    <div align="center"><font size="2" face="Verdana"><img src="$donne[categoria]/$cartella/$categoria/supermini/$materiale[immagine]$materiale[nome_foto]" width="54" height="58" border="0"></font></div></td>
    <td width="405"><div align="center">
    <table width="300" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td colspan="3"><font size="2" face="Verdana"><strong>Materiale</strong>:
    <a href="ffff"><font color="#000000">$materiale[categoria] $materiale[id]</font></a>
    </font>
    <div align="right"></div></td>
    </tr>
    <tr>
    <td colspan="3"><div align="center"><font size="2" face="Verdana"><img src="../images/linea_380.gif" width="300" height="2"></font></div></td>
    </tr>
    <tr>
    <td height="22" colspan="3" valign="top"><div align="center"><font size="2" face="Verdana">Voto
    4.99 | Visto 1250 | Commenti
    500</font></div></td>
    </tr>
    <tr>
    <td width="138"><font size="2" face="Verdana">27/11/2007<br>
    </font></td>
    <td width="1"> </td>
    <td width="161" align="right" valign="bottom"><font size="2" face="Verdana"><strong>Segnalata
    da</strong> Gallo</font></td>
    </tr>
    <tr>
    <td height="22" colspan="3">
    <div align="center"><font size="2" face="Verdana"><strong><a href="../foto_ok.html"><font color="#FF0000">Visualizza
    Video</font></a></strong></font></div></td>
    </tr>
    </table>
    </div></td>
    </tr>
    ";
    } ?>


  • Super User

    Prova a modificare la query cosi:
    $sql_materiale="SELECT DISTINCT(immagini_donne.id), * FROM immagini_donne,video_donne WHERE immagini_donne.id_vip='$_GET[id]' OR video_donne.id_vip='$_GET[id]' ";


  • User Attivo

    @ayrton2001 said:

    Prova a modificare la query cosi:
    $sql_materiale="SELECT DISTINCT(immagini_donne.id), * FROM immagini_donne,video_donne WHERE immagini_donne.id_vip='$_GET[id]' OR video_donne.id_vip='$_GET[id]' ";

    non va bene
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM immagini_donne,video_donne WHERE immagini_donne.id_vip='7' OR video_donne' at line 1


  • User Attivo

    Mi spiego meglio:
    Allora
    Mettiamo io ho queste due tabella:
    Articoli
    ID TITOLO TESTO DATA
    REcensioni
    ID TITOLO TESTO DATA
    Allora... dovrei fare due query:
    SELECT titolo FROM articoli
    e l' altra
    SELECT titolo FROM news
    Dopo di che, stampare i record di entrambe le tabelle in ordine di data,il problema è unire i record, non voglio stampare prima i record della tabella articoli, e poi quella delle news. devono essere "mischiati" in base alla data di inserimento...ma come?


  • Moderatore

    [PHP]SELECT titolo, data FROM Articoli, News ORDER BY data[/PHP]

    Occhio a maiuscole, minuscole e a nomi esatti di tabelle e campi. Se sgarri di un pelino non ti funziona più niente. :arrabbiato:


  • User Attivo

    @Shad said:

    [php]SELECT titolo, data FROM Articoli, News ORDER BY data[/php]

    Occhio a maiuscole, minuscole e a nomi esatti di tabelle e campi. Se sgarri di un pelino non ti funziona più niente. :arrabbiato:

    cosi non riesco, perchè le due tabelle non sono proprio identiche.

    Son riuscito cosi:
    SELECT id,categoria FROM immagini_donne WHERE id_vip='$_GET[id]' UNION ALL SELECT id,categoria FROM video_donne WHERE id_vip='$_GET[id]'

    Il problema è questo adesso... ho provato a mettere ORDER BY data... ma mi da questo errore: come faccio?
    Incorrect usage of UNION and ORDER BY


  • Moderatore

    Guarda qui: http://www.vbsimple.net/index.htm?/database/db_08_01.htm
    Credo che la Full Outer Join faccia al caso tuo 😉