Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Neafisare variabila dintr-o functie
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Subiectul anterior :: Subiectul următor  
Autor Mesaj
ynfonet



Data înscrierii: 14/Dec/2005
Mesaje: 124

Trimis: Lun Aug 25, 2008 8:57 pm    Titlul subiectului: Neafisare variabila dintr-o functie  

Buna ziua.

Am o functie de genul:
=====================
Cod:
function fct($val){
  $afis="";

  $query = "SELECT * FROM $tab WHERE cimp=$val";
  $result = mysql_query($query);

  $afis = "<table>";
  while($r = mysql_fetch_array($resukt, MYSQL_BOTH){
    $afis = $afis."<tr>"
                ."<td>".$r['cimp1']."</td>"
                ."<td>".$r['cimp2']."</td>"
                ............
                ."<td>".$r['cimpN']."</td>"
                ."</tr>";
  }
  $afis = $afis."</table>";

  echo $afis;
  return $afis;
}



Dar cind o apelez imi apare un mesaj ca variabila $afis este prea mare si nu poate fi afisata.

Cimpurile din DB sint multe, iar inregistrarile sin fff multe.

De unde pot controla marimea si proprietatile unor astfel de variabile?
Sau ce pot face in acest caz?

Multumesc anticipat.
Sus  
Amenthes



Data înscrierii: 12/Dec/2005
Mesaje: 620

Trimis: Lun Aug 25, 2008 8:59 pm    Titlul subiectului:  

Poti sa dai paste la eroare? Sa vedem si noi exact ce zice?
Sus  
punctweb



Data înscrierii: 24/Mar/2004
Mesaje: 507

Trimis: Mar Aug 26, 2008 7:52 am    Titlul subiectului: Re: Neafisare variabila dintr-o functie  

Cod:
function fct($val){
  $query = "SELECT * FROM $tab WHERE cimp=$val";
  $result = mysql_query($query);

  $afis = "<table>";
  while($r = mysql_fetch_array($result, MYSQL_BOTH){
    $afis .= "<tr>"
                ."<td>".$r['cimp1']."</td>"
                ."<td>".$r['cimp2']."</td>"
                ............
                ."<td>".$r['cimpN']."</td>"
                ."</tr>";
  }
  $afis .= "</table>";

  return $afis;
}


Incearca cu varianta de mai sus

Probleme:

* in functia de mai sus, tu rescriai de fiecare data valoarea lui $afis in cadrul buclei while... ce te interesa pe tine era concatenarea...
* la aapelarea mysql_fetch_array trimiteai ca resursa $resukt desi anterior ai denumit-o $result

Nelamuririle mele:

* pentru ce ai nevoie de echo daca cu o linie mai jos faci return (sau e pentru debugging) ?
* de unde iti vine variabila $tab ?
* de ce faci jdemii de concatenari ?
* ce s-a intamplat cu securitatea ?

[mutat la Cod PHP]
Sus  
byrev



Data înscrierii: 14/Dec/2005
Mesaje: 12
Locație: Tg-Jiu

Trimis: Mie Aug 27, 2008 5:21 am    Titlul subiectului:  

$afis = $afis."<tr>"
si
$afis .= "<tr>"

sunt identice ca si rezultat final insa ca si cod compilat nu stiu daca lucrurirle sunt la fel.

odata ce apare operatia $x.$y e clar ca e vorba despre concatenare. Apoi daca variabila din stanga se afla si in partea dreapta a operatiei de atribuire atunci banuiesc ca acel compilator este destul de destept sa procedeze intr'un mod optimizat.

ex, daca luam codul:

$x = $z."demo".$x.$w

compilatorul detexteaza prezenta variabilei $x in abele parti si transforma codul astfel:

$x .= $z."demo".$w

apoi se apuca de executat !

daca apare ceva de genul $x.$x.$x , compilatorul nu va elimina decat prima aparitie a variabilei, .

Daca face altfel inseamna ca aia de lucreaza la nucleul PhP trebe concediati ;) !

si ca o "rezolvare" ptr eroare:
memory_limit din php.ini , dubleaza, tripleaza valoare... :) pana merge sau ramai fara memorie, apoi restarteaza apache-ul.

de regula eroare e ceva de genu:
Cod: fatal error: Allowed memory size of XXXXXXX bytes exhausted (tried to allocate NNNNNN bytes) in /…/some-file.php on line NNNN
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community