Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Errore di sintassi, non capisco dove

    In questo file php c'è un errore di sintassi alla riga 51, l'ultima. L'errore è

    Parse error: syntax error, unexpected $end in table2.php on line 51
    e il file table2.php è questo

    codice:
    <?php
    	// Collegamento a MySQL
    	$db = mysql_connect('localhost', 'bp6am', 'bp6ampass') or die('Unable to connect. Check your connection parameters.');
    	// Ci si assicura di usare il database corretto
    	mysql_select_db('moviesite', $db) or die(mysql_error($db));
    	
    	// Recupera le informazioni
    	$query = 'SELECT movie_name, movie_year, movie_director, movie_leadactor, movie_type
    		FROM movie
    		ORDER BY movie_name ASC, movie_year DESC';
    	$result = mysql_query($query, $db) or die(mysql_error($db));
    	
    	// Determina il numero di righe nel risultato restituito
    	$num_movies = mysql_num_rows($result);
    	
    	$table = <<<ENDHTML
    		<div style="text-align: center;">
    			<h2>Movie Review Database</h2>
    			<table border="1" cellpadding="2" cellspacing="2" style="width: 70%; margin-left: auto; margin-right: auto;">
    				<tr>
    					<th>Movie Title</th>
    					<th>Year of Release</th>
    					<th>Movie Director</th>
    					<th>Movie Lead Actor</th>
    					<th>Movie Type</th>
    				</tr>
    		ENDHTML;
    	
    	// Scorrere i risultati
    	while ($row = mysql_fetch_assoc($result))
    	{
    		extract($row);
    		$table .= <<<ENDHTML
    			<tr>
    				<td>$movie_name</td>
    				<td>$movie_year</td>
    				<td>$movie_director</td>
    				<td>$movie_leadactor</td>
    				<td>$movie_type</td>
    			</tr>
    			ENDHTML;
    	}
    	
    	$table .= <<<ENDHTML
    		</table>
    		
    
    $num_movie Movies</p>
    		</div>
    		ENDHTML;
    		
    	echo $table;
    ?>
    Non riesco a capire dove manca la parentesi.

  2. #2
    Codice PHP:
    <?php
        
    // Collegamento a MySQL
        
    $db mysql_connect('localhost''bp6am''bp6ampass') or die('Unable to connect. Check your connection parameters.');
        
    // Ci si assicura di usare il database corretto
        
    mysql_select_db('moviesite'$db) or die(mysql_error($db));
        
        
    // Recupera le informazioni
        
    $query 'SELECT movie_name, movie_year, movie_director, movie_leadactor, movie_type
            FROM movie
            ORDER BY movie_name ASC, movie_year DESC'
    ;
        
    $result mysql_query($query$db) or die(mysql_error($db));
        
        
    // Determina il numero di righe nel risultato restituito
        
    $num_movies mysql_num_rows($result);
        
        
    $table '
            <div style="text-align: center;">
                <h2>Movie Review Database</h2>
                <table border="1" cellpadding="2" cellspacing="2" style="width: 70%; margin-left: auto; margin-right: auto;">
                    <tr>
                        <th>Movie Title</th>
                        <th>Year of Release</th>
                        <th>Movie Director</th>
                        <th>Movie Lead Actor</th>
                        <th>Movie Type</th>
                    </tr>
            '
    ;
        
        
    // Scorrere i risultati
        
    while ($row mysql_fetch_assoc($result))
        {
            
    extract($row);
            
    $table .= '
                <tr>
                    <td>$movie_name</td>
                    <td>$movie_year</td>
                    <td>$movie_director</td>
                    <td>$movie_leadactor</td>
                    <td>$movie_type</td>
                </tr>
                '
    ;
        }
        
        
    $table .= '
            </table>
            

    $num_movie Movies</p>
            </div>
            '
    ;
            
        echo 
    $table;
    ?>

  3. #3
    Posto che così non funziona, dato che nella stringa ci finiscono i nomi delle variabili e non il loro contenuto, io volevo usare il costrutto heredoc per stampare il tutto. Come mai non funziona?

  4. #4
    Originariamente inviato da Aegidius157
    Posto che così non funziona, dato che nella stringa ci finiscono i nomi delle variabili e non il loro contenuto, io volevo usare il costrutto heredoc per stampare il tutto. Come mai non funziona?
    prova a mettere le stringhe di apertura solo all'inizo (<<<ENDHTML) e quella di chiusura (ENDHTML; ) solo alla fine della composizione dell'heredoc.

    Oppure crea tre stringhe heredoc differenti da stampare una di seguito all'altra.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    204
    Di parentesi non mi sembra che ne manchino, però controlla bene il codice originale perché ci sono funzioni che tu non hai riportato, come

    Codice PHP:
    $director get_director($movie_director);
    $leadactor get_leadactor($movie_leadactor);
    $movietype get_movietype($movie_type); 
    Credo sia quello l'errore, nel momento in cui richiami le variabili $director, $leadactor e $movietype...


  6. #6
    Originariamente inviato da piero.mac
    prova a mettere le stringhe di apertura solo all'inizo (<<<ENDHTML) e quella di chiusura (ENDHTML; ) solo alla fine della composizione dell'heredoc.

    Oppure crea tre stringhe heredoc differenti da stampare una di seguito all'altra.
    Non capisco cosa vuoi dire.

    Originariamente inviato da ale87440
    Di parentesi non mi sembra che ne manchino, però controlla bene il codice originale perché ci sono funzioni che tu non hai riportato, come

    Codice PHP:
    $director get_director($movie_director);
    $leadactor get_leadactor($movie_leadactor);
    $movietype get_movietype($movie_type); 
    Credo sia quello l'errore, nel momento in cui richiami le variabili $director, $leadactor e $movietype...

    Tutte le variabili a cui ti riferisci vengono estratte da $row con il comando extract($row), e poi non c'entra nulla con il tipo di errore riscontrato.

  7. #7
    Se non sbaglio, la stringa che chiude il heredoc DEVE essere messa ad inizio riga senza spazi ne' tab prima.

  8. #8
    Originariamente inviato da k.b
    Se non sbaglio, la stringa che chiude il heredoc DEVE essere messa ad inizio riga senza spazi ne' tab prima.
    Funziona! Grazie 1000!

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.