Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problema con join

  1. #1

    Problema con join

    Ciao in un sito che sto facendo permetto agli utenti di scrivere degli articoli e di selezionare la categoria degli articoli
    Ho,quindi,2 tabelle:
    Tabella categorie
    id id_articolo categoria

    Tabella articoli
    id_articolo username email_address titolo data testo

    Quando scrivo un articolo,questo viene memorizzato nella tabella articoli e l'id_articolo, viene memorizzato nella tabella categorie insieme alla categoria di appartanenza [1,2,3]

    Come faccio ad unire queste due tabelle in modo tale da selezionare solo gli articoli che hanno come categoria 3?

    Avevo provato con questa query

    Codice PHP:

    $sql 
    "SELECT id_articolo,categoria 
    AS id_articolo,username,email_address,titolo,data,testo FROM categorie LEFT JOIN articoli ON categorie.id_articolo = articoli.id_articolo  ORDER BY id_articolo  "

    ma nn funziona come posso fare?

    grazie

  2. #2
    Risolto così

    $sql=" SELECT c.*,a.* FROM categorie c JOIN articoli a ON c.id_articolo=a.id_articolo WHERE categoria='3'";

  3. #3
    Utente di HTML.it L'avatar di aserena
    Registrato dal
    Feb 2003
    Messaggi
    310
    In linea di max sbagli qui 'categoria
    AS id_articolo' --> hai già un campo con quel nome, perchè ci crei un alias con lo stesso nome? Poi, quando hai due campi con lo stesso nome (categorie.id_articolo, articoli.id_articolo) è consigliabile richiamarli specificando il nome della tabella di appartenenza, per evitare duplicati. Prova così

    $sql = "SELECT categorie.id_articolo, categoria, username, email_address, titolo, data, testo FROM categorie LEFT JOIN articoli ON categorie.id_articolo = articoli.id_articolo ORDER BY categorie.id_articolo ";

    In ogni caso, se hai phpmyadmin ti consiglio di provarci le query, vedi subito il risultato ottenuto.

    Ciao
    La (!) è quella roba che in autunno si intristisce... perche': seccano i piselli, migrano gli uccelli, cadono i marroni, e se poi c'è anche la nebbia non si vede più un caXXo!! by Piero.mac @07/05

  4. #4
    Ragazzi ho dei problemi per quanto riguarda la paginazione dei risultati!!!

    Questo è il codice che uso...
    Codice PHP:

    include "database.php";
    $conn mysql_connect ($Host$User$Password) or die("impossibile connettersi al database");
    $TableName="articoli";

    //###############-- Inizio dello script per la paginazione--##################

    //Verifico la connessione e se nn riesco a connettermi spunta il messaggio di errore
    mysql_select_db ($DBName $conn) or die ("impossibile selezionare il database");

    $sql "SELECT 1 FROM $TableName where 1"


    $query mysql_query($sql) or die("impossibile eseguire query: $sql");
    $num_news mysql_num_rows($query);
    $num_pages = ($num_news 3) > ? (int)($num_news 1) : (int)($num_news 3);

    if (!isset(
    $_GET['page']) || !is_numeric($_GET['page']) || !$_GET['page'] || $_GET['page'] < ) {
       
    $_GET['page'] = 1;
    }
    if (
    $_GET['page'] > $num_pages) {
       
    $_GET['page'] = $num_pages;
    }
    if (
    $_GET['page'] < $num_pages) {
       if (
    $_GET['page'] != 1) {
           
    $next_page " - ";
       }
       
    $next_page .= "<a href=\"{$_SERVER['PHP_SELF']}?page=".($_GET['page'] + 1)."\" >next</a>";
    }
    if (
    $_GET['page'] > 1) {
       
    $previous_page "<a href=\"{$_SERVER['PHP_SELF']}?page=".($_GET['page'] - 1)."\" >prev</a>";
    }
    $link "<center>$previous_page $next_page</center>";




    $sql "SELECT categorie.id_articolo, categoria, username, email_address, titolo, data, testo FROM categorie LEFT JOIN articoli ON categorie.id_articolo = articoli.id_articolo ORDER BY categorie.id_articolo DESC LIMIT ".(($_GET['page'] - 1) * 3).", 3"

    @
    $query mysql_query($sql) or die("impossibile eseguire query:$sql");
    //conto il numero di righe presenti nel database e se nn è presente nessuna riga stampo il messaggio di errore


    $rowsmysql_num_rows ($query);

    if (
    $rows) {
    }
    else {
    echo 
    "<div align=center>Nessuna news presente nel database</div>";
    }
    while (
    $Row mysql_fetch_array ($query)) {
     
    $testo="$Row[testo]";
     
    define("CHECK_RICHIESTA","1");
    require 
    "formatta_testo.php"
    Seleziona 3 risultati su 4 però non crea i link prev e next!!!
    Come posso fare? grazie

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.