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

    query per più tabele separate

    ragazzi, ho scritto questa query:

    $cat = mysql_query("SELECT * FROM $tabEventiNews, $tabConsigli WHERE titolo LIKE '%".$_POST['cerca']."%' ORDER BY ID DESC");

    In pratica il mio intento è richiamare tutti i campi da 2 tabelle differenti, che nel titolo abbiano, in qualunque parte essa si trovi, la parola che arriva con la variabile $_POST['cerca'].

    il fatto è che non funziona, mentre se lascio una tabella si invece.

    dove sbaglio?

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    devi usare una union (mysql >= 4)

    select id,titolo from $tabEventiNews where titolo like '%".$_POST['cerca']."%'
    union
    select id,titolo from $tabConsigli where titolo like '%".$_POST['cerca']."%'

    fai attenzione che le tabelle devono avere lo stesso numero di campi, in caso contrario devi "uniformarle" tramite la query come ho fatto nell'esempio.

  3. #3
    1000 grazie funziona alla grande

  4. #4
    e se voelssi fare un count dei risultati coplessivi di tutte e 2 le tabelle, devo usare lo stesso metodo e poi sommare l'alias dopo? mi spiego meglio con un esmpio:

    mysql_query("SELECT count(ID) AS numeroItem FROM $tabEventiNews WHERE titolo LIKE '%".$_POST['cerca']."%' UNION
    SELECT count(ID) AS numeroItem1 FROM $tabConsigli WHERE titolo LIKE '%".$_POST['cerca']."%'
    ");

    $numNews1 = mysql_fetch_array($numNews);
    $numeroDefinitivo = $numNews1['numeroItem']+$numNews1['numeroItem1']+;

    è sbagliato come ragionamento?

  5. #5
    ho risolto con questo codice e fuziona bene, però amgari si poteva fare tutto con una query.

    $numNews = mysql_query("SELECT count(ID) AS numeroItem FROM $tabEventiNews WHERE titolo LIKE '%".$_POST['cerca']."%'");

    $numNews1 = mysql_fetch_array($numNews);
    $numeroDefinitivo = $numNews1['numeroItem'];

    $numNews1 = mysql_query("SELECT count(ID) AS numeroItem1 FROM $tabConsigli WHERE titolo LIKE '%".$_POST['cerca']."%'");

    $numNews2 = mysql_fetch_array($numNews1);
    $numeroDefinitivo = $numeroDefinitivo+$numNews2['numeroItem1'];

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    dopo che hai fatto la query usi
    http://se.php.net/manual/it/function.mysql-num-rows.php

    per sapere il numero di record.
    oppure fai due query

    select ... from tabella1
    union all
    select ... from tabella2

    e poi esegui una seconda query
    select found_rows() as totale

    e ti restituisce il totale dei record generati dalla precedente union.

  7. #7
    Leggendo sto cercando di capire se posso costruire una query del genere:

    Codice PHP:
    SELECT corriereservizio FROM tabella_corriere WHERE corriere==$_POST['corriere']
    UNION SELECT nazionezona FROM tabella_nazioni WHERE nazione==$_POST['nazione']
    UNION SELECT FROM tabella_costi WHERE peso==$_POST['peso'] AND 
    Quello che vorrei fare dopo quell'END è:
    prendi il contenuto del campo ZONA dalla tabella_nazioni e rendimi solamente quando nella tabella_pesi c'è un CAMPO con il nome uguale.

    Se po fà?

    Grazie.

  8. #8

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.