Za pristup bazi imam svoju klasu koju vec duze vreme uspesno koristim.
Medjutim, sada imam jedan projekat, gde se iz php-a selektuje tabela order, pa za svaki red iz te tabele se selektuje druga tabela (pomocu podataka iz tabele order), i ispisu rezultati.
To ne radi kada koristim moju klasu. Od 100 redova, on ispise prvi, i stane. Kada koristim mysql funkcije direktno radi. Evo vam kod pa vi vidite sta ne valja, glupo mi ovako, negde koristim klasu, negde ne...
PHP kôd:
$db->Query("SELECT * FROM qorder WHERE qfor= '%s'", array($_GET['what']));
$cnt = $db->GetResultCnt();
if($cnt == 0) {
echo "There are no questions in the database";
}
for($i = 0;$i < $cnt;$i++) {
$data = $db->GetData('all');
switch($data['qtype']) {
case "1": // Input
$db->Query("SELECT * FROM qinput WHERE qiID= '%s'", array($data['qID']));
$input = $db->GetData('all');
echo "
$input[subtitle]
<table>
<tr>
<td> $input[question] </td>
<td> <input type=\"text\" name=\"\" disabled> </td>
</tr> </table>";
break;
Kada umesto $db->Query koristim mysql_query sve normalno radi. Ovako ispise samo jedan red.
Evo dela klase:
PHP kôd:
function Query($query, $query_data = NULL) {
if(!$this->GetLink()) $this->Connect();
if(NULL != $query_data) {
$this->Prepare($query, $query_data);
$this->Result = mysql_query($this->GetSQL());
}
else {
$this->Result = mysql_query($query);
}
if (preg_match('/^\s*SELECT/i', $query)) {
$this->SetResultCnt(mysql_num_rows($this->GetResult()));
}
else {
$this->SetResultCnt(mysql_affected_rows($this->GetLink()));
}
}
Pa vi vidite
Nikada nisam naleteo na ovako nesto... Kazem, klasa radi posao u svim ostalim delovima projekta, kao i u drugim projektima.