Foros del Web » Programando para Internet » PHP »

if else en "sub_array" dentro de un "foreach"

Estas en el tema de if else en "sub_array" dentro de un "foreach" en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 24/11/2021, 20:53
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 642
Antigüedad: 17 años
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



La zona horaria es GMT -6. Ahora son las 09:27.