SQL query
5 naročnikov
5 naročnikov
Zdravo,
Na nek način moram iz baze dobiti ceno artikla. Le pa se razlikuje glede na "usergroup_id". Tabela izgleda nekako takole:
productid price usergroupid
251 1.0 0
251 2.0 1
251 3.5 3
251 5.2 5
Rabim pa dobiti ceno, glede na productid IN tudi usergroupid...Vse v enem klicu.
Probal sem s tole kodo (testno):
$query = "SELECT price
FROM cscart_product_prices
WHERE product_id
='251' AND usergroup_id
= '0'";
// Execute Query -----------------------------
$result = mysqli_query($con, $query);
$row = mysqli_fetch_row($result);
$count = $row[0];
if ($count > 0) {
echo "Query works";
} else {
echo "Query doesn't work" ."<br/>";
}
// Display Results -----------------------------
$num_results =mysqli_num_rows($result);
for ($i=0; $i<$num_results; $i++) {
$row = mysqli_fetch_assoc ($result);
//print_r($row);
echo "<br/>" . "Price: " . stripslashes($row['price']);
}
Pa mi ne vrne (izpiše nič)...ČE pa umaknem iz $query "usergroupid" in pustim samo "productid" pa dobim vse cene...Če obrnem (izpustim product_id) pa zopet ne dobim nič....
Torej, morda lahko kdo svetuje kaj delam narobe/kako narediti prav, da bo stvar delala kot sem si zamislil?
lp
13 odgovorov
Poženi samo query pa boš videl, to kar opisuješ pomeni da nimaš podatkov. Lahko da so kaki presledki kje ali kaj podobnega.
Ne, saj pravim, če poženem tole:
$query = "SELECT price
FROM cscart_product_prices
WHERE product_id
='251' '";
Je ok in vrne ceno za ta productid, ampak če pa v query vključim še usergroupid pa ne vrne nič
Zakaj ne probaš pognati SQL stavek direktno v SQL-u (npr Phpmyadmin), da vidiš ali je mogoče težava s samim stavkom oz. bazo ali pa pri izpisu PHP-ja?
Ti sem probal...ubistvo sem ga najprej naredil v phpmyadmin in je stvar šla skozi, preko PHP skripte pa noče...če, kot rečeno, uporabim samo produktid dela, za usergroupid pa noče...
Pa daj namesto stavka:
for ($i=0; $i<$num_results; $i++) {
$row = mysqli_fetch_assoc ($result);
//print_r($row);
echo "<br/>" . "Price: " . stripslashes($row['price']);
}
Raje uporabi:
while($row = mysqli_fetch_array($result)) {
echo "<br/>" . "Price: " . stripslashes($row['price']);
}
Nekaj je naredilo...Samo tole kar se meni dogaja je rahlo čudno, ali pa sem jaz kaj zgrešil...
Namreč, če dam tole:
$query = 'SELECT price
FROM cscart_product_prices
WHERE usergroup_id
= "0"';
Bi mi moral izpisati dve ceni, ker sta za ta usergroupid dve ceni notri, a izpiše samo eno, manjšo vrednost...
Če vpišem tole:
$query = 'SELECT price
FROM `cscartproductpricesWHERE
productid`= "251"';
Mi vrne vse tri cene, urejene po usergroupid in ne po vrsti (naprimer vrne cene 4,3,5 kar je enako usergroupid 3,5,8)
Če pa uporabmi enak query, le da zamenjam številko product_id na 252 pa ne vrne ničesar, čeprav cena je notri...
Tako da res nevem kje imam težave.
Hvala za pomoč.