2016-05-29 4 views
0

Ich bekomme immer den Fehler: Parse-Fehler: Syntaxfehler, unerwartete 'sName (T_STRING), erwartet'] 'in Zeile 5 Ich brauche Hilfe bei der Lösung dieses Problems . Kann mir jemand sagen, was mit meinem Code nicht stimmt?So verwenden Sie einen Foreachloop zum Platzieren der Array-Daten in Tabelle

<!DOCTYPE html> 
<?php 
$data = array [ 
       ["sName” => “Gervase”, "sNumber" => "s1234567", "mark” => 95, “comments” => “Well done!”], 
       ["sName” => “Matt”, "sNumber" => "s1234567", "mark” => 95, “comments” => “Well done!”], 
       ["sName” => “Kid”, "sNumber" => "s1234567", "mark” => 95, “comments” => “Well done!”], 
       ["sName” => “Nathan”, "sNumber" => "s1234567", "mark” => 85, “comments” => “Well done!”] 
    ] 
?> 
<html> 
<head> 
    <link type='text/css' rel='stylesheet' href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"/> 
</head> 
    <body> 
     <div> 
      <div class="jumbotron"> 
       <div> 
        <div class="container"> 
         <h1>Data</h1> 
       </div> 
       <div> 
       <div class="container"> 
        <table> 
         <table class="table"> 
          <thead> 
          <?php 

          foreach ($data as $data) 
          { 
           echo"<tr>"; 
           echo"<td>".$data["sName"]."</td>"; 
           echo"<td>".$data["sNumber"]."</td>"; 
           echo"</tr>"; 
          } 
          ?> 
           <tr> 
            <th>Student number</th> 
            <th>Student name</th> 
            <th>Mark</th> 
            <th>Comments</th> 
           </tr> 
           <tr> 
            <td>Something</td> 
           </tr> 
          </thead> 
        </table> 
       </div< 
     </div> 
    </body> 

Antwort

0

der aktuelle Code gegeben, um es in den fehlenden Semikolon nach der schließenden Klammer des $ data-Array zusammenhänge.

Darüber hinaus sieht es so aus, als würde Ihr Code verschiedene Zeichen mischen, die Anführungszeichen darstellen. Sie können dies anhand der Formatierungsfarben SO erkennen, die in Ihrem Fragenblock angewendet wurden. Versuchen Sie, das Array direkt in Ihrem Editor neu einzugeben (anstatt zu kopieren und einzufügen oder so), damit alle Zeichen übereinstimmen und sehen Sie, ob das hilft.

1

"I keep getting the error: Parse error: syntax error, unexpected 'sNameâ€' (T_STRING), expecting ']'on line 5"

Sie sehen diese geschweiften Zitate? “ ”.

Sie müssen alle in regulären Anführungszeichen " ändern.

["sName" => "Gervase", "sNumber" => "s1234567", "mark" => 95, "comments" => "Well done!"], 
["sName" => "Matt", "sNumber" => "s1234567", "mark" => 95, "comments" => "Well done!"], 
["sName" => "Kid", "sNumber" => "s1234567", "mark" => 95, "comments" => "Well done!"], 
["sName" => "Nathan", "sNumber" => "s1234567", "mark" => 85, "comments" => "Well done!"] 

Sie haben vielleicht mit irgendeiner Art von „Wort“ Prozessor oder zog es von der Bahn irgendwo codiert, die nicht richtig, diese Zitate zu konvertieren haben. Es ist am besten, einen Code "Editor" zu verwenden. Wenn Ihre PHP-Version < 5.4 ist, müssen Sie Ihren Code zu array() ändern. Dies scheint jedoch bei der von Ihnen geposteten Fehlermeldung nicht der Fall zu sein. Andernfalls würden Sie stattdessen Parse error: syntax error, unexpected '[', expecting '(' bekommen.

d.h .:

$data = array (
    ["sName" => "Gervase", "sNumber" => "s1234567", "mark" => 95, "comments" => "Well done!"], 
    ["sName" => "Matt", "sNumber" => "s1234567", "mark" => 95, "comments" => "Well done!"], 
    ["sName" => "Kid", "sNumber" => "s1234567", "mark" => 95, "comments" => "Well done!"], 
    ["sName" => "Nathan", "sNumber" => "s1234567", "mark" => 85, "comments" => "Well done!"] 
) 

und nur für den Fall, fügen Sie ein Schließen Semikolon sollten Sie jede PHP haben nach diesem Block innerhalb derselben PHP Block

"comments" => "Well done!"] 
    ); 
  • Es ist eine gute Übung.

Fußnoten:

Sehen Sie nur 2 <td>...</td> mit fehlenden Elemente haben, fügen Sie die beiden anderen:

echo "<td>".$data["mark"]."</td>"; 
echo "<td>".$data["comments"]."</td>"; 

Dies ist ein Bonus-Add-on.

Ich finde es seltsam, wenn Sie die Spaltenüberschriften unter Ihren Daten haben. Wenn du sie oben haben willst (was meiner Meinung nach besser wäre), lege es darüber.

Sie haben auch die falsche Schließung hier </div< die </div> hätte sein sollen und eine Streu <table>-Tag, und hätte einen Fehler in Debug/HTML-Quelle erzeugt.

I.e.:

<div class="container"> 
     <table class="table"> 
      <thead> 

       <tr> 
        <th>Student number</th> 
        <th>Student name</th> 
        <th>Mark</th> 
        <th>Comments</th> 
       </tr> 

      <?php 

      foreach ($data as $data) 
      { 
       echo"<tr>"; 
       echo"<td>".$data["sName"]."</td>"; 
       echo"<td>".$data["sNumber"]."</td>"; 

       echo"<td>".$data["mark"]."</td>"; 
       echo"<td>".$data["comments"]."</td>"; 
       echo"</tr>"; 
      } 
      ?> 

       <tr> 
        <td>Something</td> 
       </tr> 
      </thead> 
    </table> 
</div> 

Sie haben auch ein paar dort Schließung </div> ‚s fehlt, aber über den Rahmen dieser Frage das ist. Sie müssen diese abgleichen.

0

Kopieren und folgenden Code einfügen, gibt es subtile Fehler wie array[] es array() sein soll, foreach($data as $data) es sein sollten wie foreach($data as $datum) $ datum kann alles sein, aber nicht mehr als $ Daten und das Wichtigste ist, etwas Fehler mit Ihrem Texteditor .... Blick auf die Anzeigefarbe auch dieser Code, den Sie für die Präsentation $data andere Farbe auftreten können, einen anderen Texteditor, weil Ihre aktuelle Texteditor ändert Ihren regulären Angebot auf etwas anderes bitte so ....

verwenden
<!DOCTYPE html> 
<?php 
$data = array(
       ["sName"=>"Gervase", "sNumber"=>"s1234567","mark"=>95,"comment"=>"Well Done!"], 
       ["sName"=>"Matt", "sNumber"=>"s1234567","mark"=>95,"comment"=>"Well Done!"], 
       ["sName"=>"Kid", "sNumber"=>"s1234567","mark"=>95,"comment"=>"Well Done!"], 
       ["sName"=>"Nathan", "sNumber"=>"s1234567","mark"=>95,"comment"=>"Well Done!"] 
); 
?> 
<html> 
<head> 
    <link type='text/css' rel='stylesheet' href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"/> 
</head> 
    <body> 
     <div> 
      <div class="jumbotron"> 
       <div> 
        <div class="container"> 
         <h1>Data</h1> 
       </div> 
       <div> 
       <div class="container"> 
        <table> 
         <table class="table"> 
          <thead> 
           <tr> 
            <th>Student number</th> 
            <th>Student name</th> 
            <th>Mark</th> 
            <th>Comments</th> 
           </tr> 
           </tr> 
          </thead> 
          <tbody> 
          <?php 

          foreach ($data as $datum) 
          { 
           echo"<tr>". 
             "<td>".$datum["sName"]."</td>". 
             "<td>".$datum["sNumber"]."</td>". 
             "<td>".$datum["mark"]."</td>". 
             "<td>".$datum["comment"]."</td>". 
           "</tr>"; 
          } 
          ?> 

           <tr> 
            <td>Something</td> 
           </tr> 
          </thead> 
        </table> 
       </div< 
     </div> 
    </body> 
+0

* "Es sollte Array()" sein * - Nicht unbedingt und mit der Fehlermeldung. Andernfalls würden sie eine andere Fehlermeldung erhalten, die lautet: Parse error: syntax error, unexpected [[, expecting] (''die sie nicht in die Frage gestellt haben, sondern' Parse error: syntax error, unexpected' sNameâ € '(T_STRING) '. Wenn ihre PHP-Version war und zu sein scheint> 5.4 –

+1

tun, dass diese Art von Kommentar ist verpönt^ –

+0

@ fred-ii Ich schrieb, es waren die Fehler .... können Sie bitte die Antwort lesen, –

Verwandte Themen