Jump to content
php.lv forumi

Kā pareizi izvilkt un izvadīt datus?


rebuilder

Recommended Posts

Sveiki,

 

ir tāda teorētiski vienkārša, problēma, bet netieku galā.

 

Respektīvi ir tā ir SQL pieprasījums, apmēram šāds:

 

$sql = mysql_query("
SELECT *
FROM items as items
LEFT JOIN items_details as items_details ON items.id=items_details.id_item
LEFT JOIN items_browser_support as items_browser_support ON items.id=items_browser_support.item_id
WHERE theme_link='$opened_themes_link' ");

 

Tas ko vēlos panākt, ka pie konkrētās atvērtās item, kur nolasu info no tabulas items_browser_support, tiktu izvadīti visi dati, kas ir pie attiecīgā item_id.

 

Respektīvi tabula "items_browser_support" izskatās apmēram šādi

id     item_id      browser
1        2             IE
2        2             FF
...utt...

 

Tad nu kā to pareizi nolasīt lai man izvada visus datus kas ir pie attiecīgā item_id. Pagaidām lai arī ko es mēģinātu var dabūt tikai pirmo vai pēdējo ierakstu.

Kaut kā šķiet, ka doma jau nepareiza pašā pieprasījumā, varbūt arī kļūdos.

Link to comment
Share on other sites

Nemāku pat citādāk pastāstīt.

 

Nu man tagad tiek selektoti dati no items_browser_support, bet kā izvadīt visus browserus? Man pašlaik izvada tikai vainu pirmo vai pēdējo sarakstā. Teorētiski cikls vajadzīgs, bet kā to pareizi realizēt? Jo pašai ziņai jau man to ciklu nevajag.

Link to comment
Share on other sites

Teorētiski arī var tā, bet nu gribētu zināt kā šo varētu atrisināt šādā veidā.

Pie tam šādā veidā daudz vieglāk būs pēc tam papildināt to padarīšanu ar kādu jaunu browseri utt.

Edited by rebuilder
Link to comment
Share on other sites

Teorētiski arī var tā, bet nu gribētu zināt kā šo varētu atrisināt šādā veidā.

Pie tam šādā veidā daudz vieglāk būs pēc tam papildināt to padarīšanu ar kādu jaunu browseri utt.

Daudz vieglāk tas ir kā? Jauna lauka pievienošana ar default vērtību 0 aizņem sekundes.

Kverijā kļūdas neredzu, jāselektējas visam. Pamēģini joinot pa vienai, skaties kas notiek.

Link to comment
Share on other sites

Vieglāk domāju ar to, ka ja iznāk jauns browsera versija, man nav jāveido jauns lauks tabulā! Nu neuzskatu to par prātīgu rīcību, katru reizi vērt vaļa un apdeitot tabulas laukus.

 

Tā jau viss tiek selektots, kļūdu nav, vienkārši kā pie izvadīšanas darīt?

 

 

$row = mysql_fetch_object($sql);

echo $row->theme_title; //db sim ir tikai viena vērtība			
echo $row->browser; // db var būt n skaits vērtību, un šādi loģiski tiek izvadīta tikai viena, bet vajag lai izvada visas.

Edited by rebuilder
Link to comment
Share on other sites

Apskaties kādā formātā tev sql datus atpakaļ dod. Katram browserim ir sava rinda.

itema id 1, itema detaļas 1, browseris 1

itema id 1, itema detaļas 1, browseris 2

Ja negribi atsevišķu lauku katram tad ar php rezultāti vispirms jāapstrādā (php vai sql ciklā). Starp citu kapēc detaļas no itema ir nodalītas. Vai tad neselektēsies vienmēr kopā?

Link to comment
Share on other sites

Atkal pārsteidz vienkāršības fakts.

 

Katrā ziņā liels paldies, tas ir tas ko domāju.

 

Updated: Jautājums priekšdienām, ja man radīsies vairākas šāda tipa tabulas, tad no pārējām infu atlasīt pēc tā paša veida? Vienkārši gribas iztikt ar pēc iespējas mazāk pieprasījumiem, bet laikam te pārāk daudz gribu :D

Edited by rebuilder
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...