Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Ricerca su due tabelle

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    314

    Ricerca su due tabelle

    salve

    ho la seguente query
    Codice PHP:
    $query "SELECT * FROM tabella_news WHERE testo LIKE '%$cerca%' OR titolo LIKE '%$cerca%' OR data LIKE '%$cerca%'";
    $risultato mysql_query($query) or die (mysql_error());
    $risposta mysql_query($query) or die ("Utilizza termini più specifici!");
    $dentro_la_querymysql_fetch_assoc($risposta);
    if ( 
    $dentro_la_query == TRUE ) {
    while(
    $rowmysql_fetch_assoc($risultato)) {
    $titolo $row['titolo'];
    $testo $row['testo'];
    $data $row['data'];
    $id $row['id'];
    // stampiamo i nostri dati
    echo "Titolo: $titolo
    "
    ;
    echo 
    "Data : $data
    "
    ;
    echo 
    "Testo : $testo
    "
    ;

    Vorrei, con la stessa query, effettuare la ricerca anche su una seconda tabella chiamata articoli, che contiene dei campi con lo stesso nome, tipo titolo e data.
    Come si può fare?
    felix

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    314
    felix

  3. #3
    devi usare UNION ( http://www.w3schools.com/sql/sql_union.asp )

    in ogni caso non capisco perchè fai eseguire la query due volte

    $risultato = mysql_query($query) or die (mysql_error());
    $risposta = mysql_query($query) or die ("Utilizza termini più specifici!");

    e poi fai così

    $dentro_la_query= mysql_fetch_assoc($risposta);
    if ( $dentro_la_query == TRUE ) {
    while($row= mysql_fetch_assoc($risultato)) {


    basta semplicemente fare

    Codice PHP:
    $query "SELECT * FROM tabella_news WHERE testo LIKE '%$cerca%' OR titolo LIKE '%$cerca%' OR data LIKE '%$cerca%'"
    $risultato mysql_query($query) or die (mysql_error()); 
    while( list(
    $id,$titolo,$testo,$data) = mysql_fetch_row($risultato) ) {  
    // stampiamo i nostri dati 
    echo "Titolo: $titolo
    "

    echo 
    "Data : $data
    "

    echo 
    "Testo : $testo
    "


    eventualmente l'ordine di list($id,$titolo,$testo,$data) è da modificare in base alla reale disposizione dei campi nella tabella

    oppure avresti potuto semplicemente fare ( se vuoi comunque tenere mysql_fetch_assoc )

    Codice PHP:
    echo "Titolo: ".$row['titolo']."
    "

    echo 
    "Data : ".$row['data']."
    "

    echo 
    "Testo : ".$row['testo']."
    "


  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Chiedi (o fatti spostare) nella sezione database, il fatto che tu sti usando php non toglie che a te ciò che realmente serve è una query MySQL.

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.