• User

    il risultato dovrebbe essere:

    13 tavolara_personaggi-vari_40-pupazzi_colezione-tilo... 8
    20 0000000903-piatto.jpg 9

    aspettiamo il responso.... sempre se arriva...


  • User Attivo

    Mamma mia, cheddire... grazie 1000 per le numerose risposte; non credevo di riceverne così tante. Grazie davvero! Complimenti davvero per il forum, è un qualcosa di veramente grande e importante.
    Scusate se non sono tempestivo nelle risposte, è che in questo periodo non ho tempo, tra lavoro, tra un po' mi sposo :D, casa ed altri impegni veramente faccio fatica a rispondere;

    cmq: forse sono stato un po' frettoloso nella richiesta; in verità ho bisogno di qualcosa di più complesso, vediamo se riesco a spiegarmi:

    ho 2 tabelle:

    ** ARTICOLI**

    [TABLE="class: grid"]

    [TD]**id
    **[/TD]
    [TD]**categoria_id
    **[/TD]
    [TD]**title
    **[/TD]
    [TD]**description
    **[/TD]
    [TD]**keywords
    **[/TD]
    [TD]**data
    **[/TD]
    [TD]**h1
    **[/TD]
    [TD]**h2
    **[/TD]
    [TD]**testo
    **[/TD]
    [TD]**visibile
    **[/TD]
    [/TR]

    [TD]1
    [/TD]
    [TD]1
    [/TD]
    [TD]title 1
    [/TD]
    [TD]description 1
    [/TD]
    [TD]keywords
    [/TD]
    [TD]17 Gennaio 2015
    [/TD]
    [TD]Titolo 1
    [/TD]
    [TD]Sottotitolo 1
    [/TD]
    [TD]Testo 1
    [/TD]
    [TD]si
    [/TD]
    [/TR]

    [TD]2
    [/TD]
    [TD]5
    [/TD]
    [TD]title 2
    [/TD]
    [TD]description 2
    [/TD]
    [TD]keywords
    [/TD]
    [TD]16 Gennaio 2015
    [/TD]
    [TD]Titolo 2
    [/TD]
    [TD]Sottotitolo 2
    [/TD]
    [TD]Testo 2
    [/TD]
    [TD]no
    [/TD]
    [/TR]

    [TD]3
    [/TD]
    [TD]8
    [/TD]
    [TD]title 3
    [/TD]
    [TD]description 3
    [/TD]
    [TD]keywords[/TD]
    [TD]15 Gennaio 2015
    [/TD]
    [TD]Titolo 3
    [/TD]
    [TD]Sottotitolo 3
    [/TD]
    [TD]Testo 3
    [/TD]
    [TD]si
    [/TD]
    [/TR]

    [TD]4
    [/TD]
    [TD]6
    [/TD]
    [TD]title 4
    [/TD]
    [TD]description 4
    [/TD]
    [TD]keywords
    [/TD]
    [TD]14 Gennaio 2015
    [/TD]
    [TD]Titolo 4
    [/TD]
    [TD]Sottotitolo 4
    [/TD]
    [TD]Testo 4
    [/TD]
    [TD]si
    [/TD]
    [/TR]

    [TD]5
    [/TD]
    [TD]4
    [/TD]
    [TD]title 5
    [/TD]
    [TD]description 5
    [/TD]
    [TD]keywords
    [/TD]
    [TD]13 Gennaio 2015
    [/TD]
    [TD]Titolo 5
    [/TD]
    [TD]Sottotitolo 5
    [/TD]
    [TD]Testo 5
    [/TD]
    [TD]si
    [/TD]
    [/TR]

    [TD]6
    [/TD]
    [TD]1
    [/TD]
    [TD]title 6
    [/TD]
    [TD]description 6
    [/TD]
    [TD]keywords
    [/TD]
    [TD]12 Gennaio 2015
    [/TD]
    [TD]Titolo 6
    [/TD]
    [TD]Sottotitolo 6
    [/TD]
    [TD]Testo 6
    [/TD]
    [TD]no
    [/TD]
    [/TR]

    [TD]7
    [/TD]
    [TD]2
    [/TD]
    [TD]title 7
    [/TD]
    [TD]description 7
    [/TD]
    [TD]keywords
    [/TD]
    [TD]11 Gennaio 2015
    [/TD]
    [TD]Titolo 7
    [/TD]
    [TD]Sottotitolo 7
    [/TD]
    [TD]Testo 7
    [/TD]
    [TD]si
    [/TD]
    [/TR]

    [TD]8
    [/TD]
    [TD]3
    [/TD]
    [TD]title 8
    [/TD]
    [TD]description 8
    [/TD]
    [TD]keywords
    [/TD]
    [TD]10 Gennaio 2015
    [/TD]
    [TD]Titolo 8
    [/TD]
    [TD]Sottotitolo 8
    [/TD]
    [TD]Testo 8
    [/TD]
    [TD]no
    [/TD]
    [/TR]

    [TD]9
    [/TD]
    [TD]2
    [/TD]
    [TD]title 9
    [/TD]
    [TD]description 9
    [/TD]
    [TD]keywords
    [/TD]
    [TD]9 Gennaio 2015
    [/TD]
    [TD]Titolo 9
    [/TD]
    [TD]Sottotitolo 9
    [/TD]
    [TD]Testo 9
    [/TD]
    [TD]si
    [/TD]
    [/TR]

    [TD]10
    [/TD]
    [TD]4
    [/TD]
    [TD]title 10
    [/TD]
    [TD]description 10
    [/TD]
    [TD]keywords
    [/TD]
    [TD]8 Gennaio 2015
    [/TD]
    [TD]Titolo 10
    [/TD]
    [TD]Sottotitolo 10
    [/TD]
    [TD]Testo 10
    [/TD]
    [TD]si
    [/TD]
    [/TR]
    [/TABLE]

    FOTO

    [TABLE="class: grid"]

    [TD]**id
    **[/TD]
    [TD]**foto
    **[/TD]
    [TD]**id_articolo
    **[/TD]
    [/TR]

    [TD]1
    [/TD]
    [TD]foto1.jpg
    [/TD]
    [TD]1
    [/TD]
    [/TR]

    [TD]2
    [/TD]
    [TD]foto2.jpg
    [/TD]
    [TD]5
    [/TD]
    [/TR]

    [TD]3
    [/TD]
    [TD]foto3.jpg
    [/TD]
    [TD]5
    [/TD]
    [/TR]

    [TD]4
    [/TD]
    [TD]foto4.jpg
    [/TD]
    [TD]7
    [/TD]
    [/TR]

    [TD]5
    [/TD]
    [TD]foto5.jpg
    [/TD]
    [TD]10
    [/TD]
    [/TR]

    [TD]6
    [/TD]
    [TD]foto6.jpg
    [/TD]
    [TD]1
    [/TD]
    [/TR]

    [TD]7
    [/TD]
    [TD]foto7.jpg
    [/TD]
    [TD]4
    [/TD]
    [/TR]

    [TD]8
    [/TD]
    [TD]foto8.jpg
    [/TD]
    [TD]7
    [/TD]
    [/TR]

    [TD]9
    [/TD]
    [TD]foto9.jpg
    [/TD]
    [TD]4
    [/TD]
    [/TR]

    [TD]10
    [/TD]
    [TD]foto10.jpg
    [/TD]
    [TD]1
    [/TD]
    [/TR]

    [TD]11
    [/TD]
    [TD]foto11.jpg
    [/TD]
    [TD]4
    [/TD]
    [/TR]

    [TD]12
    [/TD]
    [TD]foto12.jpg
    [/TD]
    [TD]5
    [/TD]
    [/TR]

    [TD]13
    [/TD]
    [TD]foto13.jpg
    [/TD]
    [TD]7
    [/TD]
    [/TR]

    [TD]14
    [/TD]
    [TD]foto14.jpg
    [/TD]
    [TD]4
    [/TD]
    [/TR]

    [TD]15
    [/TD]
    [TD]foto15.jpg
    [/TD]
    [TD]3
    [/TD]
    [/TR]

    [TD]16
    [/TD]
    [TD]foto16.jpg
    [/TD]
    [TD]2
    [/TD]
    [/TR]

    [TD]17
    [/TD]
    [TD]foto17.jpg
    [/TD]
    [TD]3
    [/TD]
    [/TR]

    [TD]18
    [/TD]
    [TD]foto18.jpg
    [/TD]
    [TD]2
    [/TD]
    [/TR]

    [TD]19
    [/TD]
    [TD]foto19.jpg
    [/TD]
    [TD]6
    [/TD]
    [/TR]

    [TD]20
    [/TD]
    [TD]foto20.jpg
    [/TD]
    [TD]3
    [/TD]
    [/TR]

    [TD]21
    [/TD]
    [TD]foto21.jpg
    [/TD]
    [TD]2
    [/TD]
    [/TR]

    [TD]22
    [/TD]
    [TD]foto22.jpg
    [/TD]
    [TD]8
    [/TD]
    [/TR]

    [TD]23
    [/TD]
    [TD]foto23.jpg
    [/TD]
    [TD]9
    [/TD]
    [/TR]

    [TD]24
    [/TD]
    [TD]foto24.jpg
    [/TD]
    [TD]8
    [/TD]
    [/TR]

    [TD]25
    [/TD]
    [TD]foto25.jpg
    [/TD]
    [TD]6
    [/TD]
    [/TR]

    [TD]26
    [/TD]
    [TD]foto26.jpg
    [/TD]
    [TD]9
    [/TD]
    [/TR]

    [TD]27
    [/TD]
    [TD]foto27.jpg
    [/TD]
    [TD]8
    [/TD]
    [/TR]

    [TD]28
    [/TD]
    [TD]foto28.jpg
    [/TD]
    [TD]10
    [/TD]
    [/TR]

    [TD]29
    [/TD]
    [TD]foto29.jpg
    [/TD]
    [TD]9
    [/TD]
    [/TR]

    [TD]30
    [/TD]
    [TD]foto30.jpg
    [/TD]
    [TD]6
    [/TD]
    [/TR]
    [/TABLE]

    Vorrei Estrarre da queste 2 tabelle h1, h2 e una foto degli ultimi 3 articoli con visibile = si ordinati per data, la foto deve essere l'ultima inserita (con id più alto).

    Il risultato deve essere:

    [TABLE="class: grid"]

    [TD]id
    [/TD]
    [TD]categoria_id
    [/TD]
    [TD]title
    [/TD]
    [TD]description
    [/TD]
    [TD]keywords
    [/TD]
    [TD]data
    [/TD]
    [TD]h1
    [/TD]
    [TD]h2
    [/TD]
    [TD]testo
    [/TD]
    [TD]visibile
    [/TD]
    [TD]id
    [/TD]
    [TD]foto
    [/TD]
    [TD]id_articolo
    [/TD]
    [/TR]

    [TD]1
    [/TD]
    [TD]1
    [/TD]
    [TD]Title 1
    [/TD]
    [TD]Description 1
    [/TD]
    [TD]Keywords 1
    [/TD]
    [TD]17 Gennaio 2015
    [/TD]
    [TD]Titolo 1
    [/TD]
    [TD]Sottotitolo 1
    [/TD]
    [TD]Testo 1
    [/TD]
    [TD]si
    [/TD]
    [TD]10
    [/TD]
    [TD]foto10.jpg
    [/TD]
    [TD]1
    [/TD]
    [/TR]

    [TD]3
    [/TD]
    [TD]8
    [/TD]
    [TD]Title 3
    [/TD]
    [TD]Description 3
    [/TD]
    [TD]Keywords 3
    [/TD]
    [TD]15 Gennaio 2015
    [/TD]
    [TD]Titolo 3
    [/TD]
    [TD]Sottotitolo 3
    [/TD]
    [TD]Testo 3
    [/TD]
    [TD]si
    [/TD]
    [TD]20
    [/TD]
    [TD]foto20.jpg
    [/TD]
    [TD]3
    [/TD]
    [/TR]

    [TD]4
    [/TD]
    [TD]6
    [/TD]
    [TD]Title 4
    [/TD]
    [TD]Description 4
    [/TD]
    [TD]Keywords 4
    [/TD]
    [TD]14 Gennaio 2015
    [/TD]
    [TD]Titolo 4
    [/TD]
    [TD]Sottotitolo 4
    [/TD]
    [TD]Testo 4
    [/TD]
    [TD]si
    [/TD]
    [TD]14
    [/TD]
    [TD]foto14.jpg
    [/TD]
    [TD]4
    [/TD]
    [/TR]
    [/TABLE]

    Grazie 1000 per la disponibilità e la pazienza
    Buon week end a tutti


  • User Attivo

    Quindi abbiamo appurato che è un elenco... se però prima era poco chiaro, ora è anche peggio.

    (ps. Auguri per il matrimonio... :frust:<- ... tu. )


  • User Attivo

    :D:D:D:D:D

    Grazie mille oslino!

    Pensavo di essere stato chiaro e invece no... porta pazienza.

    Dunque ci provo ancora:

    Mi servono gli ultimi 3 articoli in ordine cronologico dal più recente con visibile = si

    per cui:

    [TABLE="class: grid"]

    [TD]**id
    **[/TD]
    [TD]**categoria_id
    **[/TD]
    [TD]**title
    **[/TD]
    [TD]**description
    **[/TD]
    [TD]**keywords
    **[/TD]
    [TD]**data
    **[/TD]
    [TD]**h1
    **[/TD]
    [TD]**h2
    **[/TD]
    [TD]**testo
    **[/TD]
    [TD]**visibile
    **[/TD]
    [/TR]

    [TD]1[/TD]
    [TD]1[/TD]
    [TD]title 1[/TD]
    [TD]description 1[/TD]
    [TD]keywords[/TD]
    [TD]17 Gennaio 2015[/TD]
    [TD]Titolo 1[/TD]
    [TD]Sottotitolo 1[/TD]
    [TD]Testo 1[/TD]
    [TD]si[/TD]
    [/TR]

    [TD]3
    [/TD]
    [TD]8[/TD]
    [TD]title 3[/TD]
    [TD]description 3[/TD]
    [TD]keywords[/TD]
    [TD]15 Gennaio 2015[/TD]
    [TD]Titolo 3[/TD]
    [TD]Sottotitolo 3[/TD]
    [TD]Testo 3[/TD]
    [TD]si[/TD]
    [/TR]

    [TD]4
    [/TD]
    [TD]6[/TD]
    [TD]title 4[/TD]
    [TD]description 4[/TD]
    [TD]keywords[/TD]
    [TD]14 Gennaio 2015[/TD]
    [TD]Titolo 4[/TD]
    [TD]Sottotitolo 4[/TD]
    [TD]Testo 4[/TD]
    [TD]si[/TD]
    [/TR]
    [/TABLE]

    per ognuno di questi articoli mi serve l'ultima foto inserita, quella con l'id più alto

    per cui:

    [TABLE="class: grid"]

    [TD]**id
    **[/TD]
    [TD]**foto
    **[/TD]
    [TD]**id_articolo
    **[/TD]
    [/TR]

    [TD]10
    [/TD]
    [TD]foto10.jpg[/TD]
    [TD]1[/TD]
    [/TR]

    [TD]14
    [/TD]
    [TD]foto14.jpg[/TD]
    [TD]4[/TD]
    [/TR]

    [TD]20
    [/TD]
    [TD]foto20.jpg[/TD]
    [TD]3[/TD]
    [/TR]
    [/TABLE]

    poi combinare queste 2 tabelle, io necessito soltanto di h1, h2 e foto

    per cui:

    [TABLE="class: grid"]

    [TD]h1
    [/TD]
    [TD]h2
    [/TD]
    [TD]foto
    [/TD]
    [/TR]

    [TD]Titolo 1
    [/TD]
    [TD]Sottotitolo 1
    [/TD]
    [TD]foto10.jpg
    [/TD]
    [/TR]

    [TD]Titolo 3
    [/TD]
    [TD]Sottotitolo 3
    [/TD]
    [TD]foto20.jpg
    [/TD]
    [/TR]

    [TD]Titolo 4
    [/TD]
    [TD]Sottotitolo 4
    [/TD]
    [TD]foto14.jpg
    [/TD]
    [/TR]
    [/TABLE]

    spero di essere stato più chiaro
    ringrazio in anticipo tutti

    ciao!


  • User Attivo

    La butto lì...

    SELECT h1, h2, foto FROM articoli, foto WHERE articoli.visibile ="si" AND articoli.id = foto.id_articolo DESC LIMIT 3
    

  • User Attivo

    Ho ricostruito le tue tabelle.
    [PHP]<?php
    require_once'connect.php';
    $query = "SELECT DISTINCT foto.id_articolo FROM foto, articoli WHERE articoli.visibile ='si' ORDER BY foto.id_articolo DESC LIMIT 3";
    $a = $mysqli_query($conn, $query);
    $c = mysqli_num_rows($a);
    while($r = mysqli_fetch_array($a)){
    $array[] = $r[0];
    }
    echo '<pre>'; // DEBUG
    var_dump($array); // DEBUG
    echo '</pre>'; // DEBUG
    for($i=0; $i < $c; $i++){
    $query2 = "SELECT foto.foto, articoli.h1, articoli.h2 FROM foto, articoli WHERE foto.id_articolo = '$array*' AND articoli.id = '$array*' ORDER BY foto.id DESC LIMIT 1";
    echo $query2 . '<br />'; // DEBUG
    $result = $mysqli_query($conn, $query2);
    while($row = mysqli_fetch_array($result)){
    echo $row['foto'] . ' ' . 'ciclo while ' . $i . '<br />';
    echo $row['h1'] . ' ' . $row['h2'] . '<br />';
    }
    echo 'ciclo for ' . $i . '<br />'; // DEBUG
    }
    ?>[/PHP]
    Funziona.
    Mi devi una pizza.
    Ciao.


  • User Attivo

    Grande Oslino!

    appena ho tempo provo!

    se capiti a vicenza volentieri per la pizza!

    grazie ancora!

    :D:D:D:D:D:D:D:D:D:D


  • User Attivo

    Fammi sapere se va.
    E non fare il furbo, la pizza me la devi anche se passi tu a Rimini! :festa:

    EDIT:
    uhmmm... riguardando il mio codice ho il dubbio che non vada come dovrebbe... ci devo lavorare sopra... non posso perdermi una pizza gratis!!!


  • User Attivo

    Prova con questo. E' abbastanza contorto e forse si poteva fare di meglio con qualche trucco da guru SQL.
    Però se funziona aggiungi una birra... media... bionda. E dessert.
    Grazie.
    [PHP]
    <?php
    require_once'connect.php';
    // recupero i singoli id_articolo delle foto
    $query = "SELECT DISTINCT foto.id_articolo FROM foto ORDER BY id_articolo DESC";
    $a = mysqli_query($conn, $query);
    // metto ogni id_articolo in un array
    while($r = mysqli_fetch_array($a)){
    $array[] = $r[0];
    }
    echo '<pre>'; // DEBUG (eliminare)
    var_dump($array); // DEBUG (eliminare)
    echo '</pre>'; // DEBUG (eliminare)
    $x = 0;
    $i = 0;

    while($i <= count($array)-1){ // faccio un ciclo su tutti i valori dell'array. Il ciclo si ferma all'esaurimento dell'array o al recupero di 3 articoli (riga 29)...

    $query2 = "SELECT foto.foto, h1, h2 FROM foto, articoli WHERE foto.id_articolo = '$array*' AND articoli.id = '$array*' AND articoli.visibile = 'si' ORDER BY foto.id DESC LIMIT 1";
    echo $query2 . '<br />'; // DEBUG (eliminare)
    $result = mysqli_query($conn, $query2);
    $i++; // passo al valore successivo dell'array
    if(mysqli_num_rows($result) == 0) continue;  // se con l'id_articolo non c'è un articolo "visibile" riprendo il ciclo da capo altrimenti proseguo...
    $x++; //... inserendo il primo articolo e aumentando il contatore
    while($row = mysqli_fetch_array($result)){
        echo "<h1>Articolo $x </h1>"; // DEBUG (eliminare)
        echo $row['foto'] . '<br />';
        echo $row['h1'] . ' ' . $row['h2'] . '<br />';
    }
    if($x == 3) break; // quando il contatore degli articoli recuperati arriva a 3 mi fermo
    

    }

    ?>
    [/PHP]
    Ricordati di mettere i vari die() e controlli di errore.
    Ciao.


  • User

    Ci provo anch'io... c'è in ballo una pizza...:fumato:
    Provata e funzionante,
    per Mysql:

    SELECT * FROM (
    SELECT A2.* FROM 
    (SELECT ID
    FROM ARTICOLI
    WHERE ARTICOLI.visibile="si"
    ORDER BY DATA DESC LIMIT 3) A1, ARTICOLI A2 WHERE A1.ID=A2.ID
    ) A LEFT JOIN (
    SELECT B2.* FROM
    (SELECT id_articolo, MAX(id) AS MAX_ID
    FROM FOTO
    GROUP BY ID_ARTICOLO) B1, FOTO B2
    WHERE B1.MAX_ID=B2.ID
    ) B WHERE A.ID=B.ID_ARTICOLO
    
    

    per MsAccess:

    SELECT * FROM (
    SELECT A2.* FROM 
    (SELECT TOP 3 ID
    FROM ARTICOLI
    WHERE ARTICOLI.visibile="si"
    ORDER BY DATA DESC) A1, ARTICOLI A2 WHERE A1.ID=A2.ID
    ) A LEFT JOIN (
    SELECT B2.* FROM
    (SELECT id_articolo, MAX(id) AS MAX_ID
    FROM FOTO
    GROUP BY ID_ARTICOLO) B1, FOTO B2
    WHERE B1.MAX_ID=B2.ID
    ) B WHERE A.ID=B.ID_ARTICOLO
    
    

    Ciao e alla prossima


  • User Attivo

    Lasciamene una fetta... :gtsad:


  • User Attivo

    Ragazzi devo mettere via i soldi per la cucina, non posso pagare pizze a tutti :D:D:D:D:D

    Una domanda per OsteriaORistorante: vedo che nella query ci sono A1, A2, B1, B2

    Perdonate l'ignoranza e la domanda forse molto banale, ma che cosa sono?

    grazie ancora per le risposte
    buona giornata a tutti


  • User

    @enricocarli said:

    Ragazzi devo mettere via i soldi per la cucina, non posso pagare pizze a tutti :D:D:D:D:D

    Una domanda per OsteriaORistorante: vedo che nella query ci sono A1, A2, B1, B2

    Perdonate l'ignoranza e la domanda forse molto banale, ma che cosa sono?

    grazie ancora per le risposte
    buona giornata a tutti

    Ciao Enrico,
    A1, A2, B1, B2 sono gli alias delle tabelle o delle query, cerca "sql alias" su google

    Michele


  • User Attivo

    annn ho capito...

    però mi da errore sul phpmyadmin:

    #1064 - 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 'WHERE A.ID=B.ID_ARTICOLO' at line 13

    forse è la mia versione di php?

    bho!


  • User Attivo

    Cmq sia...

    ho quasi risolto; ho scritto:

    SELECT * FROM articoli LEFT OUTER JOIN foto ON articoli.id=foto.id_articolo WHERE visibile = 'si' GROUP BY id_articolo ORDER BY data DESC LIMIT 0, 3;

    l'unico problema è che non mi prende l'ultima foto, bensì la prima...

    Il GROUP BY tiene buono il primo risultato, gli altri li esclude, che voi sappiate c'è il sistema per farlo funzionare al contrario?

    grazie infinite a tutti
    siete gentilissimi
    buona serata


  • User

    CORRETTO:

    Ci provo anch'io... c'è in ballo una pizza...
    Provata e funzionante,
    per Mysql:

    
    SELECT * FROM (
    SELECT A2.* FROM 
    (SELECT ID
    FROM ARTICOLI
    WHERE ARTICOLI.visibile="si"
    ORDER BY DATA DESC LIMIT 3) A1, ARTICOLI A2 WHERE A1.ID=A2.ID
    ) A LEFT JOIN (
    SELECT B2.* FROM
    (SELECT id_articolo, MAX(id) AS MAX_ID
    FROM FOTO
    GROUP BY ID_ARTICOLO) B1, FOTO B2
    WHERE B1.MAX_ID=B2.ID
    ) B ON A.ID=B.ID_ARTICOLO
    
    

    per MsAccess:

    
    SELECT * FROM (
    SELECT A2.* FROM 
    (SELECT TOP 3 ID
    FROM ARTICOLI
    WHERE ARTICOLI.visibile="si"
    ORDER BY DATA DESC) A1, ARTICOLI A2 WHERE A1.ID=A2.ID
    ) A LEFT JOIN (
    SELECT B2.* FROM
    (SELECT id_articolo, MAX(id) AS MAX_ID
    FROM FOTO
    GROUP BY ID_ARTICOLO) B1, FOTO B2
    WHERE B1.MAX_ID=B2.ID
    ) B ON A.ID=B.ID_ARTICOLO
    
    

    Ciao e alla prossima


  • User Attivo

    :():


  • User

    mi son dimenticato di indicare qual è la modifica.... "ON A.ID=B.ID_ARTICOLO" al posto di "WHERE A.ID=B.ID_ARTICOLO"


  • User Attivo

    Ciao OsteriaORistorante!

    ho scritto:

    SELECT * FROM (
    SELECT A2.* FROM
    (SELECT ID
    FROM ARTICOLI
    WHERE ARTICOLI.visibile="si"
    ORDER BY DATA DESC LIMIT 3) A1, ARTICOLI A2 ON A.ID=B.ID_ARTICOLO
    ) A LEFT JOIN (
    SELECT B2.* FROM
    (SELECT id_articolo, MAX(id) AS MAX_ID
    FROM FOTO
    GROUP BY ID_ARTICOLO) B1, FOTO B2
    WHERE B1.MAX_ID=B2.ID
    ) B ON A.ID=B.ID_ARTICOLO

    ma da errore:

    #1064 - 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 'ON A.ID=B.ID_ARTICOLO ) A LEFT JOIN ( SELECT B2.* FROM (SELECT id_articolo, M' at line 6

    ma tu hai provato con la mia query?

    SELECT * FROM articoli LEFT OUTER JOIN foto ON articoli.id=foto.id_articolo WHERE visibile = 'si' GROUP BY id_articolo ORDER BY data DESC LIMIT 0, 3;

    l'unico problema è che prende la prima foto e non l'ultima, colpa del GROUP BY se non sbaglio,

    non si può dirgli in qualche modo "Ragruppa ma parti da in fondo"?

    grazie mille a tutti
    buona serata


  • User Attivo

    @enricocarli said:

    Ciao OsteriaORistorante!
    [...]
    ma da errore:

    #1064 - 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 'ON A.ID=B.ID_ARTICOLO ) A LEFT JOIN ( SELECT B2.* FROM (SELECT id_articolo, M' at line 6
    [...]

    Vabbè... che dire... eeehhhhh... non tutte le ciambelle riescono col buco.... :bastard:
    Prova questo...
    [PHP]
    <?php
    require_once'connect.php';
    // recupero i singoli id_articolo delle foto
    $query = "SELECT DISTINCT foto.id_articolo FROM foto ORDER BY id_articolo DESC";
    $a = mysqli_query($conn, $query);
    // metto ogni id_articolo in un array
    while($r = mysqli_fetch_array($a)){
    $array[] = $r[0];
    }
    echo '<pre>'; // DEBUG (eliminare)
    var_dump($array); // DEBUG (eliminare)
    echo '</pre>'; // DEBUG (eliminare)
    $x = 0;
    $i = 0;

    while($i <= count($array)-1){ // faccio un ciclo su tutti i valori dell'array. Il ciclo si ferma all'esaurimento dell'array o al recupero di 3 articoli (riga 29)...

    $query2 = "SELECT foto.foto, h1, h2 FROM foto, articoli WHERE foto.id_articolo = '$array*' AND articoli.id = '$array*' AND articoli.visibile = 'si' ORDER BY foto.id DESC LIMIT 1";
    echo $query2 . '<br />'; // DEBUG (eliminare)
    $result = mysqli_query($conn, $query2);
    $i++; // passo al valore successivo dell'array
    if(mysqli_num_rows($result) == 0) continue;  // se con l'id_articolo non c'è un articolo "visibile" riprendo il ciclo da capo altrimenti proseguo...
    $x++; //... inserendo il primo articolo e aumentando il contatore
    while($row = mysqli_fetch_array($result)){
        echo "<h1>Articolo $x </h1>"; // DEBUG (eliminare)
        echo $row['foto'] . '<br />';
        echo $row['h1'] . ' ' . $row['h2'] . '<br />';
    }
    if($x == 3) break; // quando il contatore degli articoli recuperati arriva a 3 mi fermo
    

    }

    ?>
    [/PHP]
    Tonno e cipolla... grazie. :fumato: