Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    5

    Problema print di valori di un'array

    ciao a tutti,

    Ho da pochi giorni conosciuto PHP e mi sono messo in testa 1000 progetti, ma... ma subito ho avuto qualche problema, soprattutto quello che vi posto qui, dopo averle provate tutte (o quasi, spero...).

    Ho fatto una query che estrae 3 campi da 2 tabelle tra loro linkate, ma sembra che contemporaneamente io non possa fare il print di + di un campo solo.

    Ecco il codice:

    $query = "select a.titolo_libro as titolo, b.nome_autore as nome, b.cognome_autore as cognome from libri a, autori b where a.autore_id = b.autore_id";
    $dbResult = mysql_query($query, $db);
    $AffectedRows = mysql_affected_rows($db);

    print("
    Numero di record trovati = $AffectedRows
    ");
    print ("
    ");

    while ($line = mysql_fetch_array($dbResult))

    print "Titolo: $line[titolo]
    ";
    print "Nome: $line[nome]
    ";
    print "Cognome: $line[cognome]
    ";

    $numero_elementi = count($line);
    print $numero_elementi;

    mysql_free_result($dbResult);


    Il problema e' che il primo print (Titolo) funziona, gli altri 2 no. Ho provato anche ad invertire l'ordine di print, ma il fatto e' che mi stampa sempre e comunque un solo campo, gli altri 2 li ignora.

    Altra cosa: il valore del count mi da 1: non dovrebbero essere 3? Non conta il numero degli elementi dell'array?

    Che cosa/dove sto sbagliando? :master:

    Help!
    Grazie
    Luke

  2. #2
    Dovresti mettere qualche parentesi graffa del while, in quel modo ti esegue solo la riga successiva
    codice:
    $query = "select a.titolo_libro as titolo, b.nome_autore as nome, b.cognome_autore as cognome from libri a, autori b where a.autore_id = b.autore_id"; 
    $dbResult = mysql_query($query, $db); 
    $AffectedRows = mysql_affected_rows($db); 
    
    print("
     Numero di record trovati =  $AffectedRows 
    "); 
    print ("
    "); 
    
    while ($line = mysql_fetch_array($dbResult)) {
    
    print "Titolo: $line[titolo]
    "; 
    print "Nome: $line[nome]
    "; 
    print "Cognome: $line[cognome]
    "; 
    }
    $numero_elementi = count($line); 
    print $numero_elementi; 
    
    mysql_free_result($dbResult);

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    con SELECT devi usare mysql_num_rows per contare le righe estratte, e non mysql_affected_row buono per INSERT-UPDATE-DELETE.

    Count conta il numero di presenze in un array, presenze (n. 3 campi) che in questo caso sono legate all'ultima tupla estratta. Non si riferisce al numero delle righe stampate.


  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    5

    grazie

    grazie per l'aiuto, era proprio un'errore banale...

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.