[PHP] fetch array

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heel vreemd. Ik heb het probleem dat als hij 1x een query gebruikt in een fetch_array, dat hij hem daarna niet meer wil gebruiken.

Aan het begin van script:

PHP:
1
2
3
//connect to mysql
$bbcode=mysql_query("SELECT * FROM bbcode");
$smilies=mysql_query("SELECT * FROM smilies");


En verderop de functie waar de vars worden aangeroepen:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function bb2html($message,$bbcodeyes,$smiliesyes){
  global $mysql,$bbcode,$smilies;
  
  // disabling html and other program languages
  $message=str_replace("<","&lt;",$message);
  
  if($bbcodeyes==1){
    if(!$bbcode){
      $bbcode=$mysql->query("SELECT * FROM bbcode");
    }
    // start transfer bbcode to html (except for the [ code] bbcode)
    while($array=$mysql->fetch_array($bbcode)){
      $message=preg_replace($array[origin],$array[result],$message);
    }
  }
  if($smiliesyes==1){
    if(!$smilies){
      $smilies=$mysql->query("SELECT * FROM smilies");
    }
    // start transfer smilies to images
    while($array=$mysql->fetch_array($smilies)){
      $message=str_replace($array[codering],"[img]\"".$array[img]."\"[/img]",$message);
    }
  }
  return $message;
}



Ik zie het probleem niet, jullie wel?

btw. De mysql queries werken. Dat is gewoon een eigen gemaakte class zodat ik querycount en custom errors heb die hij ook logt.

[ Voor 20% gewijzigd door Verwijderd op 15-12-2002 03:33 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Mogen we de functie fetch-array toch nog even zien uit je class... En quote je indices eens

PHP:
1
2
3
4
5
$array["codering"]
//of
$arrai['codering']
//ipv
$array[codering]


zet je error_reporting maar eens op E_ALL .. dan gatie over de emmer ;)

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Ondanks het feit dat je achterliggende code hier waarschijnlijk oorzaak van is, toch de opmerking:

Waarom? Waarom zou je op 1 pagina 2x dezelfde query uit willen voeren? Je kunt de resultset toch kopieren? Scheelt je weer een berg DB-I/O

[ Voor 17% gewijzigd door Bosmonster op 15-12-2002 11:57 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb getest, en de quotes hoeven bij de array's niet. Maargoed, dat doet er opzich niet toe.

Hier is mijn fetch array en query uit mijn class (maar die werkt).

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function query($query){
      // do query
    global $sql_query_showtime,$error_count,$querycount,$querytime,$settings;
    
    $begintime = explode(" ",microtime());
        
    $this->query=mysql_query($query);
    if(!$this->query){
      $this->sqlerror("Invalid sql query: ".$query);
    }
    
    $endtime = explode(" ",microtime());
    $querytime += $endtime[0]-$begintime[0];
            
    $querycount++;
    
    return $this->query;
  }
  
  ########## MYSQL FETCH ARRAY ##########
  function fetch_array($query=0){
      // makes an array with results of the inserted query
    if($query!=0){
      $this->query=$query;
    }
    if(isset($this->query)){
      $this->fetch=mysql_fetch_array($this->query);
    }else{
      $this->sqlerror("Invalid sql query ".$this->query." specified");
    }
    return $this->fetch;
  }


Dit werkt, daar ben ik zeker van.

En over die vraag met die 2 queries....Ik heb ze nu even elke pagina dat gedaan, ter debugging. Maar ik ga ze in een session zetten, scheelt ook weer query tijd.


Trouwens, error_reporting(EALL); geeft niets. Alles werkt perfect.

[ Voor 8% gewijzigd door Verwijderd op 15-12-2002 13:19 ]