Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/11/2021, 20:53
pilucho
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
if else en "sub_array" dentro de un "foreach"

Hola amigos, una consulta, tengo un server side processing del lado del servidor todo bien, funcional Sin el if
resulta que necesito usar unos botones para el admin y otro para el invitado, los ejemplos mas abajo.


Esto si funciona.
fetch.php (HOME)

Código PHP:
<?php
include('db.php');
include(
'function.php');
$query '';
$output = array();

    
$query .= "SELECT users.*, type_service.type, categories.category 
    FROM users 
    INNER JOIN type_service ON users.type_fk = type_service.typeID
    INNER JOIN categories ON users.category_fk = catgories.categoryID

 "
;

if(isset(
$_POST["search"]["value"]))
{
 
$query .= 'WHERE first_name LIKE "%'.$_POST["search"]["value"].'%" ';
 
$query .= 'OR last_name LIKE "%'.$_POST["search"]["value"].'%" ';
}
if(isset(
$_POST["order"]))
{
 
$query .= 'ORDER BY '.$_POST['order']['0']['column'].' '.$_POST['order']['0']['dir'].' ';
}
else
{
 
$query .= 'ORDER BY id DESC ';
}
if(
$_POST["length"] != -1)
{
 
$query .= 'LIMIT ' $_POST['start'] . ', ' $_POST['length'];
}
$statement $connection->prepare($query);
$statement->execute();
$result $statement->fetchAll();
$data = array();
$filtered_rows $statement->rowCount();
foreach(
$result as $row)
{
 
$image '';
 if(
$row["image"] != '')
 {
  
$image '<img src="upload/'.$row["image"].'" class="img-thumbnail" width="50" height="35" />';
 }
 else
 {
  
$image '';
 }
 
$sub_array = array();
 
$sub_array[] = $image;
 
$sub_array[] = $row["first_name"];
 
$sub_array[] = $row["last_name"];
 
$sub_array[] = $row["type"];
 
$sub_array[] = $row["category"];
 
$sub_array[] = '<button type="button" name="update" id="'.$row["id"].'" class="btn btn-warning btn-xs update">Update</button>';
 
$sub_array[] = '<button type="button" name="delete" id="'.$row["id"].'" class="btn btn-danger btn-xs delete">Delete</button>';
 
$data[] = $sub_array;
}
$output = array(
 
"draw"    => intval($_POST["draw"]),
 
"recordsTotal"  =>  $filtered_rows,
 
"recordsFiltered" => get_total_all_records(),
 
"data"    => $data
);
echo 
json_encode($output);
?>
La idea en esta parte poner un IF solo cuando este logeado el admin tenga acceso a eliminar
y cuando sea solo invitado actualizar. pero al usar esta opción no funciona me da un aviso como:
DataTables warning: table Invalid JSON response. For more information about this error, please see http://datatables.net/tn/1

EJEMPLO:
Código PHP:
 $sub_array = array();
 
$sub_array[] = $image;
 
$sub_array[] = $row["type"];
 
$sub_array[] = $row["category"];
 
$sub_array[] = $row["first_name"];
 
$sub_array[] = $row["last_name"];

// AQUI EL ADMIN
if($_SESSION['level'] == '1') {
 
$sub_array[] = '<button type="button" name="update" id="'.$row["id"].'" class="btn btn-warning btn-xs update">Update</button>';
 
$sub_array[] = '<button type="button" name="delete" id="'.$row["id"].'" class="btn btn-danger btn-xs delete">Delete</button>';
}
// AQUI EL INVITADO
if($_SESSION['level'] == '1') {
 
$sub_array[] = '<button type="button" name="update" id="'.$row["id"].'" class="btn btn-warning btn-xs update">Update</button>';
}

 
$data[] = $sub_array