Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema con inner join: pagina bianca

    due tabelle:
    codice:
    mysql> desc utenti;
    +-----------+-----------------+------+-----+---------+----------------+
    | Field     | Type            | Null | Key | Default | Extra          |
    +-----------+-----------------+------+-----+---------+----------------+
    | id        | int(11)         | NO   | PRI | NULL    | auto_increment |
    | nome      | varchar(20)     | NO   |     | NULL    |                |
    | password  | varchar(20)     | NO   |     | NULL    |                |
    | email     | varchar(20)     | NO   |     | NULL    |                |
    | eta       | int(2) unsigned | YES  |     | NULL    |                |
    | residenza | varchar(100)    | YES  |     | NULL    |                |
    +-----------+-----------------+------+-----+---------+----------------+
    6 rows in set (0.00 sec)
    
    mysql> desc articoli;
    +-----------+-------------+------+-----+---------+----------------+
    | Field     | Type        | Null | Key | Default | Extra          |
    +-----------+-------------+------+-----+---------+----------------+
    | id        | int(11)     | NO   | PRI | NULL    | auto_increment |
    | title     | varchar(20) | NO   |     | NULL    |                |
    | sectionid | varchar(10) | NO   |     | NULL    |                |
    | testo     | text        | NO   |     | NULL    |                |
    | data      | datetime    | NO   |     | NULL    |                |
    | datamod   | datetime    | YES  |     | NULL    |                |
    | utente    | varchar(20) | NO   | MUL | NULL    |                |
    +-----------+-------------+------+-----+---------+----------------+
    7 rows in set (0.00 sec)
    la seguente inner join funziona.
    quello che voglio ottenere sono le info di un utente che ha scritto un articolo:
    codice:
    mysql> select nome,email,eta,residenza from utenti inner join articoli on utenti.nome=articoli.utente where nome='prova' group by nome;
    +-------+----------------+------+-----------------+
    | nome  | email          | eta  | residenza       |
    +-------+----------------+------+-----------------+
    | prova | prova@prova.it |   99 | via delle prove |
    +-------+----------------+------+-----------------+
    1 row in set (0.00 sec)
    nella pagina dove mostro gli articoli prelevo il nome utente di chi l'ha scritto.
    quando ci clicco sopra mi si dovrebbe aprire una pagina con tutte le info:
    Codice PHP:
    //news.php
    while ($riga mysql_fetch_array($result)) {
    .....
    echo <<<
    INFOUTENTI 
        
    <div>Creatore: [url="info_utenti.php?info=$riga[6]"]$riga[6][/url]</div>
    ....
    }
    INFOUTENTI
    Codice PHP:
    //info_utenti.php
    <?php

    include 'header.php';
    include_once 
    'config.php';
    $info $_GET['info'];
    $query "select nome,email,eta,residenza from utenti inner join articoli on utenti.nome=articoli.utente where nome='. $info .'group by nome;";
    $result mysql_query($query$link) or die(mysql_error($link));
    while (
    $riga mysql_fetch_assoc($result)) {
        echo 
    '<div>Nome: ' $riga['nome'] . '</div>';
        echo 
    '<div>Email: ' $riga['email'] . '</div>';
        echo 
    '<div>Eta: ' $riga['eta'] . '</div>';
        echo 
    '<div>Residenza: ' $riga['residenza'] . '</div>';
        echo 
    '<div>' $riga['testo'] . '</div></br>';
    //    echo '[url="modifica.php?id=' . $riga['id'] . '"]Modifica[/url]';
        
    echo '<hr />';
    }
    ?>
    quando clicco sul link l'url della pagina mi sembra giusto:
    http://localhost/Articoli/info_utenti.php?info=prova
    come se la mettessi a mano.
    però la pagina rimane bianca.

  2. #2
    ovviamente ci sbatto la testa un'ora e mezza senza venirne a capo e appena scrivo qui trovo la soluzione.
    sono i due punti sulla query.
    ciauz!

  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Ci sono un paio di cose che mi sfuggono

    1) perché usi il nome utente come chiave esterna invece dell'id?
    2) cos'è quel $riga[6] nella pagina news.php?

  4. #4
    Originariamente inviato da luca200
    Ci sono un paio di cose che mi sfuggono

    1) perché usi il nome utente come chiave esterna invece dell'id?
    2) cos'è quel $riga[6] nella pagina news.php?
    ciao ti risp subito:

    1) in verità nn ho chiavi esterne.
    nn ho fatto progettazione del db in quanto è creato solo per scopo didattico e molte cose le ho fatte dopo averlo creato.
    magari un giorno lo sistemo per bene.

    2) ho messo $riga[6] al posto di $riga['utente'] per quell'apice singolo mi dava errore e nn ruiuscivo a sistemarlo.
    infatti l'ho anche rinchiuso in un heredoc del quale in genere nn faccio uso.
    qualche dritta??

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.