Visualizzazione risultati 1 fino 16 di 16

Discussione: Problema con While(), dati estratti da database e variabili

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito Problema con While(), dati estratti da database e variabili

    Salve,
    probabilmente il titolo è errato ma non mi veniva altro in mente, comunque ecco il problema:

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <?php
    include('mysql.php');

    $sql = mysql_query("SELECT campo1, campo2 FROM tabella WHERE id = '$id' AND campo3 = '$tre' AND campo5 = '$cinque'");
    while(
    $a = mysql_fetch_array($sql)){
    $campo = $a[campo1];
    $campo2 = $a[campo2];
    }
    ?>
    <head>
    <title><?php echo $campo ?> &bull; <?php echo $campo2; ?></title>
    [ ... ]

    <body>
    Campo 1: <?php echo $campo; ?>
    Campo 2: <?php echo $campo2; ?>
    </body>
    Il problema e che la variabile se stampata nel tag title funziona, nel body no. Come mai? Come posso risolvere?

    N.B. Se il codice è questo:
    [php]
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <?php
    include('mysql.php');

    $sql = mysql_query("SELECT campo1, campo2 FROM tabella WHERE id = '$id' AND campo3 = '$tre' AND campo5 = '$cinque'");
    while(
    $a = mysql_fetch_array($sql)){
    $campo = $a[campo1];
    $campo2 = $a[campo2]; ?>
    <head>
    <title><?php echo $campo ?> &bull; <?php echo $campo2; ?></title>
    </head>

    <body>
    Campo 1: <?php echo $campo; ?>
    Campo 2: <?php echo $campo2; ?>
    </body>
    <?php } ?>
    </html>
    Mi viene mostrata una pagina completamente bianca.
    Ultima modifica di miki92 : 23-10-2008 alle ore 17.51.25
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    Guest

    Predefinito

    Posta per intero il sorgente.


    Ciao!

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Ehm il codice completo è questo:
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <?php
    include('mysql.php');

    $id = $_GET['id'];
    $tre = $_GET['tre'];
    $cinque = $_GET['cinque'];

    $sql = mysql_query("SELECT campo1, campo2 FROM tabella WHERE id = '$id' AND campo3 = '$tre' AND campo5 = '$cinque'");
    while(
    $a = mysql_fetch_array($sql)){
    $campo = $a[campo1];
    $campo2 = $a[campo2]; ?>
    <head>
    <title><?php echo $campo; ?> &bull; <?php echo $campo2; ?></title>
    </head>

    <body>
    Campo 1: <?php echo $campo; ?>
    Campo 2: <?php echo $campo2; ?>
    </body>
    <?php } ?>
    </html>
    Ultima modifica di miki92 : 23-10-2008 alle ore 20.35.17
    Apprezzi l'aiuto? Offrimi un caffè!

  4. #4
    Guest

    Predefinito

    Gli indici degli array sottoforma di stringa bisogna racchiuderli con delle virgolette o apici.
    Ma poi, quel while è sbagliato: se devi estrarre un singolo record, non ti serve il ciclo, se invece c'è la possibilità di estrarre più record, non puoi moltiplicare i tag head e title.
    MAnca anche un punto e virgola dopo la variabile $campo


    ciao!

  5. #5
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Così nemmeno funziona, cioè nel tag title si vedono le variabili mentre nel body no:
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <?php
    include('mysql.php');

    $id = $_GET['id'];
    $tre = $_GET['tre'];
    $cinque = $_GET['cinque'];

    $sql = mysql_query("SELECT campo1, campo2 FROM tabella WHERE id = '$id' AND campo3 = '$tre' AND campo5 = '$cinque'");
    while(
    $a = mysql_fetch_array($sql)){
    $campo = $a[campo1];
    $campo2 = $a[campo2]; }?>
    <head>
    <title><?php echo $campo; ?> &bull; <?php echo $campo2; ?></title>
    </head>

    <body>
    Campo 1: <?php echo $campo; ?>
    Campo 2: <?php echo $campo2; ?>
    </body>
    </html>
    Per apici e stringhe non credo che sbaglio dato che questi sono i codici che utilizzo in tutto il sito e che funzionano sempre.
    Apprezzi l'aiuto? Offrimi un caffè!

  6. #6
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Prova ad usare questo:

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <?php
    include('mysql.php');

    $id = $_GET['id'];
    $tre = $_GET['tre'];
    $cinque = $_GET['cinque'];

    $sql = mysql_query("SELECT campo1, campo2 FROM tabella WHERE id = '$id' AND campo3 = '$tre' AND campo5 = '$cinque'");
    $a = mysql_fetch_assoc($sql);
    $campo = $a['campo1'];
    $campo2 = $a['campo2']; ?>
    <head>
    <title><?php echo $campo; ?> &bull; <?php echo $campo2; ?></title>
    </head>

    <body>
    Campo 1: <?php echo $campo; ?>
    Campo 2: <?php echo $campo2; ?>
    </body>
    </html>
    Ovviamente prima ti devi assicurare che nel database esista una riga dove id sia $id, campo3 sia $campo3 e campo5 sia $campo5, cioè la condizione se si verifica la query.




    Facci sapere,
    foreach
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  7. #7
    Guest

    Predefinito

    Sembra tutto giusto. Puoi riportare l'html generato dallo script?


    Ciao!

  8. #8
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Con
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <?php
    include('mysql.php');

    $id = $_GET['id'];
    $tre = $_GET['tre'];
    $cinque = $_GET['cinque'];

    $sql = mysql_query("SELECT campo1, campo2 FROM tabella WHERE id = '$id' AND campo3 = '$tre' AND campo5 = '$cinque'");
    while(
    $a = mysql_fetch_array($sql)){
    $campo = $a[campo1];
    $campo2 = $a[campo2]; }?>
    <head>
    <title><?php echo $campo; ?> &bull; <?php echo $campo2; ?></title>
    </head>

    <body>
    Campo 1: <?php echo $campo; ?>
    Campo 2: <?php echo $campo2; ?>
    </body>
    </html>
    Vedo
    Codice HTML:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
    <html xmlns="http://www.w3.org/1999/xhtml">   
    
    <head>   
    <title>Titolo &bull; Sottotitolo</title>   
    </head>   
    
    <body>   
    Campo 1:  
    Campo 2:   
    </body>   
    </html>
    Con
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <?php
    include('mysql.php');

    $id = $_GET['id'];
    $tre = $_GET['tre'];
    $cinque = $_GET['cinque'];

    $sql = mysql_query("SELECT campo1, campo2 FROM tabella WHERE id = '$id' AND campo3 = '$tre' AND campo5 = '$cinque'");
    while(
    $a = mysql_fetch_array($sql)){
    $campo = $a[campo1];
    $campo2 = $a[campo2]; ?>
    <head>
    <title><?php echo $campo; ?> &bull; <?php echo $campo2; ?></title>
    </head>

    <body>
    Campo 1: <?php echo $campo; ?>
    Campo 2: <?php echo $campo2; ?>
    </body>
    <?php } ?>
    </html>
    Vedo
    Codice HTML:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    </html>
    @foreach il tuo codice mi visualizza lo stesso mio primo risultato postato in questo post.
    Apprezzi l'aiuto? Offrimi un caffè!

  9. #9
    Guest

    Predefinito

    Ho provato il tuo primo script senza la query (impostando le due variabili a mano) e funziona.


    Ciao!

  10. #10
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Ho appena provato come dici tu, commentato la query, while ecc ed ho scritto le variabili io, sembrerebbero funzionare. A campo 1 e campo 2 esce scritto ciò che io inserisco nella variabile...
    Apprezzi l'aiuto? Offrimi un caffè!

  11. #11
    Guest

    Predefinito

    Bho, prova come io sono convinto che si debba scrivere, cioè con gli apici per le chiavi degli array:

    $a['campo1'];


    Ciao!

  12. #12
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Sei sicuro che la query così costruita estragga almeno un record dal database (ovvero, le condizioni in WHERE sono tali da permettere ad almeno un record di soddisfarle tutte)? L'"errore" sembrerebbe quello...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  13. #13
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    @debug Si ho provato sotto tuo suggerimento e come mostrato da foreach ma non funziona comunque.

    @dementialsite La stessa query eseguita in phpMyAdmin (naturalmente sostituendo alle varibili il loro contenuto) funziona, mi mostra solo una righa quella dove campo1 è uguale a "tre" e campo2 è uguale a "cinque"...
    Apprezzi l'aiuto? Offrimi un caffè!

  14. #14
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    come sempre questi thread si dilungano inutilmente, perché le risposte sono "non funziona".

    Primo, metti la pagina online, così tutti possiamo verificare se non funziona; secondo aggiungi error_reporting(E_ALL); in cima al codice

  15. #15
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    magari può essere la connessione al database mal configurata.
    posta tutto il codice, compreso mysql.php, il contenuto dei record e come gli passii valori.
    ciao
    Ultima modifica di Xsescott : 25-10-2008 alle ore 04.38.43
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  16. #16
    Guest

    Predefinito

    credo che l'errore consista nel fatto che associare nel while mysql_fetch_array() ad una variabile in questo caso $a, comporti come risultato un indice dell'array e non l'array stesso.
    Codice PHP:
    while($a = mysql_fetch_array($sql))
    {
    $campo = $a;
    }
    ma così $campo verrebbe ovviamente sovrascitto, pertanto dovresti utilizzare un array per recuperare i valori.
    Codice PHP:
    $i = 0;
    while(
    $a = mysql_fetch_array($sql))
    {
    $campo[$i] = $a;
    $i++;
    }
    Ultima modifica di dreadnaut : 25-10-2008 alle ore 18.30.06 Motivo: + tag [php]

Regole di scrittura

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