Enumerare rezultate câmp cu delimitator (virgulă)

Pornim de la următoarea interogare:  <?php $sql="SELECT * FROM employees"; ?> 

Varianta 1 – repetare condiţională

Aproape toate variantele prezentate sunt simple şi sigure, după cum se va vedea în rezultatul afişat. Doar că, din teste, această variantă a lucrat bine şi în cazul folosirii imbricate a lui WHILE, după cum este redat în imaginea articolului, unde folosirea acestei enumerări (autorii de articol) este, abia, la al treilea WHILE. După cum se vede în scriptul de mai jos, am folosit variabila $i (incrementată) pentru a identifica numărul rândului curent.

Rezultat: Ronald Mendel, Victoria Ashworth, Martin Blank, John Doe

Varianta 2 – implode

Folosirea funcţiei implode(), având în primul argument delimitatorul (virgulă, punct şi virgulă etc.) oferă posibilitatea unei astfel de enumerări. Totuşi, din testul făcut, nu prea funcţionează în cazul lui WHILE imbricat, apărând delimitatorul şi după ultimul element ar rezultatului.

Rezultat: Ronald Mendel, Victoria Ashworth, Martin Blank, John Doe

Varianta 3 – substr()

Şi această variantă ar fi comodă. După cum se vede mai jos, se adaugă virgula după fiecare element al rezultatului, iar funcţia substr() trebuie să elimine ultima virgulă din rezultat; deoarece după virgulă am inserat şi spaţiu, va fi necesar ca ultimul argument al funcţiei să fie -2, eliminând astfel ultimele două caractere (virgulă şi spaţiu).

Rezultat: Ronald Mendel, Victoria Ashworth, Martin Blank, John Doe

Varianta 4 – GROUP_CONCAT()

Funcţia GROUP_CONCAT() este utilizabilă direct în codul MySQL, problema care se vede şi în rezultatul de mai jos, fiind că nu se lasă spaţiu între virgulă şi conţinutul de după.

Rezultat: Ronald Mendel,Victoria Ashworth,Martin Blank,John Doe

Varianta 5 – realizare funcţie

Această variantă este similară cu prima, doar că am creat o funcţie, în cazul în care este necesar a fi apelată în mai multe locuri.

Rezultat: Ronald Mendel, Victoria Ashworth, Martin Blank, John Doe

  1. StackOverflow.com (PHP: Separate MySQL query values with a comma)
  2. StackOverflow.com (How can I echo the position number of SQL row in PHP?)
  3. StackOverflow.com (php mysql- put mysql_fetch_array() result in to a string and split the string by comma). Interesant de studiat şi lucrul funcţiei explode().
  4. Idem 3
  5. Idem 3

Author: Ovidiu.S

Suficient de pasionat de această zonă profesională ca, în cazul în care ştiu ceva - cât de puţin - să împărtăşesc cu alţii.

Leave a Reply