Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323

    problema query con inner join

    salve, ho questa query:

    codice:
    SELECT post_categories.title as _title, users.username as _username, post.*, DATE_FORMAT(post.data_reg,'%d/%M/%Y ore %H:%i') as 'data_it' FROM users        INNER JOIN post 
              ON users.id = post.id_users INNER JOIN post_categories 
              ON post_categories.id = post.id_categories
              INNER JOIN tags ON tags.id = post_tags.id_tags
              WHERE post_tags.id_tags='".$tags_id."' and post.active=1 order by data_reg desc
    che non funziona mi da errore:
    codice:
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'post_tags.id_tags' in 'where clause'' in /media/dati/www/site/lib/class-pager.php:33 Stack trace: #0 /media/dati/www/site/lib/class-pager.php(33): PDO->query('SELECT post_cat...') #1 /media/dati/www/site/tags.php(45): Pager->query('SELECT post_cat...', 100, '') #2 {main} thrown in/media/dati/www/site/lib/class-pager.php on line 33

    queste sono le mie tabelle:
    codice:
    
    
      CREATE TABLE `post_tags` (
      `id` bigint(11) NOT NULL auto_increment,
      `id_tags` bigint,
      `id_news` bigint,
      `data_reg` datetime,
      `_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
       PRIMARY KEY  (`id`))  ENGINE = MyISAM DEFAULT CHARSET=utf8;
    
    
      CREATE TABLE `tags` (
      `id` bigint(11) NOT NULL auto_increment,
      `name` varchar(255) unique,
      `data_reg` datetime,
      `_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
       PRIMARY KEY  (`id`))  ENGINE = MyISAM DEFAULT CHARSET=utf8;
    il mio url è cosi:
    codice:
    http://localhost/site/tags.php?tags_id=1&tags_name=Video
    e deve selezionarmi tutte le news che hanno il tag id 1 etc..

    come si risolve il problema?

    grazie mille.

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Ma la query eseguita fuori dal PHP sei sicuro che funzioni?

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Nella query non c'è la tabella post_tags.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    ok dove devo metterla?

    io ho seguito questa guida:
    http://it.wikipedia.org/wiki/Join_(SQL)
    grazie.

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Non lo so. Dipende da quello che vuoi fare. La query, l'hai scritta tu o l'hai presa da qualche parte ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Non lo so. Dipende da quello che vuoi fare. La query, l'hai scritta tu o l'hai presa da qualche parte ?
    si lo fatta io.. e lo presa a da quella pagina che ti ho linkato e capendo l'aggiunta di altre tabelle..

    l'unico ho problema che ho provato ad fare post_tags.*

    ma ricevo un'altro nome:
    codice:
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S02]: Base table or view not found: 1051 Unknown table 'post_tags'' in /media/dati/www/site/lib/class-pager.php:33 Stack trace: #0 /media/dati/www/site/lib/class-pager.php(33): PDO->query('SELECT post_cat...') #1 /media/dati/www/site/tags.php(45): Pager->query('SELECT post_cat...', 100, '') #2 {main} thrown in/media/dati/www/site/lib/class-pager.php on line 33
    errore:
    Unknown table 'post_tags''

    perché non me la prende?

    grazie mille.

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Nella tua query fai riferimento alla tabella post_tags nella clausola where. Questa deve essere presente sia nel from sia negli inner join.

    Dovresti studiare l'sql cominciando dalle basi.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Nella tua query fai riferimento alla tabella post_tags nella clausola where. Questa deve essere presente sia nel from sia negli inner join.

    Dovresti studiare l'sql cominciando dalle basi.
    ok, allora perché questa che lo fatta da quella guida di wikipedia..
    funziona?
    codice:
    SELECT post_categories.title as _title, users.username as _username, post.*, DATE_FORMAT(post.data_reg,'%d/%M/%Y ore %H:%i') as 'data_it' FROM users        INNER JOIN post 
              ON users.id = post.id_users INNER JOIN post_categories 
              ON post_categories.id = post.id_categories WHERE post.id_categories='".$id_categories."' and post.active=1 order by data_reg desc
    ed ora ho aggiunto solo un'altro inner join ed ho messo: post_tags.*, tags.*
    non funziona?

    mi dici come devo risolvere il problema? e poi dopo rido la lettura di sql.

    grazie mille.

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    scusa, ma non riesco ad formattare il codice sul forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    nessuno sa come risolvere il problema..

    ma non riesco ad capire perché mettendo un'altra inner join mi dia quelli problemi li.
    ed invece se ritorno come era prima. (Esempio postato nell'ultima discussione), funziona .. come mai ?

    grazie mille.

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.