implode(): Passing glue string after array is deprecated

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Avatar utilizator
Senior70
Mesaje: 23

implode(): Passing glue string after array is deprecated

Dupa 7 ani !
Acum, revazand o veche aplicatie cu codul "Multiple Select Drop Down list" cu tabel 3 coloane +1; am constatat ca datorita upgradarii PHP-ului meu la PHP 7.4.33 la codul "select_list.php" imi afiseaza:

Cod: Selectaţi tot

Deprecated: implode(): Passing glue string after array is deprecated. Swap the parameters in C:\wamp ... la linia 40
Dar numai cand rulez programul pe localhost, iar rulat din domeniu, pe Hosting nu apare acest mesaj. Fiind totusi un programator fara multa experienta, nu prea am inteles ce se petrece ... toate incercarile mele de a rezolva problema, nu au dat rezultate.
Probabil ca trebuie sa inlocuiesc Apache 2.4.54.2 ???

Cod: Selectaţi tot

17  $table = 'do_se_op';
18  $ar_cols = array('domeniu', 'sectiune', 'optiune', 'null');
............
39  $where = isset($ar_where) ? ' WHERE '. implode($ar_where, ' AND ') : '';
40  $sql = "SELECT DISTINCT `$col` FROM `$table`".$where;
41  $result = $conn->query($sql);
Daca si dupa atata vreme m-ati putea lamuri, TOATA STIMA !

MarPlo Mesaje: 4343
Salut,
Nu stiu ce ai incercat, dar dupa cum reiese din mesajul de eroare "Swap the parameters", spune sa schimbi parametri intre ei. Astfel, variabila de tip array e pusa ca al doilea parametru.
Vezi si in manualul php la:
php.net/manual/en/function.implode.php#refsect1-function.implode-changelog

Astfel, in codul tau inlocuieste linia respectiva {39} cu aceasta:

Cod: Selectaţi tot

$where = isset($ar_where) ? ' WHERE '. implode( ' AND ',$ar_where) : '';

Senior70 Mesaje: 23
OK ! Eu nu am inteles despre ce parametri era vorba. S-a rezolvat, multumesc pentru promptitudinea cu care mi-ai raspuns ! TOATE CELE BUNE !!!

Subiecte similare