Autor Zpráva
Jan Zabloudil
Profil
Ahoj,
nevíte prosím kde mám v tomto kodu chybu :

<?php      
    $db = mysql_connect('localhost', 'root', 'heslo') or die('Nemohu se připojit. Zkontrolujte prosím připojení k serveru.');
    mysql_select_db('moviesite', $db) or die(mysql_error($db));
    $kodovani = mysql_query("SET NAMES 'UTF8'"); 
    
    //  načtení informace
    $dotaz = 'SELECT movie_name, movie_year, movie_director, movie_leadactor, movie_type
              FROM movie
              ORDER BY movie_name ASC, movie_name DESC';
    $vysledky = mysql_query($dotaz, $db) or die(mysql_error($db));
    
    // zjištění počtu řádků ve výsledku
    $pocet_filmu = mysql_num_rows($vysledky);              

$tabulka = <<<ENDHTML  
<div style="text-align: center;">
  <h2>Databáze s recenzemi filmů</h2>
  <table border="1" cellpadding="2" cellspacing="2"
         style="width: 70%; margin-left: auto; margin-right: auto;">
    <tr>
      <th>Název filmu</th>
      <th>Rok uvedení na plátna kin</th>
      <th>Režisér</th>
      <th>V hlavní roli</th>
      <th>Kategorie</th>
    </tr>
ENDHTML;
    // projdi výsledky
    while($radek = mysql_fetch_assoc($vysledky)){
      extract($radek);
      $tabulka .= <<<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>
  <p>Počet filmů: $pocet_filmu</p>
 </div>   
ENDHTML;
 
 echo $tabulka;
 ?>
Joker
Profil
Jan Zabloudil:
Naše „oblíbená“ disciplína „Hledej syntaktickou chybu v kilometru kódu“
Viz Nejčastější potíže s PHP (FAQ), na kterém řádku chyba vzniká?
Tori
Profil
Za druhým blokem heredoc jsou za středníkem mezery, ty tam nemají co dělat. (ř.39)
edit: A prefixovat názvy DB sloupců názvem tabulky mi přijde zbytečné (předpokládám, že to děláte jen kvůli usnadnění extract($radek), aby se prefixem oddělily proměnné z DB a ze skriptu.
Rfilip
Profil
Dle chyby tipuju ze na jednom z radku 27,39,45 bude u ENDHTML; nejaka ta mezera navic
Tori byl rychlejsi a oresnejsi , ty mezery nejsou na mobilu videt
Jan Zabloudil
Profil
Rfilip:
Díky kod jsem upravil ted mi to háže známou chybu: Parse error: syntax error, unexpected $end in C:\xampp\htdocs\table2.php on line 62

ale žádnou mezeru nemám nevíš kde je chyba

<?php     
// Připoj se k MySQL
    $db = mysql_connect('localhost', 'root', 'heslo') or die('Nemohu se připojit. Zkontrolujte prosím připojení k serveru.');
    mysql_select_db('moviesite', $db) or die(mysql_error($db));
    $kodovani = mysql_query("SET NAMES 'UTF8'"); 
    
    //  načtení informace
    $dotaz = 'SELECT movie_name, movie_year, movie_director, movie_leadactor, movie_type
              FROM movie
              ORDER BY movie_name ASC, movie_name DESC';
    $vysledky = mysql_query($dotaz, $db) or die(mysql_error($db));
    
    // zjištění počtu řádků ve výsledku
    $pocet_filmu = mysql_num_rows($vysledky);    
$tabulka = <<<ENDHTML
<div style="text-align: center;">
  <h2>Databáze s recenzemi filmů</h2>
  <table border="1" cellpadding="2" cellspacing="2"
         style="width: 70%; margin-left: auto; margin-right: auto;">
    <tr>
      <th>Název filmu</th>
      <th>Rok uvedení na plátna kin</th>
      <th>Režisér</th>
      <th>V hlavní roli</th>
      <th>Kategorie</th>
</tr>
ENDHTML;  
while ($radek = mysql_fetch_assoc($výsledky)) {
  extract($radek);  
    $tabulka .= <<<ENDHTML
<tr>
    <td>$movie_name</td>
    <td>$movie_year</td>
    <td>$movie_director</td>
    <td>$movie_leadactor</td>
    <td>$movie_type</td>
</tr>
ENDHTML;
}     
$tabulka .= <<<ENDHTML
</table>
<p>Počet filmů: $pocet_filmu</p>
</div>
ENDHTML; 
?>



Rfilip:
j už jsem odstranil i tu poslední mezeru ale zase chyba : Parse error: syntax error, unexpected '}' in C:\xampp\htdocs\table2.php on line 52 (tady řádek 38)
Tori
Profil
Viz [#3], teď jsou to řádky 27 a 44. Začala bych na vašem místě používat IDE / editor, který je schopen chyby tohoto druhu odhalit (aspoň tím, že vše až do konce skriptu obarví jako řetězec, místo jako PHP příkazy - což je vlastně docela dobře vidět i tady).

Rfilip: Je to nejčastější chyba, kterou dělám, když píšu v editoru bez zvýraznění syntaxe, takže jsem zvyklá to sledovat.
Jan Zabloudil
Profil
Kašlu na to tohle je ta nejhorší technika php jakou jsem kdy viděl

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: