Возможный дубликат:
вывод значений из базы данных в html-таблицу PHP
Я пытаюсь создать таблицу в моем .php-документе, который заполняется значениями из таблицы в базе данных. но я не могу заставить его работать.
Во-первых, он не удаляет значения, когда имеется более одной строки (в этот конкретный день может быть только один элемент)
Во-вторых, если нет данных за определенный день, он просто помещает их в ячейку перед этим, то есть в неправильный день.
Вот код:
<?php if(!empty($_POST['recipe'])) { $week = mysql_real_escape_string($_POST['week']); $day = mysql_real_escape_string($_POST['day']); $mealtime = mysql_real_escape_string($_POST['mealtime']); $recipe = mysql_real_escape_string($_POST['recipe']); $check = mysql_query("SELECT * FROM menu WHERE dayid = '".$day."' AND mealtimeid = '".$mealtime."'"); if(mysql_num_rows($check) == 1) { mysql_query("DELETE FROM menu WHERE mealtimeid = '".$mealtime."' AND dayid = '".$day."'"); $success = mysql_query("INSERT INTO menu (weekid, dayid, mealtimeid, recipeid) VALUES('".$week."', '".$day."', '".$mealtime."', '".$recipe."')"); if($success) { echo "<h1>Success</h1>"; echo "<p>Your recipe was successfully added.</p>"; } else { echo "<h1>Error</h1>"; echo "<p>Sorry there was a problem, please try again.</p>"; } } else { $success = mysql_query("INSERT INTO menu (weekid, dayid, mealtimeid, recipeid) VALUES('".$week."', '".$day."', '".$mealtime."', '".$recipe."')"); if($success) { echo "<h1>Success</h1>"; echo "<p>Your recipe was successfully added.</p>"; } else { echo "<h1>Error</h1>"; echo "<p>Sorry there was a problem, please try again.</p>"; } } } if(!empty($_POST['selectweek'])) { $selectweek = mysql_real_escape_string($_POST['selectweek']); function ouptutMeal($selectweek, $mealtime, $mealname) { $sqlmeasurement2 = mysql_query("SELECT title, dayid FROM recipe JOIN menu ON recipe.recipeid = menu.recipeid WHERE menu.weekid = '$selectweek' AND menu.mealtimeid = '$mealtime' ORDER BY dayid"); echo "<br/> <table> <td></td> <td><strong>Monday</strong></td> <td><strong>Tuesday</strong></td> <td><strong>Wednesday</strong></td> <td><strong>Thursday</strong></td> <td><strong>Friday</strong></td> <td><strong>Saturday</strong></td> <td><strong>Sunday</strong></td> <tr> <td><strong>$mealname</strong></td>"; while($info2 = mysql_fetch_array( $sqlmeasurement2 )) { if(empty($info2['dayid'])) { echo '<td></td>'; } elseif($info2['dayid'] == '1') { echo ' <td>', $info2['title'], '</td>'; } elseif($info2['dayid'] == '2') { echo ' <td>', $info2['title'], '</td>'; } elseif($info2['dayid'] == '3') { echo ' <td>', $info2['title'], '</td>'; } elseif($info2['dayid'] == '4') { echo ' <td>', $info2['title'], '</td>'; } elseif($info2['dayid'] == '5') { echo ' <td>', $info2['title'], '</td>'; } elseif($info2['dayid'] == '6') { echo ' <td>', $info2['title'], '</td>'; } else { echo ' <td>', $info2['title'], '</td>'; } } echo '</tr> </table>'; } ouptutMeal($selectweek, 1, 'Breakfast'); ouptutMeal($selectweek, 2, 'Lunch'); ouptutMeal($selectweek, 3, 'Evening Meal'); ouptutMeal($selectweek, 4, 'Pudding'); ouptutMeal($selectweek, 5, 'Supper & Snacks'); } } else { ?>
Это форма, из которой он получает данные:
<form method="post" action=""> <fieldset> <label for="week">Select Week:</label> <select name="week"> <option value="0"> Select Week<?php echo $item; ?> </option> </select> <label for="day">Select Day:</label> <select name= "day"> <option value="0"> Select Day<?php echo $item2; ?> </option> </select><br /> <br /> <label for="mealtime">Select Meal Time:</label> <select name= "mealtime"> <option value="0"> Select Meal Time<?php echo $item3; ?> </option> </select><br /> <br /> <label for="recipe">Select Recipe:</label> <select name="recipe"> <option value="0"> Select Recipe<?php echo $item4; ?> </option> </select> <input type="submit" id="login-submit" value="Add to Menu" /> </fieldset> </form> <form method="post" action=""> <label for="selectweek">Select Week:</label> <select name= "selectweek"> <option value="0"> Select Week<?php echo $item; ?> </option> </select> <input type="submit" id="login-submit" value="View Menu" /> </form>
– Пункт в конце должен быть в воскресенье, но отстает, потому что предыдущий день не имеет предмета. Как я могу сделать этот пункт в воскресенье, сохраняя пробел, где другой элемент не является.
Используйте, если нужно проверить, пусто ли значение или нет. Что-то вроде этого.
if($info2['dayid'] == "") { echo '<td> </td>'; }
он будет правильно заполнять его, не нарушая его компоновки.
Надеюсь это поможет.