Visualizzazione risultati 1 fino 18 di 18

Discussione: ordinare alfabeticamente

  1. #1
    Guest

    Predefinito

    ho credto un sito di trucchi e soluzioni e ho realizzato uno script per l'inserimento dei dati del database. Ora come posso creare delle pagine che gestiscono i dati per l'iniziale del titolo come queste: http://evcz.altervista.org/pages/nokiaring/index.php ?
    grazie in anticipo
    colt

  2. #2
    Guest

    Predefinito

    Il linguaggio d'interrogazione SQL offre un modo per ordinare i dati alfabeticamente in modo automatico.

    E' sufficiente aggiungere 'ORDER BY campo ASC' (mi sembra), allo stesso modo basta sostituire ASC con DESC per ordinare in ordine descendente.

    Fai riferimento al manuale MySQL per ulteriori informazioni.

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da numerone
    Il linguaggio d'interrogazione SQL offre un modo per ordinare i dati alfabeticamente in modo automatico.

    E' sufficiente aggiungere 'ORDER BY campo ASC' (mi sembra), allo stesso modo basta sostituire ASC con DESC per ordinare in ordine descendente.

    Fai riferimento al manuale MySQL per ulteriori informazioni.
    Grazie per la risposta; ma mi potresti spiegare come fare delle pagine per iniziale come il sito citato prima?

  4. #4
    Guest

    Predefinito

    Dovrebbe essere +-
    SELECT campi FROM tabella LIKE 'a%'

    La % vuol dire un numero imprecisato di caratteri, quindi a% vuol dire tutte le stringhe che iniziano per a

  5. #5
    Guest

    Predefinito

    vedo se funzia ;)

  6. #6
    Guest

    Predefinito

    ho un prob.... ho scritoo questo codice per prova [code:1:c398d49e4c]include("top_foot.inc.php");
    include("config.inc.php");
    top();
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    $sqlinterr = "select titolo, piattaforma, data from trucchi";
    $sqlinterr .= "where titolo like 'A%' order by titolo";
    $res = mysql_db_query("gamesbond", $sqlinterr);
    $num = mysql_num_rows($res);
    for ($i=0; $i<$num; $i++)
    {
    $cg = mysql_result($res, $i, "titolo");
    $nm = mysql_result($res, $i, "piattaforma");
    }
    mysql_close($db);[/code:1:c398d49e4c]
    ma mi da questo errore:
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /utenze/gamesbond/htdocs/dynamic/trucchi/index.php on line 11
    eppure quella funzione l'ho presa da un libro... sapete dirmi perchè non funzia e in caso un'alternativa?

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da manuale di php pagina mysql_db_query
    Nota: Questa funzione è stata sconsigliata a partire dal PHP 4.0.6. Non usare questa funzione.Usare invece mysql_select_db() e mysql_query().
    Non aggiungo altro...

    Per quanto riguarda l'errore, in pratica la variabile che passi a mysql_num_rows non é una risorsa mysql valida, di solito questo accade quando una query al database non va a buon fine.

    Nel tuo caso
    Citazione Originalmente inviato da manuale di php pagina mysql_db_query
    Restituisce una risorsa risultato della query se è stato possibile eseguire quest'ultima, oppure FALSE in caso d'errore.
    Quella variabile assume valore false, in quanto, quasi sicuramente, la sintassi della query non é corretta.

    Visualizza l'errore usando mysql_error() e correggi il problema.

    Ritengo che sia obbligatorio, infine, non dimenticare mai questo controllo degli errori ;)

  8. #8
    Guest

    Predefinito

    ok (sono un newbie totale in questo campo)

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da colt
    ok (sono un newbie totale in questo campo)
    Anche io non sono proprio un esperto.
    Tuttavia, come si dice, la documentazione é l'ultima a morire :p (altro che speranza...)

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da numerone
    Citazione Originalmente inviato da colt
    ok (sono un newbie totale in questo campo)
    Anche io non sono proprio un esperto.
    Tuttavia, come si dice, la documentazione é l'ultima a morire :p (altro che speranza...)
    sicuramente sei meglio di me ;)

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da numerone
    Citazione Originalmente inviato da manuale di php pagina mysql_db_query
    Nota: Questa funzione è stata sconsigliata a partire dal PHP 4.0.6. Non usare questa funzione.Usare invece mysql_select_db() e mysql_query().
    Non aggiungo altro...

    Per quanto riguarda l'errore, in pratica la variabile che passi a mysql_num_rows non é una risorsa mysql valida, di solito questo accade quando una query al database non va a buon fine.

    Nel tuo caso
    Citazione Originalmente inviato da manuale di php pagina mysql_db_query
    Restituisce una risorsa risultato della query se è stato possibile eseguire quest'ultima, oppure FALSE in caso d'errore.
    Quella variabile assume valore false, in quanto, quasi sicuramente, la sintassi della query non é corretta.

    Visualizza l'errore usando mysql_error() e correggi il problema.

    Ritengo che sia obbligatorio, infine, non dimenticare mai questo controllo degli errori ;)
    uhm col mysql_error() mi da un parse error sulla linea 12 cioè:[code:1:2ef798d9b8]$num = mysql_num_rows($res);[/code:1:2ef798d9b8]non riesco proprio a capire dove sta l'errore

  12. #12
    Guest

    Predefinito

    L'errore sta qui (o almeno uno degli errori):

    [code:1:7a1f269c4d]
    $sqlinterr = "select titolo, piattaforma, data from trucchi";
    $sqlinterr .= "where titolo like 'A%' order by titolo";
    [/code:1:7a1f269c4d]
    Ma non ti dico perche'.....

    Domanda: cosa conterra' la variabile $sqlinterr alla fine di queste due righe?

    scegliere la risposta giusta:

    select titolo, piattaforma, data from trucchiwhere titolo like 'A%' order by titolo
    select titolo, piattaforma, data from trucchi where titolo like 'A%' order by titolo

    ....

    hai indovinato, la risposta giusta e' la 1 :P

    dovresti scrivere

    [code:1:7a1f269c4d]
    $sqlinterr = "select titolo, piattaforma, data from trucchi";
    $sqlinterr .= " where titolo like 'A%' order by titolo";
    [/code:1:7a1f269c4d]

    (notato lo spazio prima di where?)



  13. #13
    Guest

    Predefinito

    giustoooo .... sono questi gli errori che mi fanno impazzire.... grazie mille ;)

    Edit: mi da comunque l'errore sempre sulla sessa riga:[code:1:eb9602159d]$num = mysql_num_rows($res);[/code:1:eb9602159d]

  14. #14
    Guest

    Predefinito

    vieni a trovarci sul forum se ti serve altro aiuto ^_^

    http://www.php4all.altervista.org


    ciauz! ^_^

  15. #15
    Guest

    Predefinito

    In questo caso la cosa migliore sarebbequella di aprire il muanuale di MySQL e cercare sia la parola WHERE che la parola ORDER.

    Puoi farcela, neo ;)

  16. #16
    Guest

    Predefinito

    Citazione Originalmente inviato da numerone
    Puoi farcela, neo ;)
    speriamo ;)

  17. #17
    Guest

    Predefinito

    Hehehe

    Come dico sempre io: "gli errori piu' stupidi sono anche i piu' difficili da trovare"

    Continua a darti errore? Lo supponevo. Per questo ho scritto "UN errore".

    Riposta il codice aggiornato

  18. #18
    Guest

    Predefinito

    ci sono riuscito :D (anche se ho scopiazzato dal manuale php )!!! dato che non riuscivo a trovare l'errore ho fatto tutto da capo:[code:1:7f5be1b94c]<?php
    include("top_foot.inc.php");
    include("config.inc.php");
    top();
    $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");
    $query = "SELECT titolo, piattaforma, data FROM trucchi where titolo like '%A' order by titolo";
    $risultato = mysql_query($query) or die("Query fallita");
    print "<table>\n";
    while ($linea = mysql_fetch_array($risultato, MYSQL_ASSOC)) {
    print "\t<tr>\n";
    foreach ($linea as $valore_colonna) {
    print "\t\t<td>$valore_colonna</td>\n";
    }
    print "\t</tr>\n";
    }
    print "</table>\n";
    mysql_free_result($risultato);
    mysql_close($db); foot();
    ?>[/code:1:7f5be1b94c]
    grazie a tutti quelli che mi hanno aiutato ;) ora devo riuscire a visualizzare la data in formato timestamp... e anche un'altra cosa: vorrei fare in modo che in base all'indirizzo la query eseguita cambi, tipo index.php?iniziale=A... come portrei fare? ancora grazie e ciao :)

    Edit: nemmeno così funzia mi visualizza solo un record
    Riedit: altro problema stupido avevo messo A% invece che %A

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •