1054Unknown column 'Array' in 'where clause'

Xching

Erfahrenes Mitglied
Hallo Zusammen,
ich habe ein kleine Problem bekommen und ich weiß es nicht, warum es so ist und wie ich riichtig machen kann, ich hoffe , dass ihr mir weiter helfen könntet.

Das ist mein Fehler :

Fehler in der Datenbank: <br>1054Unknown column 'Array' in 'where clause' : select sp.spid,sp.xpos,sp.ypos,k.kart,sp.sitznummer,sp.reihe
from Sitzplan sp
inner join Kategorie k on k.spid=sp.spid and (k.vkatid is null or k.vkatid=0)
where 1 and groupid in (Array) <br>

PHP:
function getSeats($grid,$return=0,$typ=0) {
    $ret=array();
   $add='';

   if (!is_array($grid) && $grid>0 && $typ>0) {
     $add=sprintf(' and sp.spid=(%d) ',$grid);

   } elseif(is_array($grid) && count($grid)>0) {
      // Array von spids
      $grids=trim(implode(",",$grid));
      $grids=rtrim($grids,",");
	
      if ($grids=='')
	  $grids='-4711';
      if ($typ==0 )
	  $add=sprintf(' and groupid in (%s) ',$grids);
      elseif($typ==1)
	  $add=sprintf(' and sp.spid in (%s) ',$grids);
    } else {
      // GruppenID
      if (is_array($grid))
	$grid=-4711;

      if ($typ==1)
	$add=sprintf('and sp.spid=%d ',$grid);
      else
	$add=sprintf('and groupid=%d ',$grid);
      
   }
   
  $sql=sprintf("select sp.spid,sp.xpos,sp.ypos,k.kart,sp.sitznummer,sp.reihe
from Sitzplan sp
inner join Kategorie k on k.spid=sp.spid and (k.vkatid is null or k.vkatid=0)
where 1 %s",$add);
  //debug_log($sql,'selbox');
  debug_log($sql,"mv2.log");
    $oid=mysql_query($sql,$this->dbid);
    my_error($this->dbid,$sql);
 
SQL:
where 1 %s",$add

hier wird $add als Array übergeben. Überprüfe an welcher Stelle das $add definiert wird und warum es nicht in einen String konviertert wurde. Das ist aus deinem Code leider nicht ersichtlich.
Dazu fehlen einige Informationen von deinem Funktionsaufruf.
Wie wird denn diese Funktionion aufgerufen?
 
$add wird in Funktion GetGroupFrombox definiert und $add is ein String aber wie kann man $add(string) in Array umwandeln?

PHP:
function getGroupFromBox($x1,$y1,$x2,$y2) {
    $xp1=min($x1,$x2);
    $xp2=max($x1,$x2);

    $yp1=min($y1,$y2);
    $yp2=max($y1,$y2);

    $add='';
    $group='';

    if ($this->selectMode==3 ) {
      // Nichts notwendig
    } else {
      $group='group by groupid';
    }
      $sql=sprintf("select groupid as grid,sp.spid,xpos,ypos,kart,sitznummer,reihe from Sitzplan sp
      inner join Kategorie k on k.spid=sp.spid and (k.vkatid is null or k.vkatid=0) 
      where sp.sstid=%d and (xpos>=%d and xpos<=%d and ypos>=%d and ypos<=%d) %s %s",$this->sstid,$xp1,$xp2,$yp1,$yp2,$add,$group);
    $oid=mysql_query($sql,$this->dbid);
    my_error($this->dbid,$sql);
    $grids=array();
 
$add wird schon in deiner 1. Funktion deklariert, nur eben fehlen ein paar Infos zu deinem Funktionsaufruf, mit welchen Parametern/Typen rufst du die Funktion auf?

PHP:
function getSeats($grid,$return=0,$typ=0) {
    $ret=array();
   $add='';
 
Zurück