mysql klasse: SELECT Abfrage Problem mit Ausgabe der Arrays.

Radik

Grünschnabel
Hallo, ich habe folgendes Problem, ich bastele mir eine Mysql klasse.
Diese hat eine Funktion, die Select abfrage ausführt und die Ausgaben in ein array speichert und dieses dann ausgibt.

Nur kriege ich nichts ausgegeben, anstatt der abgefragten Daten aus der Datenbank.

Hier my_db klasse
PHP:
<?php

//My_DB Klasse
  class My_DB {
  public $con;
  public $result;
 
... Datenbank Logindaten
:::
:::
  
//Konstruktor 
public function __construct ()
{
  $this -> con = mysql_connect ($this->host, $this->user, $this->password) 
                 or die (mysql_error());
   
  if (is_resource ($this -> con))
  {
    mysql_select_db ($this->database) or die (mysql_error());
  }
}

//Destruktor
public function __destruct ()
{
  if (is_resource ($this -> con))
  {
    mysql_close ($this -> con);
  }
}

...
...
...


//Abfrage für Select, ausgabe als assoziatives Array
public function doSelect($query)
{
	
  if ($this -> result = mysql_query ($query))
  {
    $output = array();
    while ($row = mysql_fetch_assoc ($this -> result)) //Array mit den Zeilen füllen
    {
      $output[] = $row;
    }
    if (count ($output) > 0) //wenn output zeilen größer 0 hat, dann output ausgeben
    {
    	
      return $output; 
    }
    else
    {
    
     return false; //keine Zeilen gefunden , keine Ausgabe
    }
  }
  else
  {
  
   die (mysql_error());
  }
}

}

?>

Und die Datei wo doSelect gebraucht wird.
PHP:
<?php
 
  function __autoload($class)
  {
    require 'include/class/'.$class.'.class.php';
  }
  
  
$db= new MyFormular();

$id =$_REQUEST['id'];

$q="SELECT * FROM club WHERE club_id=$id ;";
$update="UPDATE club SET aktiv='1' WHERE club_id=$id;";

$zeile=$db->doSelect($q);

foreach($zeile as $key=>$value)
{
	echo $key ." ".$value;                      //um zusehen ob etwas in $zeile gespeichert ist;
}

if($zeile["aktiv"]==1)
{
echo "Party/Club mit der ID:".$zeile["club_id"].", wurde schon erfolgreich eingetragen <br>";

}
else
{
if($db->doQuery($update))
{

echo " Party mit der ID:".$zeile['club_id'].", erfolgreich aktiviert";
}

else
{
echo "Fehler";
}
}
?>

Die foreach Schbleife gibt ständig 0 Array
hier ist de Link zum script http://partyscout24.pa.funpic.de/aktivieren.php?id=77

Ich kapiere einfach nicht wieso in $output nichts eingetragen wird.

Kann mit bitte wer helfen?
 
Es wird doch was eingetragen… 0 ist der Schlüssel und Array der Wert, der eingetragen wurde. Lass die $value mal mittels [phpf]print_r[/phpf] anzeigen, dann siehst du deine gewünschten Werte:

PHP:
foreach($zeile as $key=>$value)
{
    echo "{$key}: <pre> " . print_r($value, 1) . "</pre>";                      //um zusehen ob etwas in $zeile gespeichert ist;
}
 
Deine doSelect-Funktion kannst du auch etwas kompakter gestalten (die anderen vermutlich auch, hab aber gerade nicht so viel Zeit :)):

PHP:
public function getRows($query)
{
        $this->result = mysql_query($query);
        
        if(mysql_error() !== '')
        {
                throw new Exception('Error performing query: ' . mysql_error());
        }
        
        $output = array();
        
        while($row = mysql_fetch_assoc($this->result))
        {
                array_push($output, $row);   
        }
        
        return count($output) > 0 ? $output : false;
}
 
Zurück