ciao a tutti, riscrivo l'intervento allegando tutto il codice, visto che non avevo avuto risposta.

sto da giorni tentando di risolvere questa magagna: ho un database con una tabella 'opera' che contiene degli scritti, ho fatto un prodotto cartesiano con la tabella 'utenti' che contiene gli autori degli scritti. Ho fatto una form per effettuare il browsing delle opere per tipo, autore, soggetto e tipologia. Per fare le query ho aggiunto la variabile $aggiunta ad una query base. inizialmente $aggiunta = ""; poi a seconda dei campi secondo cui uno effettua la ricerca cambia valore.

Nonostante abbia più volte ricontrollato, l'unico effetto che la ricerca con questa query produce, per qualsiasi campo io cerchi, è di darmi tutti i valori degli scritti meno il primo. Che può essere?

Grazie a chi mi risponderà.

Codice PHP:
function enum_select($table,$field) {
    
$result=mysql_query("SHOW COLUMNS FROM `$table` LIKE '$field'");
    if(
mysql_num_rows($result)>0){
        
$row=mysql_fetch_row($result);
        
$options=explode("','"preg_replace("/(enum|set)\('(.+?)'\)/","\\2"$row[1]));
        
$options2 = array();
       foreach (
$options as $value) {
            
$options2[] = array(
                
'value' => $value
            
);
        }
        echo 
"

"
;
        
print_r($options2);
    
    foreach (
$options as $value
    echo 
$value;
    
    } else {
        
$options=array();
    }
    return 
$options2;  
}


echo 
"
    <form action=\"?go=scritti\" method=\"POST\">
    
      <h4>cerca per titolo</h4>
    "
;

        echo 
"
        <input type=\"text\" name=\"titolo\" />
        <h4>cerca per autore <span>(inserisci cognome)</span></h4>

        "
;

        echo 
"    
        <input type=\"text\" name=\"autore\" />
        
        [*]
        <h4>cerca per tipologia</h4>
        <select name=\"scegli_tipo\">
        <option></option>
        "
;
        
        
$matrioshka_tipo enum_select("opera","opera_tipo");
         foreach (
$matrioshka_tipo as $array_interno)
            foreach (
$array_interno as $valore)
        if (isset(
$_POST['scegli_tipo']) && $_POST['scegli_tipo'] == $valore)
         echo 
"<option value='{$valore}' selected='selected'>{$valore}</option>";
        else
         echo 
"<option value='{$valore}'>{$valore}</option>";

        echo 
"
        </select>
        <h4>scegli per soggetto</h4>
        <select name=\"scegli_soggetto\">
        <option></option>
        "
;
        
$matrioshka_soggetto enum_select("opera","opera_soggetto");
        foreach (
$matrioshka_soggetto as $array_interno)
            foreach (
$array_interno as $valore2)
        if (isset(
$_POST['scegli_soggetto']) && $_POST['scegli_soggetto'] == $valore2)
            echo 
"<option value='$valore2' selected='selected'>$valore2</option>";
        else
            echo 
"<option value='$valore2'>$valore2</option>";
        echo 
"
        </select>

        <input type=\"submit\" name=\"cerca\" value=\"cerca\">

        </form>    
        "
;

$aggiunta "";

if (isset(
$_POST['cerca'])){

    if (
        (
$_POST['titolo'] == "" && $_POST['autore'] == "" && $_POST['scegli_tipo'] == "" && $_POST['scegli_soggetto'] == "") ||
        (
$_POST['titolo']!= "" && strlen($_POST['titolo']) < 4) || ($_POST['autore']!= "" && strlen($_POST['autore']) < 4)
        )
        echo 
"<div class=\"pren_compl\">non hai inserito neppure un valore valido</div>";
    
    else
        {
        
$sql_cerca_opere mysql_query("
    SELECT *
    FROM     utenti, opera
    WHERE opera_approvazione = 1
    AND utenti_approvazione = 1
    AND opera_autore = utenti_id
    
{$aggiunta}
    ORDER BY opera_id
    "
);
    
    
    
$dati_opere mysql_fetch_array($sql_cerca_opere);

        if (
$_POST['titolo'] != "" && strlen($_POST['titolo']) >= )
            
$aggiunta .= "AND opera_titolo LIKE '%" .ucwords($_POST['titolo']). "%' ";
        
        if (
$_POST['autore'] != "" && strlen($_POST['autore']) >= 4)
            
$aggiunta .= "AND utenti_cognome LIKE '%" .ucwords($_POST['autore']). "%' ";
        
        if (
$_POST['scegli_tipo'] != "")
            
$aggiunta .= "AND opera_tipo = {$_POST["scegli_tipo"]}";
        
        if (
$_POST['scegli_soggetto'] != "")
            
$aggiunta .= "AND opera_soggetto = {$_POST["scegli_soggetto"]}";
    



$conta_righe mysql_num_rows($sql_cerca_opere);

if (
$conta_righe == 0)
    echo 
"Non ci sono risultati presenti nel database";
    
else
    {
        echo 
"
        
<table>
        <tr>
            <th>ID</th><th>foto</th><th>titolo</th><th>autore</th><th>testo</th><th>tipo</th><th>soggetto</th><th>commento</th><th>data</th>
        </tr>
        "
;
    while (
$dati_opere mysql_fetch_array($sql_cerca_opere)){
    
$foto "img_scritti/{$dati_opere["opera_id"]}.jpg";
    
$foto_esiste file_exists($foto);

    
$giorno substr($dati_opere["opera_data"], 82);
    
$mese substr($dati_opere["opera_data"], 52);
    
$anno substr($dati_opere["opera_data"], 04);
    
$data_formatt $giorno."/".$mese."/".$anno;
    
    
$sql_commenti mysql_query("
        SELECT *
        FROM commenti_scritti
        WHERE commenti_opera = 
{$dati_opere["opera_id"]}
        ORDER BY commenti_id
        "
);
    
$dati_commenti mysql_fetch_array($sql_commenti);
    

        echo 
"        
        <tr>
            <td>
{$dati_opere["opera_id"]}</td>        
        <td>        
        "
;
    if (
$foto_esiste)
        echo 
"<a href=\"{$foto}\" rel=\"lightbox\" title=\"{$dati_opere["opera_titolo"]}\"><img class=\"table\" src=\"{$foto}\" alt=\"\" /></a>";
    else
        echo 
"<img class='table' src=\"images/noimg_opere.gif\" alt=\"\" />";
        
        echo 
"</td>";
    

    echo 
"
        <td>
{$dati_opere["opera_titolo"]}</td>    
                <td>
{$dati_opere["utenti_cognome"]}</td>
        <td>"
;

    
$sometext $dati_opere["opera_testo"]; 
    
$lines explode(" "$sometext);
    if (
count($lines) > 14)
    for (
$j=0$j<16$j++)
        echo 
$lines[$j]. " "
    else 
        echo 
$sometext;
    

        echo 
"
        [url='?go=leggi_scritto&amp;id=
{$dati_opere["opera_id"]}']va' al testo completo[/url]</td>
        <td>
{$dati_opere["opera_tipo"]}</td>
        <td>
{$dati_opere["opera_soggetto"]}</td>
        <td>
{$dati_commenti["commenti_testo"]}</td>
        <td>
{$data_formatt}</td>
    </tr>
"
;        };
echo 
"</table>";    
    };
}