Hoi,

Ik probeer een functie te bouwen die een datum uit mijn database haalt.
Nou dacht ik dat ik dat wel onder de knie had, maar wat ik ook doe, dit apparaat blijft maar unexpected errors geven.

De code is volledig zoals die in zen-cart gebruikt wordt, dus de sql query werkt zoals die daar staat. Kan iemand me zeggen wat hier fout gaat?


function get_boek_datum($oId){
	global $db;
    //de boekingsdatum bepalen op basis van de order history
        //hier zit nog een fout in!
      $boekdatum_raw = "select orders_status_id, date_added from " . TABLE_ORDERS_STATUS_HISTORY . " WHERE orders_id = '" . $oID . "';
      $db->Execute($boekdatum_raw);
      while (!$boekdatum_raw->EOF) {
      	$this_status_id = $boekdatum_raw->fields['orders_status_id'];	
	    $this_boekdatum = $boekdatum_raw->fields['date_added'];
	    echo $this_status_id;
	    echo $this_boekdatum;
      		//if ($this_status_id == ''){
	      	//	continue;
      		//}
      		
	    	//if ($this_status_id == 2){
	      	//	$boek_datum = $this_boekdatum;
	      	//	$found = true;
	      	//	}
      		//if (($this_status_id == 3) && (!$found)){
	      	//	$boek_datum = $this_boekdatum;
	      	//	$found = true;
	      	//	}
	      	//if (($this_status_id == 1) && (!$found)){
	      	//	$boek_datum = $this_boekdatum;
      		//}  
      		$boekdatum = 1;		
      		
      		//$boekdatum_raw->MoveNext();
  		
  		}	
      	return $boekdatum;
  	}// END function  get_boek_datum($oId)
  	
  	echo "boekdatum= " . get_boek_datum(1112);
ok, er is iets wel iets met die sql, want als ik die uitcomment verdwijnt de foutmelding.

Als ik de query in mysql direct doe, krijg ik drie datums met drie status id's.

ik dacht dat ik met die while door elk van de drie zou "rollen", maar kennelijk is het anders.

Moet ik nou een array maken omdat die sql 3 waarden tegelijk krijgt?

Nu ik dit zo opschrijf snap ik het geloof ik al waar het mis gaat :)
Echo je query eens?
sorry, maar zelfs dat lukt me niet.


$oID = 112;
        //$this_boekdatum_array = array();
    $boekdatum_raw = $db->Execute("SELECT orders_status_id, date_added FROM " . TABLE_ORDERS_STATUS_HISTORY . " WHERE orders_id = '" . $oID . "');
	echo $boekdatum_raw;


Hij geeft steevast iets als unexpected T_STRING in en dan 5 regels verder.

of:

$oID = 112;
        //$this_boekdatum_array = array();
    $boekdatum_raw = $db->Execute("SELECT orders_status_id, date_added FROM " . TABLE_ORDERS_STATUS_HISTORY . " WHERE orders_id = '" . $oID . "');
	while (!$boekdatum_raw->EOF) {
    echo $boekdatum_raw;
    $boekdatum_raw->MoveNext();
  }


precies hetzelfde
zo zou het moeten werken:

[CODE]$boekdatum_raw = " select orders_status_id, date_added
from TABLE_ORDERS_STATUS_HISTORY
WHERE orders_id = ".$oID." ";
je eindigt je loop met een return?? dan krijg je toch standaard de laatste waarde van die variabele?
heh, die return zit daar even in een briljante poging om in ierder geval nog "iets" uit die functie te krijgen. vlak daar voor zet ik hem ook op 1, dus de functie zoals die daar staat geeft altijd 1 terug hoopte ik. (als ie het zou doen natuurlijk :))

Het lijkt toch ergens in die query te zitten op 1 of andere manier.
In mysql werkt ie gewoon goed:

SELECT orders_status_id, date_added FROM `orders_status_history` WHERE `orders_id` = '1112';

geeft:
orders_status_id 	date_added
 	1 	2008-12-22 12:44:18
 	2 	2008-12-24 19:40:48
 	3 	2008-12-24 19:40:56


Kan het niet met dat datum veld te maken hebben op 1 of ander manier?

Het kromme is namelijk, dat als ik vlak daaronder een vergelijkbare query doe, maar op een andere tabel, dat ie hem dan wel slikt???

driving me nutz
oops, iets anders,
<?php
$boekdatum_raw = "select orders_status_id, date_added from " . TABLE_ORDERS_STATUS_HISTORY . " WHERE orders_id = '" . $oID . "'";
?>

je mistte nog een " daar aan t eind
sjezus koen, ik kan wel janken haha,
minstens zes uur kwijt aan die quoot.

en inmiddels zoveel eruit gesloopt dat ik weer opnieuw kan beginnen :)
phew, ff doorbijten als newbie in php :)

reuze bedankt in ieder geval, ik kan weer door, klasse.
jeroen, dat zal wel vaker gebeuren ;)
btw tip:
als je je script aanpast, sla dan een back-up op.
bedankt allemaal, het werkt nu. en de tip ter harte genomen :)
brengt me trouwens op nog een vraagje:

gebruiken jullie (of zijn er...) goede ontwikkelomgevingen voor php?
Ik gebruik al eclipse voor java, en zag daar ook iets voor php in staan maar kwam er nog niet helemaal uit.

Zit nu alles te knutselen in crimson editor, maar iets als eclipse met syntax checking enzo zou wel iets voor mij kunnen zijn ;)

groeten,
jeroen

Reageren