Visualizzazione dei risultati da 1 a 4 su 4

Discussione: query PHP parametrica

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    5

    query PHP parametrica

    Ciao a tutti,

    vi chiederei un aiuto, premetto che sono una principiante:
    sto cercando di fare una query parametrica che ha nella condizione WHERE una variabile di sessione (sel_id1), di seguito il codice:

    $colname_sel_bacheca = "-1";
    if (isset($_SESSION[sel_id1])) {
    $colname_sel_bacheca = $_SESSION[sel_id1];
    }
    mysql_select_db($database_condividiamo, $condividiamo);
    $query_sel_bacheca = "SELECT * FROM BACHECA WHERE id_categoria1 = '$colname_sel_bacheca'";
    $sel_bacheca = mysql_query($query_sel_bacheca, $condividiamo) or die(mysql_error());
    $row_sel_bacheca = mysql_fetch_assoc($sel_bacheca);
    $totalRows_sel_bacheca = mysql_num_rows($sel_bacheca);
    ?>

    <?php do { ?>
    <tr>
    <td ><?php echo $row_sel_bacheca['DESCRIZIONE']; ?> </td>

    </tr>
    <?php } while ( $row_sel_bacheca = mysql_fetch_assoc($sel_bacheca)); ?>

    La query funziona ma vengono presi i record in cui compare ad esempio il numero 2 in una qualsiasi delle colonne e non soltanto in quella DESCRIZIONE, come dovrebbe essere.

    Cosa sto sbagliando?

    Grazie molte per l'aiuto!!!!
    Isabella

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    "SELECT * FROM BACHECA WHERE id_categoria1 = '$colname_sel_bacheca'";

    questa query dice: prendi tutti i record in cui id_categoria1 è pari a $colname_sel_bacheca'

    non specifica alcuna condizione su una colonna "descrizione", tale colonna non viene controllata.
    Se vuoi che oltre a controllare id_categoria1, controlli anche la colonna descrizione devi aggiungere:
    AND descrizione = '$variabile_col_valore_che_cerchi'
    questo se il contenuto di descrizione deve essere esattamente ciò che c'è nella variabile.

    Se invece oltre a ciò che contiene la variabile ci può essere altro devi usare:
    AND descrizione LIKE '%$variabile_col_valore_che_cerchi%'

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    5
    Si hai ragione: a me basta il controllo su id_categoria1 = '$colname_sel_bacheca'.
    La query mi dovrebbe dare il campo DESCRIZIONE appartenente al record in cui id_categoria1 è ad esempio =2.

    Il problema è che mi dà indietro ad esempio 3 record:
    in un record il numero 2 è nella colonna id_categoria1 (quindi è esatto)
    in un record il numero 2 è nella colonna id_categoria2
    in un record il numero 2 è in id_categoria3, perché id_categoria3 è uguale a 12

    Spero di essermi spiegata, non è facile...

    Ho pensato che possa dipendere dal formato in quanto si tratta di un numero, ma non capisco perché cerca quel numero in qualsiasi campo e non esclusivamente in id_categoria1 ed inoltre non và a prendere solo il 2 ma anche campi in cui c'è 12 o 62.

    Grazie ancora!

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    5
    Ciao,
    sto continuando a cercare soluzioni al mio problema ma non riesco ad arrivare ad una conclusione!!! Anzi mi sembrava di aver risolto ma sono ripiombata nel baratro!
    Chiedo scusa se non sono chiara nell' illustrare la situazione, chiedimi pure altre info se non si capisce...
    provo a ridefinire il problema:

    ho fatto una tabella dinamica (desiderataTAB)i cui dati derivano da una query filtrata con variabile di sessione USERNAME. E fino a qui tutto ok.

    IL problema è che:
    Vorrei aggiungere ad ogni record una sotto-tabella (desiderata_bacheca), se posso chiamarla così, i cui dati provengano da una query che viene filtrata da un campo della tabella precedente.

    Cosa sbaglio?
    Grazie infinite per l'aiuto!!!

    Di seguito il codice:

    $colname_desiderataTAB = "-1";
    if (isset($_SESSION['MM_Username'])) {
    $colname_desiderataTAB = $_SESSION['MM_Username'];
    }
    mysql_select_db($database_condividiamo, $condividiamo);
    $query_desiderataTAB = sprintf("SELECT * FROM desiderata_dettaglio_nomi WHERE USERNAME = %s ORDER BY `DATA` DESC", GetSQLValueString($colname_desiderataTAB, "text"));
    $desiderataTAB = mysql_query($query_desiderataTAB, $condividiamo) or die(mysql_error());
    $row_desiderataTAB = mysql_fetch_assoc($desiderataTAB);
    $totalRows_desiderataTAB = mysql_num_rows($desiderataTAB);


    $colname_desiderata_bacheca = "-1";
    if (isset($_SESSION['sel_id3'])) {
    $colname_desiderata_bacheca = $_SESSION['sel_id3'];
    $_SESSION['sel_id3'] = $row_desiderataTAB['ID3'];
    }

    mysql_select_db($database_condividiamo, $condividiamo);
    $query_desiderata_bacheca = sprintf("SELECT * FROM BACHECA WHERE id_categoria3 = %s", GetSQLValueString($colname_desiderata_bacheca, "int"));
    $desiderata_bacheca = mysql_query($query_desiderata_bacheca, $condividiamo) or die(mysql_error());
    $row_desiderata_bacheca = mysql_fetch_assoc($desiderata_bacheca);
    $totalRows_desiderata_bacheca = mysql_num_rows($desiderata_bacheca);

    ?>


    <table border="1">
    <tr>
    <td>ID_DES</td>
    <td>DESCRIZIONE</td>
    <td>USERNAME</td>
    <td>DATA</td>
    <td>TG</td>
    <td>id_ct1</td>
    <td>id_ct2</td>
    <td>id_ct3</td>
    <td>ID1</td>
    <td>nome1</td>
    <td>ID2</td>
    <td>nome2</td>
    <td>ID3</td>
    <td>nome3</td>
    </tr>
    <?php do { ?>
    <tr>
    <td><?php echo $row_desiderataTAB['ID_DES']; ?></td>
    <td><?php echo $row_desiderataTAB['DESCRIZIONE']; ?></td>
    <td><?php echo $row_desiderataTAB['USERNAME']; ?></td>
    <td><?php echo $row_desiderataTAB['DATA']; ?></td>
    <td><?php echo $row_desiderataTAB['TG']; ?></td>
    <td><?php echo $row_desiderataTAB['id_ct1']; ?></td>
    <td><?php echo $row_desiderataTAB['id_ct2']; ?></td>
    <td><?php echo $row_desiderataTAB['id_ct3']; ?></td>
    <td><?php echo $row_desiderataTAB['ID1']; ?></td>
    <td><?php echo $row_desiderataTAB['nome1']; ?></td>
    <td><?php echo $row_desiderataTAB['ID2']; ?></td>
    <td><?php echo $row_desiderataTAB['nome2']; ?></td>
    <td><?php echo $row_desiderataTAB['ID3']; ?></td>
    <td><?php echo $row_desiderataTAB['nome3']; ?></td>
    </tr>

    <?php do { ?>
    <tr>
    <td ><?php echo $row_desiderata_bacheca['DESCRIZIONE']; ?></td>
    <td> <?php echo $row_desiderata_bacheca['id_categoria3']; ?></td>
    <td><?php echo $_SESSION['sel_id3']; ?></td>
    <td><?php echo $row_desiderata_bacheca['ID_BACHECA']; ?></td>
    </tr>
    <?php } while ($row_desiderata_bacheca = mysql_fetch_assoc($desiderata_bacheca)); ?>

    <?php } while ($row_desiderataTAB = mysql_fetch_assoc($desiderataTAB)); ?>
    </table>

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.