Bu sorunun çok fazla topluluğa göre sorulduğundan eminim, ancak iyi bir cevap bulamadım. Benim sorgu bir sonuç döndürdü olup olmadığınıSorgulama sonuçlarının herhangi bir sonuca neden olup olmadığı nasıl kontrol edilir PDO
$keyword = '%'.strtoupper($_POST['keyword']).'%';
$limitMaterial = 'AS-%';
$findMaterial = $oracle->prepare('SELECT inventory_item_id, segment1, description, inventory_item_status_code FROM mtl_system_items_b WHERE segment1 LIKE ? AND (segment1 LIKE ? OR description LIKE ?)');
$findMaterial->bindParam(1, $limitMaterial, PDO::PARAM_STR);
$findMaterial->bindParam(2, $keyword, PDO::PARAM_STR);
$findMaterial->bindParam(3, $keyword, PDO::PARAM_STR);
$findMaterial->execute();
$checkRow = $findMaterial->fetch(PDO::FETCH_ASSOC);
$boldKeyword = '<font color="red"><b>' . $keyword . '</b></font>';
if($checkRow !== false){
var_dump($checkRow); // this is for testing only
foreach($findMaterial as $dataMaterial){
var_dump($dataMaterial); // this is for testing only
$dataMaterial = array_change_key_case($dataMaterial,CASE_LOWER);
$code = str_ireplace($keyword,$boldKeyword,$dataMaterial['segment1']);
$desc = str_ireplace($keyword,$boldKeyword,$dataMaterial['description']);
if(isset($_POST['idf'])){
$idf = $_POST['idf'];
echo '<div class="show" align="left" onclick="select('.$idf.',this); return false;"><span>'.$code.'</span><span style="visibility: hidden; font-size:1px;" class="find_material_'.$idf.'">'.$dataMaterial['segment1'].'</span></br>'.$desc.'</div>';
} else {
echo '<div class="show" align="left"><span>'.$code.'</span><span style="visibility: hidden; font-size:1px;" class="basic_code">'.$dataMaterial['segment1'].'</span></br>'.$desc.'</div>';
}
}
} else {
echo '<div class="show" align="left">Part Code Not Found</div>';
}
$findMaterial = null;
Ne sormak istediğim, nasıl kontrol edebilirsiniz
ben bu kodu var?. Benim şu anki kod çalışıyor, ama bu hat bir sorunu vardır:$checkRow = $findMaterial->fetch(PDO::FETCH_ASSOC);
sonuçlarından 1 satır atın, bu yüzden foreach döngüsünde 1 satır eksik. FetchColumn() (aynı sorunu var) ve rowCount() (SELECT ifadesi için 0 döndürdüğü) çalıştı.
Eğer mümkünse, "1 SELECT COUNT (1) FROM [table]" komutunu kullanmaktan kaçınmak istiyorum, aksi takdirde sadece 1 satır için foreach döngüsünde olup olmadığını kontrol edin.
Herhangi bir yardım için teşekkür ederiz. Eğer
vay olarak
SELECT COUNT(1) FROM..
bu kullanarak dışarı ileCOUNT()
kullanarak, i downvote bekliyoruz, ancak bu hala beni şaşırttı olabilir ederiz. @downvoter, bir çözüm biliyorsanız biliyor musunuz? –