Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    115

    problema con while e if

    Volevo limitare i record visualizzati e fare in modo che non ripeta lo stesso id, ma si blocca, non carica la pagina.

    Premetto che sono un principiante e quel poco che ho imparato è solo merito Vostro.


    <?php
    require ("config.db.php");
    $limit = 5;
    $start = 0;
    $db=mysql_connect($host,$user,$pass) or die ("Errore durante la connessione al database");
    $sql="SELECT * FROM offerte";
    $result=mysql_db_query($dbase,$sql,$db);
    while ($start < $limit){
    if ($idprecedente <> $id_str ) {
    $row=mysql_fetch_array($result);
    $id_str=$row["id_str"];
    echo "$id_str";
    $idprecedente=$id_str;
    $start++;
    }
    }
    ?>

    sicuramente ho scritto qualche stronzata ma per mè è normale.

    ciao e grazie dell'attenzione

  2. #2

    Re: problema con while e if

    Originariamente inviato da gaza1960
    Volevo limitare i record visualizzati e fare in modo che non ripeta lo stesso id, ma si blocca, non carica la pagina.

    Premetto che sono un principiante e quel poco che ho imparato è solo merito Vostro.

    sicuramente ho scritto qualche stronzata ma per mè è normale.

    ciao e grazie dell'attenzione
    Diciamo che e' difficile smentirti....

    Sicuramente non hai imparato qui l'uso di mysql_db_query, che e' deprecato come uso e non da poco.

    Usa mysql_select_db e mysql_query (cfr. manuale)
    Nella query usa il LIMIT che hai gia' settato dopo il require, e per avere un solo id per tipo usa DISTINCT.

    L'estrazione dei dati la fai poi in modo classico:

    while( $row = mysql_fetch_assoc($result)) {

    sicuro di avere solo un ID per tipo. Non dimenticare ORDER BY se vuoi i dati ordinati in qualche modo.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    115
    Dove posso trovare un manuale online?

    il problema è che ci possono essere altri campi con questo id_str e io vorrei visualizzarne solo uno.

    mysql_db_query era indicato in una guida di html.it (probabilmente vecchia).

    non riusciresti ad indicarmi un corretto uso di queste funzioni ?

  4. #4
    Originariamente inviato da gaza1960
    Dove posso trovare un manuale online?

    il problema è che ci possono essere altri campi con questo id_str e io vorrei visualizzarne solo uno.

    mysql_db_query era indicato in una guida di html.it (probabilmente vecchia).

    non riusciresti ad indicarmi un corretto uso di queste funzioni ?
    Qui trovi parecchie info:

    http://freephp.html.it/guide/index.asp
    http://dev.mysql.com/doc/mysql/en/index.html Il manuale mysql

    La direttiva DISTINCT indica di prelevare un solo record per tipo. Pero' prende la prima che trova se non viene indicata quale.

    LIMIT definisce la quantita' di righe da prelevare in due modi: con un solo parametro es.: LIMIT 10 prende i primi 10 record secondo l'ordinamento previsto da ORDER BY. LIMIT 10,5 prende 5 record a partire dal record 10.

    ORDER BY qualcosa ASC oppure DESC ti ordina i risultati in ordine ascendente oppure discendente.

    Per quanto riguarda la connessione e scelta del db:

    $db = mysql_connect(parametri....
    mysql_select_db(nome_db,connessione .....

    e poi la query la farai con:

    mysql_query(INSER, DELETE, UPDATE, SELECT, SHOW quel_che_le' insomma.

    Leggi dei thread esistenti, fai la ricerca con un nome chiave. Troverai di tutto anche cazzatine di alcuni personaggi estroversi.

    Cerca di identificare le cose corrette... fa parte del training anche quello.

    Auguri.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Le soluzioni che ti ha proposto piero.mac vanno benissimo, però se vuoi comunque far funzionare il tuo script prova intanto a sostituire
    Codice PHP:
    if ($idprecedente <> $id_str ) { 
    con
    Codice PHP:
    if ($idprecedente != $id_str ) { 
    e anche
    Codice PHP:
    $id_str=$row["id_str"]; 
    con
    Codice PHP:
    $id_str=$row[id_str]; 
    oppure
    Codice PHP:
    $id_str=$row['id_str']; 
    Ciao
    Make Pazziata-tàààà NOT war!

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    115
    con "SELECT DISTINCT id_str FROM tabella"
    visualizza un solo id_str ma non visualizza gli altri campi,
    titolo testo data.

    se metto così "SELECT DISTINCT id_str,titolo,testo,data FROM tabella"

    Visualizza gli altri campi, ma ripete più volte lo stesso id_str.

    e normale così oppure sbagli qualche cosa ?
    ciao e grazie per la pazienza che dimostrate nei miei confronti.

  7. #7
    Certamente.... DISTINCT si estende a tutti gli elementi cercati.

    Aggiungi il GROUP BY

    SELECT DISTINCT * FROM tabella
    GROUP BY id_str




    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    115
    SELECT DISTINCT * FROM tabella GROUP BY id_str
    si riesce anche a dargli delle condizioni ?

    WHERE attivo LIKE '1' AND al_last >= '$data' ORDER BY al_last LIMIT $start, $limit

    se aggiungo queste condizioni non funziona più e da errore e se non metto ORDER BY visualizzerebbe i dati in ordine id_str e invece dovrei ordinarli per data.

    so di abusare della Tua pazienza.

  9. #9
    SELECT DISTINCT *
    FROM tabella
    WHERE attivo LIKE '1' AND al_last >= '$data'
    GROUP BY id_str
    ORDER BY al_last
    LIMIT $start, $limit


    Non abusi.... sto "per andando" in vacanza e faccio il perdiballe nel frattempo. Mi sto allenando.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    115
    Funziona perfettamente, avevo girato a cercare dove parlavano di DISTINCT ma non ero riuscito a trovare niente che potesse essere simile al mio caso.

    con GROUP BY id_str mette il primo id_str ma visualizza una data 14/07 e invece ci sono date con questo id che dovrebbero uscire prima, tipo 13/07

    CMQ, non so dove vai in ferie ma se passi da savona dillo che ti offro una bevuta.

    divertiti e ancora grazie (anche se non è finita quì)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.