Так если я получаю это правильно, вам просто нужно проверить флажки, чтобы выбрать базы данных ($ rows), которые вы хотите вставить в файл csv fil е ....
Каждый флажок, что вы проверили будет в переменной $ _POST, так:
первых вы делаете массив со всеми именами опций CheckBox (баз данных), например
$all_db = ['database1', 'database2', 'database3'];
второго контура через You каждое из значений в $all_db
и проверить, если они существуют в массиве $ _POST, если они делают, то вы можете экспортировать строку
foreach($all_db as $db_check) {
if (array_key_exists($db_check, $_POST) {
// EXPORT TO CSV
}
}
не делают Forg et! Это означает, что атрибут «name» этого флажка должен быть именем базы данных.
Если вы не хотите иметь статический список баз данных (т. Е. Существует вероятность того, что они будут иметь разные имена в будущем/будет больше или, возможно, меньше и т. Д., То дайте мне знать, я могу отредактировать мой ответ, если необходимо :))
(Если вы используете переменную $ _GET, то вы можете сделать то же самое, просто изменить $ _POST до $ _GET)
Знайте, однако, что $ _GET приходит как немного amateuristic для конечного пользователя, если он получает тысячу переменных в своем URL-адресе,
$ _POST часто является лучшей альтернативой, поскольку он скрыт и очищен для конечного пользователя. ..
EDIT: UPDATING ANSWER (SEE COMMENT)
Так в основном нужны люди, чтобы иметь возможность выбирать, какие строки они экспортируют от вас дБ ... Прежде всего, это означает, что нам нужен уникальный идентификатор для каждой строки,
Это может либо столбцом, используемым исключительно для этого (т. е. Идентификационный столбец с автоматическим приращением и уникальным атрибутом) Или это может быть столбец, который у вас уже есть, просто убедитесь, что это уникальный столбец, поэтому мы не получаем дублирующихся значений (вы увидите, почему ниже)
Затем мы даем значение этого уникального столбца идентификатора для атрибута «name» флажка, а с помощью jquery/php мы добавляем/добавляем статическую строку ...
Например, используя свой семейный ID: "rownumber_" + $family_ID
Это заставляет нас (опять же, используя ваш пример): $_POST[] = ['rownumber_123456' => 1, 'rownumber_0000000' => 1, .....]
Итак, в вашем файле PHP вы просто выполните следующие действия, чтобы добавить правильные строки на ваш CSV:
while($row = mysql_fetch_row($result)) {
if (array_key_exists($row['your_row_id'], $_POST) {
fputcsv($fp, $row);
}
}
- Снова используя свой пример с family_ID: -
while($row = mysql_fetch_row($result)) {
if (array_key_exists($row['family_ID'], $_POST) {
fputcsv($fp, $row);
}
}
EDIT: Updating answer for comment no.2
Так мало Sidenote если вы собираетесь перебрать HTML, используя PHP (т.е. петля trhough дб строк и печатать их в определенном порядке) Тогда вы Propably хотите использовать «:» варианты петель,
- Хотя():
- для():
- Еогеасп():
- если():
- .....
Эти варианты позволяют юй закрыть PHP тег после ":" и whataver HTML/CSS/PHP/JQuery вам р ут в состоянии/цикла будет выполняться как обычно ...
Например, вы можете сделать:
<ul>
<?php foreach ($row as $columnkey => $columnvalue): ?>
<img src="whateveryouwant"?>
<li class="<?php echo $columnkey;?>">This is my value: <?php echo $columnvalue; ?></li>
<?php endforeach; ?>
</ul>
Когда вы делаете это таким образом, что это гораздо чище, и вы не будете иметь никаких проблем с использованием двойной quatation знаки и все такое :)
Таким образом, используя этот метод, вот как ваш отображается список будет выглядеть в коде:
<div class="entriesListMain">
<?php
$connection = mysql_connect("localhost", "username", "password"); // Establishing Connection with Server
$db = mysql_select_db("database_name", $connection); // Selecting Database
//MySQL Query to read data
$query = mysql_query("select * from results ORDER BY peemdate DESC", $connection);
while ($row = mysql_fetch_array($query)) :
?>
<div>
<input type="checkbox" name="<?php echo $row['family_id']; ?>" value="export">
<span><?php echo $row['client_id']; ?></span>
<span><?php echo $row['family_id']; ?></span>
<span><?php echo $row['firstname'] . " " . $row['lastname']; ?></span>
<span><?php echo date("d F Y",strtotime($row['peemdate']); ?></span>;
<span>
<a class="parents-button" href="peem-parent-repsonses.php?id=<?php echo $row['survey_id']; ?>">
<strong>Parent’s Review</strong>
</a>
</span>
<span>
<a href="peem-repsonses.php?id=<?php echo $row['survey_id']; ?>">
<strong>View Results</strong>
</a>
</span>
</div>
<?php endwhile; ?>
</div>
как это флажок получит имя семейный ID, и поэтому в вашем csv.php вы можете использовать этот код:
while($row = mysql_fetch_row($result)) {
if (array_key_exists($row['family_ID'], $_POST) {
fputcsv($fp, $row);
}
}
Поскольку теперь он будет проверять для каждой строки семейства работает ли идентификатор SQL строк размещен как разыскиваемая строка в $ _POST (checkbooxes), и если нет, он не будет экспортировать строку в файл csv! :)
Так что вы идете ^^
EDIT 3: Troubleshooting
Итак, есть несколько вещей, которые вы делаете в этой функции, формы, ли флажки в вашей HTML форме имеют family_ID в их атрибут имени? (т.е.<input type="checkbox" name="<?php echo $row['family_id']; ?>"....
проверить, если имя атрибут действительно заполнен)
проводки материала из формы, (ваши флажки и прочее), так что давайте посмотрим, что на самом деле будет размещены,
die(print_r($_POST));
- Это означает, что вы хотите PHP умереть после этого (прекратите работать вообще), затем распечатайте переменную как есть (вид формата XML, который вы увидите)
Итак, вы получите целую кучу информации, если хотите, чтобы эта информация была хорошо сформированный способ, просто щелкнуть на нем элемент проверки:
Затем посмотрите, как ваш che ckboxes выходят из переменной $_POST
, (они должны иметь family_ID как ключ и значение 1)
Если это все в порядке, а затем проверить ваш row['family_ID']
переменного ли family_ID правильно заполнен, сделать то же самое с вашей переменной $row
, проверьте все переменные, которые вы используете в csv.php, а затем проверьте, почему ключ не существует в массиве, который вы ищете :)
Также не забудьте проверить, что вы заполнили array_key_exists(
. a key
FIRST и a array[]
ПОСЛЕДНИЙ )
Я не могу вам помочь непосредственно с этим, так как это будет Propably быть неисправным переменной или ошибку в вашей форме, чтобы попытаться найти это самостоятельно, если до сих пор ничего, размещать эти переменные значения:
$_POST
$row
- и полный HTML вашей формы
Это должен быть выбор «checkbox» вместо «check bx». – Phil