Member 13637584 Ответов: 1

Как я могу помочь лучше отображать код SQL PHP?


Привет Смотрите мой код ниже,
Мой код, кажется, работает нормально ... но это просто кажется, что много копирования и вставки кода подходит к каждой еде.

В настоящее время я показываю блюда по отношению к "ключевым словам", в которых они были даны пользователю, и они смогли выбрать, какие из них они предпочитают. По сути, то, что он делает, - это отображение блюд на основе их предпочтений(которые они заполнили через форму флажка)

Если кто - нибудь сможет мне здесь помочь, я буду очень признателен.

Что я уже пробовал:

include ("dbConnect.php");
$1 = ("cheese");
$2 = ("yoghurt");
$3 = ("egg");
$4 = ("fruit");
$5 = ("cereal");
$6 = ("oatmeal");
	
   $dbQuery=$conn->prepare("select * from FoodQuestionnaireResults where UserID=$UserID");
   $dbQuery=$conn->prepare("select * from Recipes where Keyword = '$1'");
   $dbQuery->execute();
   while ($dbRow=$dbQuery->fetch(PDO::FETCH_ASSOC)) {
if ($B1 = '1') {
  echo "<br><br><h4>".$dbRow["Name"]."</h4><br>"."<br><img src=Breakfast/".$dbRow['Picture']."' width='150' height='150' />"."<br><br>".$dbRow["Instructions"].";
} else {
    echo "";
}
   $dbQuery=$conn->prepare("select * from Recipes where Keyword = '$2'");
   $dbQuery->execute();
   while ($dbRow=$dbQuery->fetch(PDO::FETCH_ASSOC)) {
if ($B2 = '1') {
  echo "<br><br><h4>".$dbRow["Name"]."</h4><br>"."<br><img src=Breakfast/".$dbRow['Picture']."' width='150' height='150' />"."<br><br>".$dbRow["Instructions"].";
} else {
    echo "";
}
   }
   }
?>

CHill60

В чем же заключается реальная проблема? Зачем вам резать и вставлять для каждой еды? Возможно, использовать массив? PHP: массивы - руководство пользователя[^] или коллекция? PHP: коллекция - руководство пользователя[^]

1 Ответов

Рейтинг:
0

enhzflep

Я подозреваю, что вы найдете это if ($B1 = '1') не делает того, что ты думаешь. Подсказка: в javascript, = является ли оператор присваивания, == является оператором проверки на равенство. ;)
SQL, к сожалению, использует один = проверка на равенство - это сбивает с толку многих новых пользователей, когда они должны использовать разные операторы на разных языках для выполнения одной и той же задачи.

Вот как бы я это сделал.

<?php
$userName = 'root';
$password = '';
$pdo = new PDO('mysql:host=localhost', $userName, $password);
$pdo->query("use testjobsdb");
	
$materials = Array("10A GPO Triple","10A GPO Double","10A GPO Single","10A GPO Double W/extra");
$stmt = $pdo->prepare("select * from Materials where name = :someStockItem");

forEach($materials as $curMaterial)
{
	$stmt->bindParam(":someStockItem", $curMaterial);
	$stmt->execute();
	while ( $dbRow = $stmt->fetch(PDO::FETCH_ASSOC) )
	{
		echo "<h4>".$dbRow["id"]."</h4><br>" . $dbRow['name'] . "<br>";
	}
}
?>


Member 13637584

Привет, где здесь определяется $curMaterial?

enhzflep

В цикле forEach. Если вы не понимаете синтаксис, вам следует посмотреть его в документации php, здесь: Структура управления PHP.net по каждому элементу