Синтаксическая ошибка получения данных SQL

  • Автор темы Acy287skestSoky
  • Обновлено
  • 16, May 2024
  • #1
Привет, Можете ли вы исправить синтаксическую ошибку в этом коде?
 
if(mysqli_num_rows($sql) > 0)
 {
 while($row = mysqli_fetch_array($sql))
 {
 $result .='
 <tr>
 <td>'.$row["title"].'</td>
 <td>'.$row["name"].'</td>
 if($row["type"]==2)
 { echo "<td>type2</td>";}
 else if($row["type"]==1)
 {echo"<td>type1</td>";}
 else if($row["type"]==3)
 {echo"<td>type3</td>";}
 else if($row["type"]==4)
 {echo"<td>type4</td>";}
 <td>'.$row["add_date"].'</td>
 </tr>';
 }
 }
 else
Код (разметка):

Acy287skestSoky


Рег
20 Jan, 2011

Тем
66

Постов
210

Баллов
550
  • 31, May 2024
  • #2
Ответ, который дал Сарак, заключался в том, как вы хотите создавать контент.

Я думаю, что часть, которая смущает ОП, - это то, как обрабатывать операторы IF для его переключателей.

например, вам следует установить данные в переменную и добавить к ним данные на основе операторов if, например

 if(mysqli_num_rows($sql) > 0)
 {
 while($row = mysqli_fetch_array($sql)) {
 $output = '';
 $output .='<tr>';
 $output .= '<td>'. $row["title"]. '</td>';
 $output .= '<td>'. $row["name"]. '</td>';

 if ($row["type"]==2) {
 $output .= "<td>type2</td>";
 }
 else if ($row["type"]==1) {
 $output .= "<td>type1</td>";
 }
 else if ($row["type"]==3) {
 $output .= "<td>type3</td>";
 }
 else if ($row["type"]==4){
 $output .= "<td>type4</td>";
 }
 $output .= '<td>'. $row["add_date"]. '</td>';
 $output .= '</tr>';
 echo $output;
 }
 }
 else


PHP: вы также можете преобразовать несколько операторов if/else if в оператор case, так как это будет довольно простой переключатель, и если вы хотите построить всю страницу, вы можете удалить очистку $output в начале while.

цикл и переместите эхо за пределы while, но я считаю, что эта конфигурация больше соответствует тому, что ищет ОП.
 

Дениска2


Рег
29 Aug, 2011

Тем
72

Постов
189

Баллов
579
  • 03, Jun 2024
  • #3
Спасибо за ваш ответ, но если я хочу изменить эхо-сообщение и ввести что-нибудь еще, например echo «Привет, мир» вместо «тип 1», это решение мне не помогло.
 

Doroty


Рег
01 Jan, 2011

Тем
82

Постов
204

Баллов
634
  • 06, Jun 2024
  • #4
это должно сработать
 if(mysqli_num_rows($sql) > 0)
 {
 while($row = mysqli_fetch_array($sql)) {
 $result .= "<tr>
 <td>{$row['title']}</td>
 <td>{$row['name']}</td>
 <td>type{$row['type']}</td>
 <td>{$row['add_date']}</td>
 </tr>";
 }
 }
 else
PHP: Если вам нужно добавить больше логики вокруг $row['type'], используйте переключатель.
 

Bewin


Рег
28 Jun, 2014

Тем
95

Постов
214

Баллов
719
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно