Możliwe duplikaty:
Błąd analizy składni: błąd składni, nieoczekiwany T_STRING 59
Mam bazę danych z nazwami, które chciałbymwyświetlane w formie tabeli z polami wyboru. Wszystko działa, dopóki nie spróbuję umieścić tagu HTML w moim kodzie php. Gdy umieściłem tag wejściowy, wyświetla mi się błąd:
Błąd analizy składni: błąd składni, nieoczekiwany T_STRING, oczekiwanie „,” lub „;”
Nie mogę zobaczyć, gdzie umieściłbym przecinek lub średnik.
<form>
<?php
$name = $_POST["name"];
$host = "mysql16.000webhost.com";
$user_name = "a1611480_akaash";
$pwd = "****";
$database_name = "a1611480_akaash";
$db = mysql_connect($host, $user_name, $pwd);
mysql_select_db($database_name);
$result = mysql_query("SELECT name FROM Sort");
$var = array();
while ($row = mysql_fetch_array($result)) {
$var[] = $row["name"];
}
$unique = array_unique($var);
foreach ($unique as $value) {
echo "<p class = Body_text><label>$value</label> <input type="checkbox" name="name" value="$value" /> </p>n";
}
?>
</form>
Odpowiedzi:
1 dla odpowiedzi № 1Zastąp to:
echo "<p class = Body_text><label>$value</label> <input type="checkbox" name="name" value="$value" /> </p>n"
z tym:
echo <<<EOD
<p class = Body_text><label>$value</label> <input type="checkbox" name="name" value="$value" /> </p>
EOD;
... To używa Składnia HEREDOC, który z łatwością omija większość problemów z cytatem. Jednak pojawia się ważne zastrzeżenie: linia EOD;
nie możesz być wcięty i nie może być nic innego w tej linii (takich jak spacje końcowe).
2 dla odpowiedzi nr 2
Na twojej linii echa cała rzecz musi być otoczona podwójnymi cudzysłowami. Otwierasz podwójne cudzysłowy przed polem wyboru, aby było widoczne pole wyboru jako nieznane wywołanie PHP. Użyj kombinacji pojedynczych i podwójnych cudzysłowów.
1 dla odpowiedzi nr 3
zmień tę linię .. musisz uciekać z podwójnych cytatów
echo "<p class = Body_text><label>$value</label> <input type="checkbox" name="name" value="$value" /> </p>n";
0 dla odpowiedzi nr 4
Zamień linię „echo” na
echo "<p class = Body_text><label>$value</label> <input type="checkbox" name="name" value="$value" /> </p>n";
Ponieważ używasz podwójnych cudzysłowów jako ogranicznika ciągu, a także dla samego pola wyboru, wyłamuje się ono z łańcucha php.
0 dla odpowiedzi № 5
Musisz uciec ze swoich odwrotnych ukośników lub użyć składni heredoc. Poniżej znajdziesz kilka przykładów, w których złamałeś swój kod PHP:
echo "<p class = Body_text><label>$value</label> <input type="checkbox" name="name" value="$value" /> </p>n";
^^^ ^^^