Pagina 1 din 1

Eliminare Valori duble in array din SELECT

Scris: Lun Mai 09, 2016
de andras
Salut,
Am un array rezultat din SELECT. Cind il parcurg imi dubleaza valorile rezultate. Care este cauza dublarii ? In tabela am o singura inregistrare.

Cod: Selectaţi tot

<?php
$ar=array();
if ($nr_rowssql>0) {
   foreach ($rowssql as $row){
      foreach ($row as $k=>$v){
     array_push($ar, $v);
     }
   }
}
var_export($ar); // rezulta valorile dublate
array ( 0 => 'superuser', 1 => 'superuser', 2 => 'useri', 3 => 'useri', 4 => 'ADD', 5 => 'ADD', 6 => 'adaugare', 7 => 'adaugare', 8 => 1, 9 => 1, 10 => 1, 11 => 1, 12 => 1, 13 => 1, 14 => 1, 15 => 1, 16 => 1, 17 => 1, 18 => 1, 19 => 1, 20 => 1, 21 => 1, )
?>
Intentia mea este ca dintr-un array asociativ sa obtin un array simplu cu cheile fara indici numerici, imi trebuie sa compar cheia cu o anumita variabila si daca exista in array o valoare egala cu variabila data de mine sa o afiseze. Exemplu:

Cod: Selectaţi tot

<?php
$existavariabila=0;
$tabela=''useri';
foreach ($ar as $v){
    if ($v==$tabela) $existavariabila=1;
}
?>
dar nu-mi iese. Multumesc.

Eliminare Valori duble in array din SELECT

Scris: Lun Mai 09, 2016
de MarPlo
Salut
Daca folosesti Clasa PDO_MySQLi, seteaza valoarea proprietatii $conn->fetch sa fie "assoc".
Exemplu:

Cod: Selectaţi tot

include('class.pdo_mysqli.php');     // include fisierul cu clasa pdo_mysqli

// creaza obiectul cu conexiunea la MySQL
$conn = new pdo_mysqli($mysql);

//Seteaza $fetch sa returneze doar indexi cu nume
$conn->fetch ='assoc';

// Select folosind inlocuitor cu nume (pt. siguranta la sql injection)
$sql = "SELECT * FROM table_name WHERE column = :val AND col2 = :v2";
$values = ['val'=>'value', 'v2'=>'val 2'];  //array cu valoari pt inlocuitori
$rows = $conn->sqlExec($sql, $values);

var_export($rows); // rezulta valorile 
- Din documentatia clasei:
$conn->fetch - defineste cu ce fel de index sa returneze datele din setul de rezultate ('assoc' - cu numele coloanelor, 'num' - cu index-numeric al coloanelor, Default/Neschimbat - ambele tipuri).