ca: Abfrage

Hallo alle mit einander,

erstmal wünsche ich euch noch ein gesundes neues Jahr!

Und jetzt meine Frage.
Ich möchte eine abfarge machen und das was ich raus bekomme möchte ich als Tabelle dastellen.

Wenn ich nur eine Abfrage hatte wo ich nur eine ID oder einen NAmen brachte war das noch nicht so das Porblem.

Das habe ich immer so gemacht z.B
function getFeeID()
{
 $iRet = NULL;
 $myDB = &new DB;
 $myDB->query("SELECT fee_id FROM fee_contract WHERE fee_c_id = ".
 $this->iFeeCID." AND fee_eff = ".$this->iFeeEff." AND fee_exp = ".
 $this- >iFeeExp." AND fee_basicfee = ".$this->dFeeBasicfee);
 if($myDB -> next_record()){
  $iRet = $myDB->f("fee_id");
 }
 return $iRet;
}

Aber jetzt möchte ich mehr Spalten haben und die auslesen aber ich bekomme das nicht hin. hin und her habe ich überlegt was ich falsch mache und PHP kann ich noch nicht so gut

function getListe()
{
 $iRet = NULL;
 $myDB = &new DB;
 $myDB->query("SELECT fcf.pcfee_puprice,
 fcf.pcfee_pumaxcount,fc.fee_basicfee,
 fc.fee_eff, fc.fee_exp FROM fee_catfee fcf, fee_contract fc
 WHERE fc.fee_c_id =".$this->iFeeCID);
if($myDB -> next_record())
{
  //und hier habe ich mir was versucht aber ich weiß nicht weiter

//$iPupric = $myDB->f("pcfee_puprice");
  //$iPumaxcount = $myDB->f("pcfee_pumaxcount");
  //$iFeeCID = $myDB->f("fee_basicfee");
  //$dEff = $myDB->f("fee_eff");
  //$dExp = $myDB->f("fee_exp");
  }
  return $iRet;
}

könnt ihr mir bitte helfen.

Danke schon mal

  1. hallo

    könnt ihr mir bitte helfen.

    Danke schon mal

    hier mal ein kleines beispiel, unabhänig von deinem Code.
    Die while schleife der datenbank abfrage entspricht einer reihe in der tabelle:

      
    <table width="98%" border="0" cellspacing="0" cellpadding="0">  
      <tr>  
        <td width="40">id</td>  
        <td>subject</td>  
        <td width="50">preview</td>  
     <td width="100">mode</td>  
      </tr>  
    
    
      
    <?  
    $q="SELECT * FROM `table` ";  
    $r=mysql_query($q);  
    while($d=mysql_fetch_array($r))  
      {  
    ?>  
    
    
      
    <tr>  
    <td >
    ~~~`<? print $d["col1"]; ?>`{:.language-php}~~~html
    </td>  
    <td >
    ~~~`<? print $d["col2"]; ?>`{:.language-php}~~~html
    </td>  
    <td >
    ~~~`<? print $d["col3"]; ?>`{:.language-php}~~~html
    </td>  
    <td >
    ~~~`<? print $d["col3"]; ?>`{:.language-php}~~~html
    </td>  
    </tr>  
    <tr>  
    <td height="1" bgcolor="#CCCCCC"></td>  
    </tr>  
    
    
      
    <?  
    }  
    ?>  
    
    
      
    </table>  
    
    

    gruß

    jo

    1. Danke schön

  2. Hallo ca

    erstmal wünsche ich euch noch ein gesundes neues Jahr!

    Danke ;) dir auch !

    Das habe ich immer so gemacht z.B
    function getFeeID()
    {
    $iRet = NULL;
    $myDB = &new DB;
    $myDB->query("SELECT fee_id FROM fee_contract WHERE fee_c_id = ".
    $this->iFeeCID." AND fee_eff = ".$this->iFeeEff." AND fee_exp = ".
    $this- >iFeeExp." AND fee_basicfee = ".$this->dFeeBasicfee);
    if($myDB -> next_record()){
      $iRet = $myDB->f("fee_id");
    }
    return $iRet;
    }

    Diese Funktion sieht zwar recht gut aus, aber du verwendest wohl IMHO dir nicht verständlichen Code.
    Außerdem solltest du bei Funktionsaufrufen in $this keine Leerstelle zwischen dem Pfeil haben ;) ( "$this- >iFeeExp" => "$this->iFeeExp" )

    Noch was:
    Warum "$this" ?!
    Bist du in einer Klasse ?
    Wo ist die Funktion die du uns da zeigst ?
    z.B.:
    DB::getFeeID() ?

    Aber jetzt möchte ich mehr Spalten haben und die auslesen aber ich bekomme das nicht hin. hin und her habe ich überlegt was ich falsch mache und PHP kann ich noch nicht so gut

    function getListe()
    {
    $iRet = NULL;
    $myDB = &new DB;
    $myDB->query("SELECT fcf.pcfee_puprice,
    fcf.pcfee_pumaxcount,fc.fee_basicfee,
    fc.fee_eff, fc.fee_exp FROM fee_catfee fcf, fee_contract fc
    WHERE fc.fee_c_id =".$this->iFeeCID);
    if($myDB -> next_record())
    {
      //und hier habe ich mir was versucht aber ich weiß nicht weiter

    //$iPupric = $myDB->f("pcfee_puprice");
      //$iPumaxcount = $myDB->f("pcfee_pumaxcount");
      //$iFeeCID = $myDB->f("fee_basicfee");
      //$dEff = $myDB->f("fee_eff");
      //$dExp = $myDB->f("fee_exp");
      }
      return $iRet;
    }

    Oha !
    In SQL scheinst du dich ja ganz gut zurecht zu finden ;)
    Das Problem : das return !

    Was sollte denn zurückkommen :
    -> _Eine_ Zeile mit mehreren Spalten ?
    -> _Mehrere_ Zeilen mit mehreren Spalten ?

    Ich tippe auf ersteres.

    Also ...
    Gehen wir systematisch vor :
    Wir haben eine Klasse DB.
    -> Was macht sie ?
    -> Wie komme ich an das was ich von der Datenbank hole ran ?
    -> Was bekomme ich von der Klasse ? Arrays ? ints ? String ?
    Das musst du nun rausbekommen !

    Wenn das gelärt ist, dann gehts weiter.
    Ich gehe nun einfach davon aus, dass mit $myDB->f("feldname") mir den Inhalt des abgefragten Feldes liefert.

    Nun...
    $result['fee_exp'] = $myDB->f("fee_exp"); // (String) "hallo"
    $result['fee_eff'] = $myDB->f("fee_eff"); // (int) "5456"
    $result['fee_basicfee'] = $myDB->f("fee_basicfee"); // (float) "5.3432"

    nun noch am Schluss ein :
    return $result;

    Fertig :

    function getListe()
    {
     $result = NULL;
     $myDB = &new DB;
     $myDB->query("SELECT fcf.pcfee_puprice,
     fcf.pcfee_pumaxcount,fc.fee_basicfee,
     fc.fee_eff, fc.fee_exp FROM fee_catfee fcf, fee_contract fc
     WHERE fc.fee_c_id =".$this->iFeeCID);
     if($myDB -> next_record())
     {
      $result['fee_exp'] = $myDB->f("fee_exp"); // (String) "hallo"
      $result['fee_eff'] = $myDB->f("fee_eff"); // (int) "5456"
      $result['fee_basicfee'] = $myDB->f("fee_basicfee"); // (float) "5.65432"
      }
      return $result;
     }

    Ich denke das sollte funktionieren.
    Das einzigste wo ich mir nicht sicher bin :
    die Klasse DB
    -> Ich weiß nicht, wie und was sie macht bzw. wie sie agiert.

    Soweit so gut ...

    should help ;)

    Gruß Jojo

    1. Danke schön