Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    684

    Ciclo if e stampa "nessun record trovato"

    Ciao a tutti,
    ho questa porzione di codice che effettua un cliclo while per determinare la presenza di immagini all'interno di un database. Se l'immagine è presente la visualizza a video altrimenti viene mostrata un'immagine standard.

    Vorrei implementare il codice con un nuovo ciclo (if?) che mi stampi a video la dicitura "Nessun record trovato" nel caso non sia presente alcun record (nè immagine nè altro).

    Come dovrei modificare il codice seguente?

    <?php

    require("config.inc.php");
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");



    // esecuzione prima query

    $count = mysql_query("SELECT COUNT(Id_fotografia) FROM tab_fotografie");


    $res_count = mysql_fetch_row($count);

    // numero totale di records
    $tot_records = $res_count[0];


    // risultati per pagina(secondo parametro di LIMIT)
    $per_page = 18;

    // numero totale di pagine
    $tot_pages = ceil($tot_records / $per_page);

    // pagina corrente
    $current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];



    // primo parametro di LIMIT
    $primo = ($current_page - 1) * $per_page;

    $query_limit = "SELECT * FROM tab_fotografie WHERE Categoriaid=4 ORDER BY Id_fotografia DESC Limit $primo, $per_page ";
    $result_news = mysql_query($query_limit) or die('Error, query failed');

    while($result_array = mysql_fetch_array($result_news))

    {
    ?>



    <? if($result_array['Img'] != "" ){
    echo '<div>[img]allegati/' . $result_array['Img'] . '[/img]
    '; ?>
    <?php echo $result_array['Titolo_fotografia']; ?>
    <?php echo '</div>';
    }else{?>
    <div>[img]../img/foto-vuota.gif[/img]

    <? echo $result_array['Titolo_fotografia'] ?></div>
    <?php }}?>


    Grazie 1000

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    l'if non è un ciclo ma è una istruzione di controllo cmq la logica per quello che vuoi fare è questa

    1)creo una variabile booleana fuori dal ciclo while che chiamo per esempio $entroinwhile e la metto a false
    2)se entro almeno una volta nel ciclo while setto $entroinwhile a true
    3)finito il ciclo while mi chiedo if(!$entroinwhile) allora non ho trovato alcun record e stampo il messaggio

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    684
    Mi sono accorto che se nella query metto

    WHERE Categoriaid=7

    a video non ho più visualizzata l'immagine standard che appare quando il file non c'è ma ci sono solo altri record presenti nel db.

    Se la tolgo funziona tutto ma così facendo non ho visualizzate più le immagini della sola Categoria numero 7, ma tutte quelle presenti.

    Uff...

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    spiegati meglio please

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    684
    Originariamente inviato da bstefano79
    spiegati meglio please
    Allora..

    con il codice che ho indicato sopra dovrei visualizzare tutti i record della categoria con "Categoriaid=7".

    Se utilizzo questa query

    $query_limit = "SELECT * FROM tab_fotografie WHERE Categoriaid=7 ORDER BY Id_fotografia DESC Limit $primo, $per_page ";

    e l'immagine è presente nel db, allora non ho problemi e visualizzo tutto correttamente.

    Se l'immagine non è presente ma sono presenti solamente altri campi relativi allo stesso record (Titolo, Testo ecc.) dovrei visualizzare un'immagine sostitutiva ma così non è.

    Se nella query tolgo il WHERE

    $query_limit = "SELECT * FROM tab_fotografie ORDER BY Id_fotografia DESC Limit $primo, $per_page ";

    visualizzo di nuovo tutto (anche, nel caso, l'immagine sostitutiva) ma così non ho più la distinzione nella visualizzazione dei files appartenenti ad una sola categoria (nell'esempio la categoria con categoriaid=7).

    Spero di non aver incasinato troppo..

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    684
    Ho modificato così:

    <?php

    require("config.inc.php");
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");



    // esecuzione prima query

    $count = mysql_query("SELECT COUNT(Id_fotografia) FROM tab_fotografie");


    $res_count = mysql_fetch_row($count);

    // numero totale di records
    $tot_records = $res_count[0];


    // risultati per pagina(secondo parametro di LIMIT)
    $per_page = 18;

    // numero totale di pagine
    $tot_pages = ceil($tot_records / $per_page);

    // pagina corrente
    $current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];



    // primo parametro di LIMIT
    $primo = ($current_page - 1) * $per_page;

    $query_limit = "SELECT * FROM tab_fotografie WHERE Categoriaid=7 ORDER BY Id_fotografia DESC Limit $primo, $per_page ";
    $result_news = mysql_query($query_limit) or die('Error, query failed');

    $entroinwhile=false;

    while($result_array = mysql_fetch_array($result_news))

    { $entroinwhile=true;
    ?>



    <? if($result_array['Img'] != "" ){
    echo '<div>[img]allegati/' . $result_array['Img'] . '[/img]
    '; ?>
    <?php echo $result_array['Titolo_fotografia']; ?>
    <?php echo '</div>';
    }else{?>
    <div>[img]../img/foto-vuota.gif[/img]

    <? echo $result_array['Titolo_fotografia'] ?></div>
    <?php }}

    if(!$entroinwhile) { echo "<p align=\"left\">Nessun record presente nel database.</p>";}?>


    e sembra tutto funzionare correttamente!

    1) Se inserisco un'immagine viene visualizzata correttamente;
    2) Se inserisco solo un altro campo senza l'immagine viene visualizzato il campo e l'immagine foto-vuota.gif
    3) Se non inserisco nulla compare il messaggio "Nessun record presente nel database".


    Dal punto di vista del codice, ci sono degli "scempi" oppure no?

    Grazie ancora!

  7. #7
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    ho capito ma non centra niente quella clausola where sul fatto che si veda omeno l'immagine vuota, l'errore è da un'latra parte eventualmente

    potresti per esempio invede del controllo
    if($result_array['Img'] != "" ){

    fare quest'altro controllo
    if( is_file(="allegati/".$result_array['Img'])){

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.