Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Problema col ciclo for

  1. #1

    Problema col ciclo for

    Vengo al sodo:
    Abbiamo un database dentro il quale c'è una tabella chiamata "testi" e ogni testo ha un "titolo" e un "id" crescente che parte da 7.

    Ora, il mio scopo è quello di riuscire a fare un elenco di tutti questi titoli e renderli link diretti a pagine diverse.
    Questo è il risultato più vicino che sono riuscito a raggiungere, ma chiaramente non è per nulla soddisfacente.


    Codice PHP:
    for($id=7$id<=$id_max$id++){ 
    $ricercamysql_query("SELECT titolo FROM testi WHERE id=$id");  
     
    $titolimysql_fetch_row($ricerca);  
    print 
    "<a href=#>$titoli[0]</a>"

    Il risultato in questo modo è un unico blocco di titoli, tutti appiccicati e sulla stessa riga che formano un unico lungo link.

    Come puedo far?
    Go to him now, he calls you, you can't refuse
    When you got nothing, you got nothing to lose
    You're invisible now, you got no secrets to conceal.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Codice PHP:
    $ricercamysql_query("SELECT titolo FROM testi");
    while(
    $row mysql_fetch_array($ricerca)) {
        echo 
    '[url="$row[0]"]' $row[0] . '[/url]
    '
    ;

    Ovviamente le pagine sulle quali andare devono avere indirizzo "titolo_libro.html", se invece fai una pagina unica in php alla quale passare il titolo del libro e poi questa costriurà il risultato prelevando altri dati dal db, nel while potresti mettere una cosa così
    Codice PHP:
    echo '<a href=libro.php?titolo="$row[0]">' $row[0] . '</a>
    '

    quindi passando come parametro GET il titolo del libro.

  3. #3
    Grazie, it works.
    Avevo risolto con l'order by.
    Non ho molto ben capito come funziona questo fetch_array, ma fa niente: l'importante è che vada.

    Codice PHP:
    $result mysql_query("SELECT * FROM testi ORDER BY id");

    while(
    $row mysql_fetch_array($result))
      {
     
    $link$row['titolo']; 
     echo 
    "<a href=$link>$link</a>";
      
      } 
    Go to him now, he calls you, you can't refuse
    When you got nothing, you got nothing to lose
    You're invisible now, you got no secrets to conceal.

  4. #4
    tieni, copiato dal manuale di php on line e tradotto con google, quindi non in italiano correttissimo, se hai dubbi e capisci l'inglese qui trovi tutte le risposte^^
    http://php.net/manual/en/function.mysql-fetch-array.php


    [Cito]
    Restituisce un array di stringhe che corrisponde alla riga caricata o FALSE se non ci sono più righe. The type of returned array depends on how result_type is defined. Il tipo di matrice restituita result_type dipende da come è definito. By using MYSQL_BOTH (default), you'll get an array with both associative and number indices. Utilizzando MYSQL_BOTH (default), si otterrà un array associativo con entrambi gli indici e numeri. Using MYSQL_ASSOC , you only get associative indices (as mysql_fetch_assoc() works), using MYSQL_NUM , you only get number indices (as mysql_fetch_row() works). Usando MYSQL_ASSOC, si ottiene solo gli indici associativi (come mysql_fetch_assoc () funziona), utilizzando MYSQL_NUM, si ottiene solo il numero degli indici (come mysql_fetch_row () funziona).

    If two or more columns of the result have the same field names, the last column will take precedence. Se due o più colonne del risultato hanno gli stessi nomi di campo, l'ultima colonna avrà la precedenza. To access the other column(s) of the same name, you must use the numeric index of the column or make an alias for the column. Per accedere alle altre colonne (s) con lo stesso nome, si deve usare l'indice numerico della colonna o creare un alias per la colonna. For aliased columns, you cannot access the contents with the original column name. Per le colonne alias, non è possibile accedere ai contenuti con il nome della colonna originale.
    [/CITO]

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Originariamente inviato da Orfeo93
    ...
    Codice PHP:
    $result mysql_query("SELECT * FROM testi ORDER BY id");

    while(
    $row mysql_fetch_array($result))
      {
     
    $link$row['titolo']; 
     echo 
    "<a href=$link>$link</a>";
      
      } 
    Non ti servono 2 righe nel while, ne basta una sola

    Codice PHP:
    $result mysql_query("SELECT * FROM testi ORDER BY id");

    while(
    $row mysql_fetch_array($result)) {
      echo 
    "<a href=$row['titolo']>$row['titolo']</a>";  


  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Originariamente inviato da Alhazred
    Non ti servono 2 righe nel while, ne basta una sola

    Codice PHP:
    $result mysql_query("SELECT * FROM testi ORDER BY id");

    while(
    $row mysql_fetch_array($result)) {
      echo 
    "<a href=$row['titolo']>$row['titolo']</a>";  

    vorrai dire....

    echo "<a href={$row['titolo']}>{$row['titolo']}</a>";
    oppure
    echo "<a href=$row[titolo]>$row[titolo]</a>";
    ma non
    echo "<a href=$row['titolo']>$row['titolo']</a>";


  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Originariamente inviato da zacca94
    vorrai dire....

    echo "<a href={$row['titolo']}>{$row['titolo']}</a>";
    oppure
    echo "<a href=$row[titolo]>$row[titolo]</a>";
    ma non
    echo "<a href=$row['titolo']>$row['titolo']</a>";

    d'oh!
    Hai ragione, non ho guardato la composizione della stringa... manca anche il
    o altro tipo di spaziatura alla fine, così com'è viene tutto appiccicato.

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.