Autor Zpráva
Folker
Profil
Ahoj, chci pomocí while z jedné tabulky databáze vytáhnout celý obsah. Protože nechci, aby se mi stejné řádky opakovali, dá se nějak přeskočit řádek se stejným obsahem jako předchozí řádek?
Napadá mě použít podmínku if, ale nevím jak porovnat ten současný řádek s tím předchozím.

Je na to nějaký fígl?
AM_
Profil
fígl je SELECT DISTINCT ;)
Folker
Profil
Zkusil jsem to vložit do scriptu, ale nějak mi to nefunguje.
Je to tak jak jsi myslel?
$dotaz="SELECT DISTINCT * FROM ps_product,ps_product_lang WHERE ps_product.id_product = ps_product_lang.id_product";
  $result=mysql_query($dotaz);
  while ($row=mysql_fetch_array($result,MYSQL_ASSOC)) {
  $id=$row['id_product'];
  $moc=$row['price'];
  $voc=$row['wholesale_price'];
  $kod=$row['reference'];
  $vaha=$row['weight'];
  $nazev=$row['name'];
  $zisk=$moc-$voc;
SpotRudloff
Profil
Píše to nějákou chybu nebo to vypisuje celou tabulku, když tam dáš echo?
Folker
Profil
Můj problém bude asi složitější. tabulka ps_product lang má každý řádek unikátní, ale já z ní potřebuji pouze id_product a name. Tyto hodnoty se opakují po 3 řádcích. Zkoušel jsem upravit ten zápis takto:
$dotaz="SELECT DISTINCT * FROM ps_product AND id_product, name FROM ps_product_lang WHERE ps_product.id_product = ps_product_lang.id_product";
  $result=mysql_query($dotaz);
  while ($row=mysql_fetch_array($result,MYSQL_ASSOC)) 


Vyhodí to takovouhle hlášku:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\VertrigoServ\www\shop\index.php on line 71.
Řádek 71 je zde pod číslem 3.

Asi mám chybu v tom prvním řádku, ale nemohu přijít na to jakou.
SpotRudloff
Profil
Co třeba:

$dotaz="SELECT DISTINCT * FROM ps_product AND id_product, name FROM ps_product_lang JOIN ps_product_lang WHERE ps_product.id_product = ps_product_lang.id_product";


S JOIN jsem moc nedělal, ale mělo by to jít.
Folker
Profil
SpotRudloff
Zkusil jsem to, ale bez výsledku. Hlásí to pořád stejnou chybu.
Marek88
Profil
V tomhle ti přímo neporadím, ale znát tuhle chybu je ti k ničemu (znamená jenom, že se dotaz nepovedl). Dej tam
$result=mysql_query($dotaz) or die(mysql_error());

to ti vypíše přímo chybu, kterou máš v dotazu.
Alphard
Profil
Tabulky se nespojují pomocí AND, opakovaného FROM apod. Přečtětěte si o tom něco a nevymýšlejte novou syntaxi :-)
Folker
Profil
Alphard:
Zatím díky. Budu se tím muset prokousat.
SpotRudloff
Profil
Alphard:
A já tupec si toho nevšiml, když jsem mu odpovídal. :-D

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0