Привет! Это мой первый вопрос.
Я искал по всей сети, а также в SO, но я считаю, что это слишком конкретный вопрос, чтобы я мог найти ответ. Я предполагаю, что мой код может нуждаться в логической перестройке.
Предыстория проблемы:
Я создаю простой сайт, содержащий редактируемые пользователем данные инвентаризации (список использованных RV) для бизнеса друга. По сути, это мой первый большой проект с php, ну, когда-нибудь, и я в сжатые сроки (сейчас сезон!), Так что мой код - абсолютная грязь. Чтобы добавить к этому, я смешиваю процедурное и объектно-ориентированное программирование, как чокнутый.
Объяснение проблемы:
Некоторые данные в таблице MySQL «rv_list», а именно поля «status» и «condition» (см. Прилагаемый снимок экрана, чтобы получить более ясное представление), в настоящее время хранятся как однозначные целые числа .
Я подумал, что было бы очень легко (используя php regex или что-то еще) потом преобразовать эти числа в строки, как они были в форме ввода. Как оказалось, с методом, который я окончательно остановился на выводе данных, я не могу найти способ преобразовать их после выполнения оператора select.
Код:
<?php
//unfinished query - "condition" is the column in the db table that I'd like to change, "status" will also need to be changed in a similar way for the outward-facing public-viewed list
$query = 'select * from rv_list where status="1" or status="2" order by modified desc';
$rvfieldquery = 'show columns from rv_list';
$result = $conn->query($query);
//check on the status of our query
if ($result)
{
//begin output of html table, followed by a loop for rows, and within, a nested loop for the datacells.
//based on function 3: http://www.barattalo.it/2010/01/29/10-php-usefull-functions-for-mysqli-improved-stuff/
echo '<table>';
echo '<th>Edit Status</th>';
while ($field = $result->fetch_field())
{
echo '<th class="columntitle">'.$field->name.'</th>';
}
echo '<th>DELETE</th>';
$shadecounter = 0;
while ($row = $result->fetch_assoc())
{
//shade every other row for usability
$shadecounter++;
if (is_float($shadecounter/2)) $shade = "lightgray";
else $shade = "white";
echo '<tr style="background:'.$shade.';">';
//Get rv_id key, attach to name of edit and delete buttons
echo '<td><input type="submit" name="edit '.$row['rv_id'].'" value="Edit"></input></td>';
//Insert row data
foreach ($row as $td)
{
//PROBLEM AREA HERE! - can I do an if statement or something here to check what column $td comes from? Confused.
echo '<td class="data">'.$td.'</td>';
}
//for delete record button, off-screen on right side of each record
echo '<td><input style="background:red;" type="submit" name="del '.$row['rv_id'].'" value="DELETE"></input></td>';
echo '</tr>';
}
echo '</table>';
}
else
{
exit;
}
Снимок экрана вывода (отметьте выделенное):
http://i.stack.imgur.com/N8P8r.jpg
Дополнительная информация:
Ключ к списку целочисленных состояний (точнее, к тому, что я хотел бы, чтобы он отображался):
- Доступно
- В ожидании
- Продано / Деактивировано
Ключ к списку целых чисел условия:
- New
- Используется - Отлично
- Б / у - Хорошее
- Б / у - Ярмарка
- Б - Плохо
Пожалуйста, дайте мне знать, если я забыл что-то решающее в описании этой проблемы.
И последнее, но не менее важное: большое спасибо за потраченное время на чтение этого вопроса!