Visualizzazione risultati 1 fino 5 di 5

Discussione: visualizzare dati da più tabelle php mysql

  1. #1
    Guest

    Predefinito visualizzare dati da più tabelle php mysql

    ciao a tutti
    ho un problema con questo script. Mi permette di selezionare tramite delle checkbox determinati dati da un db, ma non mi permette di eseguire la query su piu tabelle. Come posso fare?
    qui il codice

    Codice PHP:
    Codice PHP:
    <?php
    $nomeDB
    = "";
    $connessione=@mysql_connect("","","")
    or die (
    "Connessione al Server non possibile.");
    @
    mysql_select_db($nomeDB,$connessione)
    or die (
    "Connessione al DB non possibile.");
    echo
    "<B>Elenco merce</B><br><br>";
    echo
    "<i>Tipo Quantità Prezzo Genere</i><br><br>";
    $q="Select * from tabella";
    $condizione = "";
    if (
    $_POST['c1'] == "colla")
    {
    if (
    $condizione == "" )
    {
    }
    else
    {
    $condizione = $condizione." OR ";
    }
    $condizione = $condizione." genere = 'colla' ";
    }
    if (
    $_POST['c2'] == "mastice")
    {
    if (
    $condizione == "" )
    {
    }
    else
    {
    $condizione = $condizione." OR ";
    }
    $condizione = $condizione." genere = 'mastice' ";
    }
    if (
    $_POST['c3'] == "lama")
    {
    if (
    $condizione == "" )
    {
    }
    else
    {
    $condizione = $condizione." OR ";
    }
    $condizione = $condizione." genere = 'lama' ";
    }
    if (
    $_POST['c4'] == "vernice")
    {
    if (
    $condizione == "" )
    {
    }
    else
    {
    $condizione = $condizione." OR ";
    }
    $condizione = $condizione." genere = 'vernice' ";
    }

    if (
    $condizione <> "" )
    {
    $q = $q." where" .$condizione;
    }
    $id_ris=@mysql_query($q)
    or die (
    "Non è possibile eseguire la query!");
    $num_libri=mysql_num_rows($id_ris);
    // Si sposta sul primo record
    mysql_data_seek($id_ris,0);
    for(
    $i=0; $i<$num_libri; $i++ )
    {
    $record=mysql_fetch_array($id_ris);
    //echo $i;
    //echo ",";
    //echo $record[0];
    //echo ",";
    //echo "&nbsp &nbsp";
    echo "<b>$record[1]";
    echo
    ",";
    echo
    "&nbsp &nbsp";
    echo
    $record[2];
    echo
    ",";
    echo
    "&nbsp &nbsp";
    echo
    $record[3];
    echo
    ",";
    echo
    "&nbsp &nbsp";
    echo
    $record[4];
    echo
    "<br>";
    }
    ?>
    praticamente i checkbox, (presenti in un'altra pagina) una volta selezionati, mi fanno vedere i dati estratti dal db, ma non riesco a farlo su piu tabelle. Ho provato con join ma niente. Qualcuno puo aiutarmi? grazie
    Ultima modifica di darkwolf : 23-12-2011 alle ore 15.30.03 Motivo: +php

  2. #2
    Guest

    Predefinito

    Scusa mi sfugge una cosa: quando dici che non puoi farlo su più tabelle intendi che la non vengono restituiti risultati o che proprio ti viene segnalato un errore nella query di selezione?

    Nella seconda ipotesi, come hai costruito la join?

  3. #3
    Guest

    Predefinito

    ciao
    mi restituisce un errore "non è possibile eseguire la query"
    ho provato
    Codice PHP:
    SELECT tabella1.colla, tabella2.colla FROM tabella1, tabella2 WHERE tabella1.colla = tabella2.colla;
    ho provato anche in altri modi ma niente.
    potrebbe essere che non l'errore sia qui?

    Codice PHP:
    if ( $condizione <> "" )
    {
    $q = $q." where" .$condizione;
    }
    grazie x la risposta
    Ultima modifica di darkwolf : 23-12-2011 alle ore 21.51.40 Motivo: +php

  4. #4
    Guest

    Predefinito

    Bè, la query che fai effettivamente è sbagliata dato che manchi di specificare le colonne che dovrebbero "legare" le due tabelle: invece di
    Codice PHP:
    SELECT tabella1.colla, tabella2.colla FROM tabella1, tabella2 WHERE tabella1.colla = tabella2.colla;
    prova con
    Codice PHP:
    SELECT t1.colla, t2.colla FROM tabella1 t1, tabella2 t2 ON t1.colla=t2.colla
    Scusa la domanda, ma che tipo di dati devi ricavare incrociando queste due tabelle?

  5. #5
    Guest

    Predefinito

    grazie x la risposta
    la query che inserisco è

    SELECT genere.colla, genere.colla FROM tabella1 genere, tabella2 genere ON genere.colla=genere.colla

    dove genere è la colonna e colla il campo, ma non mi da niente, sempre errore.
    i dati sono varchar e le tabelle sono identiche nei campi, cambia solo il nome.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •