Pagina 1 din 1

Select coloane din baza de date cu mai multe Checkbox

Scris: Sâm Dec 14, 2013
de Capriciu

Cod: Selectaţi tot

<form action="bd_pnl.php" method="POST">
<input type="checkbox" name="bifeaza[]" value="nume">Nume<br>
<input type="checkbox" name="bifeaza[]" value="prenume">Prenume<br> 
<input type="checkbox" name="bifeaza[]" value="cnp">CNP<br> 
<input type="checkbox" name="bifeaza[]" value="adresa">Adresa<br> 
<input type="submit" name="submit" value="Genereaza">
</form>
Am acest formular cu checkbox-uri, nume, prenume, cnp, adresa sunt si numele coloanelor din baza de date. (bineinteles la final vreu sa fie mult mai multe checkboxuri, pentru toate coloanele din baza de date)
Doresc sa fac o filtrare a afisari continutului. Adica daca bifez casuta nume+prenume+adresa sa imi arate un tabel doar cu rezultatele de pe coloanele nume, prenume si adresa.

Cod: Selectaţi tot

<?php

include 'settings.php';
$checkbox = '';
if(isset($_POST['bifeaza'])) {
  $nrc = count($_POST['bifeaza']);
  for($i = 0; $i < $nrc; $i++) {
    $checkbox .= "," .$_POST['bifeaza'][$i];
  }
}
echo $checkbox; 
$cerereSQL = "SELECT $checkbox  FROM `$table2`";
$rezultat = mysql_query($cerereSQL);

    if(mysql_num_rows($rezultat) > 0) {

  $tabel_html = '<table border="1" height="400">';

  while($rand = mysql_fetch_array($rezultat)) {
    $tabel_html .= '<tr><td>' .$rand['nume']. '</td><td>' 
								.$rand['prenume']. '</td><td>'
									.$rand['cnp']. '</td><td>'
									.$rand['adresa']. '</td></tr>';
								
  }

  $tabel_html .= '</table>';
}

echo $tabel_html;

Cum pot sa dau SELECT la o variabila ?
Sau daca nu o alta idee
Multumesc.

Select coloane din baza de date cu mai multe Checkbox

Scris: Dum Dec 15, 2013
de steell
Inlocuieste in formular nume, email, parola si ip cu numele coloanelor din tabelul tau mysql, iar mai jos in interogarea inlocuieste users cu numele tabelului tau. Eu ca sa testez am folosit un tabel oarecare din baza mea de date si de aceea am schimbat denumirile.
Singurul lucru pe care nu stiu cum sa il fac este sa scap de acele if-uri de jos (ultimele 4). Cate optiuni adaug in formular atatea if-uri trebuie sa am, deci daca vreau sa am 100 de optiuni in formular va trebui sa am 100 de if-uri si nu imi place algoritmul asta. oricum pentru un formular mic nu-i nicio problema daca adaug 10-15 if-uri. Daca vrei sa mai stergi din optiunile din formular sau sa mai adaugi trebuie sa modifici si numarul de if-uri insa sa respecti acea ordine. Sper ca te prinzi cum vine.

Cod: Selectaţi tot

<form action="" method="post">
<input type="checkbox" name="bifeaza[]" value="`nume`">Nume<br>
<input type="checkbox" name="bifeaza[]" value="`email`">email<br>
<input type="checkbox" name="bifeaza[]" value="`parola`">parola<br>
<input type="checkbox" name="bifeaza[]" value="`ip`">ip<br>
<input type="submit" name="submit" value="Genereaza">
</form>

<?php
if ($_POST['bifeaza'] != '') {
$cols = $_POST['bifeaza'];
$n = count($cols);
for ($x=0; $x<$n; $x++) {
    if ($x==0) { $col = $col.$cols[$x]; } else {
    $col = $col.', '.$cols[$x]; }
}

$sel = "SELECT ".$col." FROM `users`";
$q = mysql_query($sel);
while ($row = mysql_fetch_row($q)) {
if ($n == 1) { echo $row[0].'<br />'; }
if ($n == 2) { echo $row[0].' '.$row[1].'<br />'; }
if ($n == 3) { echo $row[0].' '.$row[1].' '.$row[2].'<br />'; }
if ($n == 4) { echo $row[0].' '.$row[1].' '.$row[2].' '.$row[3].'<br />'; }
}
}
?>

Select coloane din baza de date cu mai multe Checkbox

Scris: Dum Dec 15, 2013
de MarPlo
Salut
Fiind un numar nedefinit de checkbox-uri /coloane intr-un array, atat la adaugarea in sirul Select cat si la preluarea coloanelor selectate, ajuta utilizarea functiei implode() [la preluare se alica: mysql_fetch_row()].
Incearca asa:

Cod: Selectaţi tot

$table_html = '';
if(isset($_POST['bifeaza']) && is_array($_POST['bifeaza'])) {
  $table_html = '<table border="1" height="400">';
  $sql = "SELECT ". implode(', ', $_POST['bifeaza']) ." FROM `$table2`";
  $rezultat = mysql_query($sql);

  if(mysql_num_rows($rezultat) > 0) {
    while($rand = mysql_fetch_row($rezultat)) {
      $table_html .= '<tr><td>'. implode('</td><td>', $rand) .'</td></tr>';                
    }
  }

  $table_html .= '</table>';
}

echo $table_html;