PHP4-Forum
Forum | Befehle | MySQL | Beispiele | Newsletter | Suche | Home

Untermenü

Forum
Beitrag schreiben
Übersicht aller Beiträge

Zu dieser Seite

Übersicht aller Beiträge
Willkommen im Forum!


Sehr geehrte Besucher, wir mochten gern, dass dieses Forum weiterhin ein hohes Niveau besitzt. Ausserdem mochten wir gerne vermeiden, dass Fragen immer doppelt vorkommen. Deshalb appellieren wir auf Ihre Geduld und bitten Sie zuerst nach Antworten zu suchen und erst dann Fragen zu stellen. Benutzen Sie bitte dafur entweder das Sucheformular unten, oder unsere Suchmaschine, wenn Sie nach Befehlen, oder sonstigen Inhalten fundig werden mochten.

PHP4-Forum Zum ForumSeite 0
PHP4-Forum __constructsmoof22.05.2010 | 12:15:03
PHP4-Forum bahich22.05.2010 | 16:16:35
PHP4-Forum [Kein Betreff]smoof22.05.2010 | 21:57:56
PHP4-Forum __constructGünni24.05.2010 | 23:21:18
PHP4-Forum Mach Dich mit Exceptions vertrautJens27.05.2010 | 21:57:36
PHP4-Forum Danke..smoof31.05.2010 | 09:05:28

Hi smoof,

Operatoren geben wie Funktionen einen Wert zurück,

darum ist bei deiner Abfrage "if($a=new foo($x)) . . ."

die Bedingung immer erfüllt, weil eine Zuweisung erfolgt ist,

unabhängig davon, was die Funktion __construct zurückgibt.


>> . . . $b soll dann aber false sein . . . <<

$b KANN nicht false sein, weil du doch ein Objekt(eine Klasse) erzeugst, der Konstruktor

kann aber im Fehlerfall eine Variable der Klasse mit false belegen, und die musst du dann

wohl oder übel abfragen.


>> . . . Mit einer vorab Prüfung muss ich doppelt so viele Anfragen stellen. . . . <<

Eine Vorab-Prüfung brauchst du nicht, das macht, wie gesagt, der Konstruktor. Ist eine

Abfrage positiv, so belegst du eine Variable mit dem Datensatz und gibst diesen einfach

aus, oder was auch immer. Z.B.:

<?php
class cdb{
private $found;
private $data_set;
function __construct($table,$id){
  $query="select * from $table where id=$id";
  $result=mysql_query($query);
  mysql_num_rows($result)>0 ? $this->found=true : $this->found=false;
  $this->set_data($result);
}

function found(){
  return $this->found;
}

function set_data($query_result){
  if($this->found()){
  $this->data_set=mysql_fetch_array($query_result,MYSQL_ASSOC);
  }
}

function get_data(){
  return implode("|", $this->data_set);
}
};


$id=10;
$db=new cdb("tabelle2",$id);
if($db->found()){
echo "Datensatz $id gefunden<br>";
echo $db->get_data();
// Und/Oder weitere/andere Anweisungen
}else{
      echo "Datensatz $id nicht gefunden";
      // Und/Oder weitere/andere Anweisungen
      }
?>

Gruß
Günni

Antworten | Zurück | Eine neue Frage stellen | der Beitrag muss weg!

Dienstleistungen | Werbung | Impressum | Sitemap | Kontakt | Email © 1999 - 2012 | Last Update: 30.01.2012