Visualizzazione dei risultati da 1 a 7 su 7

Discussione: problema con query

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    96

    problema con query

    Ciao a tutti,
    come faccio a dire alla query che se non trova nessun record tra gli ultimi 9 deve comunque visualizzarmene uno per non lasciare la pagina vuota?


    Codice PHP:
    SELECT c_art_articolo.*, c_art_articolo.id_art_articolo as id_art_articolo2c_art_categoria.*, c_art_posizione.*, c_art_videoarticolo.*  
                
                
    FROM c_art_articolo
                
                INNER JOIN c_art_categoria
                ON c_art_articolo
    .id_art_categoria c_art_categoria.id_art_categoria 
                
                INNER JOIN c_art_posizione
                ON c_art_articolo
    .id_art_posizione_home c_art_posizione.id_art_posizione 
                            
                LEFT JOIN c_art_videoarticolo
                ON c_art_articolo
    .id_art_articolo c_art_videoarticolo.id_art_articolo 
                    
                WHERE c_art_articolo
    .id_art_posizione_home != '7' AND 
                ((
    c_art_articolo.data_evento '$data_attuale') OR (c_art_articolo.data_evento '$data_attuale' AND c_art_articolo.ora_pubblicazione <= '$ora_attuale'))
                
                
    ORDER BY c_art_articolo.data_evento DESCc_art_articolo.ora_pubblicazione DESC LIMIT 9 

  2. #2
    fai una seconda query e la lanci se la prima ha 0 risultati

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    96
    pensavo si potesse fare tutto in un'unica query

  4. #4


    magari è possibile farlo da dentro la stessa query non lo so... in php io leggerei il numero di righe dei record trovati, se son 0 allora lancio la query per trovare l'altro record se poi si possa fare in un altra query non saprei ma potrebbe essere un comando pesante... e devi come sempre considerare quante persone dovranno vedere la pagina... meglio 100 query leggere al secondo che 5 pesanti

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    96
    Ok ho fatto come mi hai consigliato, ma non ho risolto.
    Con la modifica che ho fatto succede questo:

    Se tra gli ultimi 9 record selezionati ci sono i record che mi interessano stampameli, altrimenti cercami tra tutti i record disponibili l'ultimo inserito che mi interessa e stampamelo.




    Codice PHP:
                $query_art_recenti="SELECT c_art_articolo.*, c_art_articolo.id_art_articolo as id_art_articolo2, c_art_categoria.*, c_art_posizione.*, c_art_videoarticolo.*  
                
                FROM c_art_articolo
                
                INNER JOIN c_art_categoria
                ON c_art_articolo.id_art_categoria = c_art_categoria.id_art_categoria 
                
                INNER JOIN c_art_posizione
                ON c_art_articolo.id_art_posizione_home = c_art_posizione.id_art_posizione 
                            
                LEFT JOIN c_art_videoarticolo
                ON c_art_articolo.id_art_articolo = c_art_videoarticolo.id_art_articolo 
                    
                WHERE c_art_articolo.id_art_posizione_home != '7' AND 
                ((c_art_articolo.data_evento < '
    $data_attuale') OR (c_art_articolo.data_evento = '$data_attuale' AND c_art_articolo.ora_pubblicazione <= '$ora_attuale'))
                
                ORDER BY c_art_articolo.data_evento DESC, c_art_articolo.ora_pubblicazione DESC LIMIT 9"
    ;
                
    $mysql_query_art_recenti=mysql_query($query_art_recenti$conn);
                
    //otteniamo il numero di righe
    $righe=mysql_num_rows($mysql_query_art_recenti);

    if (
    $righe!="0"){
    while(
    $row_art_recenti=mysql_fetch_array($mysql_query_art_recenti)){;
    }            

    elseif (
    $righe=="0"){
    $query_art_recenti="SELECT c_art_articolo.*, c_art_articolo.id_art_articolo as id_art_articolo2, c_art_categoria.*, c_art_posizione.*, c_art_videoarticolo.*  
                
                FROM c_art_articolo
                
                INNER JOIN c_art_categoria
                ON c_art_articolo.id_art_categoria = c_art_categoria.id_art_categoria 
                
                INNER JOIN c_art_posizione
                ON c_art_articolo.id_art_posizione_home = c_art_posizione.id_art_posizione 
                            
                LEFT JOIN c_art_videoarticolo
                ON c_art_articolo.id_art_articolo = c_art_videoarticolo.id_art_articolo 
                    
                WHERE c_art_articolo.id_art_posizione_home != '7' AND 
                ((c_art_articolo.data_evento < '
    $data_attuale') OR (c_art_articolo.data_evento = '$data_attuale' AND c_art_articolo.ora_pubblicazione <= '$ora_attuale'))
                
                ORDER BY c_art_articolo.data_evento DESC, c_art_articolo.ora_pubblicazione DESC LIMIT 1"
    ;
                
    $mysql_query_art_recenti=mysql_query($query_art_recenti$conn);
                
    while(
    $row_art_recenti=mysql_fetch_array($mysql_query_art_recenti)){;


  6. #6
    a parte che $righe è numerico quindi non usi "0" ma 0 è basta

    la seconda query è diversa dalla prima giusto? Se si che dati tira fuori? li tira fuori giusti o sbagliati?

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    96
    Ho capito ora qual'è la soluzione che mi servirebbe, però non so qual'è la sintassi per attuarla.

    allora se voglio che mi stampi 9 record scrivo:

    DESC LIMIT 9

    io invece vorrei questa formula, stampami AL MASSIMO 9 record:

    però così non funziona
    DESC MAX LIMIT 9


    la differenza è che io sulla pagina voglio che si vedano sempre 9 record, sia che nel db ce ne sono 30 che 12, per esempio.


    forse potrebbe andare bene anche:
    DESC MAX LIMIT 9, MIN LIMIT1

    ma mi sa che questa sintassi non esiste

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.