Salve a tutti, il mio problema è proprio come da titolo.
l'errore è al punto dove ci sono tutti i cancelletti (#)
- richiamo table_view()
- la quale richiama row_view() in questo caso
- l'errore compare in due punti segnalati dai cancelletti (#), esattamente nella funzione table_view() e row_view().
- da considerare che in table_view() l'operazione viene eseguita esattamente due volte, la prima volta senza errore, dopo di che da errore
probabilmente mi sto perdendo qualcosa e non me ne sono accorto.
questa cosa è successa da quando ho cambiato i codici da mysql a mysqli.
le variabili da tenere traccia sono
- $result
- quelle affiancate dalla funzione di fetch_field()
p.s.
ho fatto mille cambiamenti al codice ed è probabile sia un po confuso.
grazie mille
codice:
while( $row_p = mysqli_fetch_row($result) )
{
table_view($row_p, $result, "list-view");
}
codice:
function table_view($row_p, $result, $class_view)
{
global $database;
// prima visualizzo la proprieta
echo "\n".'<div class="row-view"> <!-- start row view -->';
echo "\n\t".'<form action="'.htmlspecialchars($_SERVER['PHP_SELF']).'?content=update" method="post">';
// adesso visualizzo il risultato in base al modo di visualizzazione richiesto: se a elenco o dettagliato
switch( $class_view )
{
case 'list-view': // se ho la visualizzazione lista, i singoli elementi sono linkabili
$rif = "";
for( $i=0; $i<count($row_p); $i++ )
{
$label = mysqli_fetch_field($result);
if( $label->name == 'rif' ) // qui l'errore non compare, $label risulta corretta
$rif = $row_p[$i];
}
echo "\n".'<a href="'.$_SERVER['PHP_SELF'].'?content=filter&view=detail&rif='.$rif.'">';
row_view($row_p, $result);
echo "\n".'</a>';
break;
case 'detail-view':
detail_view($row_p, $result);
break;
}
// memorizzo il riferimento nel quale siamo
$rif = "";
for( $i=0; $i<count($row_p); $i++ )
{
$label = mysqli_fetch_field($result);
if( $label->name == 'rif' ) // ##### l'errore scatta qui
$rif = $row_p[$i];
}
// se l'utente ha i permessi può cliccare per modificare
list($status, $user) = auth_get_status();
if( $status == AUTH_LOGGED )
{
// name=server => memorizzo la pagina dalla quale sono venuto per poi ritornarci (se servisse)
?>
<input name="rif_mod" value="<?=$rif?>" hidden />
<input name="server" value="<?=htmlspecialchars($_SERVER['REQUEST_URI'])?>" hidden />
<input type="submit" name="modifica" value="Modifica" />
<?php
}
echo "\n\t".'</form>';
echo "\n".'</div> <!-- end row view -->'; // end row-view
}
codice:
function row_view($row, $result)
{
$dir_foto = "";
$dir_thumb = "";
$titolo = "";
$rif = "";
// risultati
for($i=0; $i < count($row); $i++)
{
$label_name = $result->fetch_field();
switch( $label_name->name ) // ##### l'errore scatta qui
{
case 'foto1':
$dir_foto = _DIR_UPLOAD_FOTO.$row[$i];
$dir_thumb = _DIR_THUMB_FOTO.$row[$i];
break;
case 'titolo':
$titolo = $row[$i];
break;
case 'rif':
$rif = $row[$i];
break;
}
}
}