Zum Inhalt springen

Funktion zur Ermittlung eines bestimmten Wertes aus Datenbank

Erstellt am 24. Juni 2008 · 2 Antworten · letzte Antwort am 25. Juni 2008

Tags: Frage

sefer ·

Hi,

ich möchte einen bestimmten Wert aus der DB auslesen und anschließend überprüfen, ob dieser existiert. Diesen Vorgang wiederhole ich sehr oft, deshalb habe ich mir eine kleine Funktion geschrieben, aber ich erhalte oft eine Fehlermeldung.
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource
1.)Gibt es eine bessere Möglichkeit dies zu machen?
-- Die Rückgabe erfolgt mit return $Value[0];
-- muss man hier überhaupt ein array verwenden, es ist doch nur ein Wert?
2.)Die Coding guidlines werden vielleicht nicht eingehalten->Vorschläge?

Danke,
Sefer

<? php

function main($content,$conf)	{


//Überprüfen, ob nur ein bestimmter Wert vorhanden ist!
$where="uid=".$GLOBALS["TSFE"]->fe_user->user["uid"];
$Value=$this->getItemValue('id_profiles', 'fe_user', $where);

	if ($Value==""){ 
		content='Kein Wert gefunden';
	}else{
		content='Dies ist der ermittelte Wert'.$Value;
	}

}
			 					 
function getItemValue($field, $table, $where)	{
   
			$abfrage = "SELECT ".$field." FROM `".$table."` WHERE  ".$where;
			$ergebnis = mysql_query($abfrage);
			$Value = array();
			while($row = mysql_fetch_object($ergebnis))
			  {
				$Value[] = $row->$field;
			  }
			  
		return $Value[0];
}			 					 

?>
sefer ·

Die Fehlermeldung kam diesmal weil ich das "s" vergessen habe anstelle
fe_users hab ich fe_user geschrieben!

Trotzdem wäre ich für einen Tip dankbar, wie man das besser macht!

laser ·

Ist doch okay vom Ansatz her, eventuell würd ich das so lösen:

<?php
function main($content,$conf) {
  //Überprüfen, ob nur ein bestimmter Wert vorhanden ist!
  $where  = '`uid`=' . $GLOBALS["TSFE"]->fe_user->user['uid'];
  if ($this->getItemValue('id_profiles', 'fe_user', $where)){
    $content = 'Dies ist der ermittelte Wert ' . $this->getItemValue('id_profiles', 'fe_user', $where);
  } else {
    $content = 'Kein Wert gefunden';
  }
}
  
function getItemValue($field, $table, $where)   {
  if($res = $GLOBALS['TYPO3_DB']->exec_SELECTquery($field,$table,$where)) {
    while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
      return $row[$field];
    }
  } else {
    return false;
  }
}                  
?>

Try & Error 😉