SQL query

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č

Mogoče je kaj z navednicami. Nekje imaš ='251' '" drugič pa = '0'"

Napaka pri pisanju na forum...ni to

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']);
 }
1

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 `cscart
productpricesWHEREproductid`= "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č.

Se ravno odpravljam ven, ko pridem nazaj bom pa pri sebi preveril in ti javim kako in kaj.

Super, če boš rabil ti lahko še kaj napišem.

lp