Pereiti prie turinio

[HELP] INNER JOIN


Rekomenduojami pranešimai

Iškilo bėda dėl inner join, kartais rodo klaidingą info. Apie inner join daug neišmanau tai...

Esmė tame, kad yra padaryta taip kad man atvaizduotu tuos vilkikų numerius kurie turi daugiau nei vieną planšetę. Tai kad vilkikui yra išduota planšetė žymiu PAIMTA = 1, o kai gražinta PAIMTA = 0. Bet kadangi pirmiau vyksta išdavimas, nei gražinimas, tai visada vilkikai turi dvi planšetes, vieną kuri yra išduota naujai, o kita kurios laukiu gryžtant. Tai vat dabar viena fūra GUU 173, gražino seną planšetę kurios laukiau ir turi naują išduotą. BET. Nors ir sistemoj atlikau gražinimą, duomenų bazėj taip pat rodo, kad PAIMTA = 0, bet vistiek rodo kad turi DVI, WHY..... ?

Naudoju kodą:

                            <center>
                               <b>VILKIKAI SU DAUGIAU NEI VIENA PLANČETE</b><br>
                               <table class="table" border=1 width=100%>
                                   <?php
                                   $gg = 0;
                                   $uzklausa3 = mysql_query("SELECT istorija.GRAZINTA, istorija.VILKIKOID, istorija.PLANSETESID FROM istorija INNER JOIN ( SELECT GRAZINTA, VILKIKOID, COUNT(*) FROM istorija GROUP BY GRAZINTA, VILKIKOID HAVING COUNT(*) > 1) temp ON temp.VILKIKOID = istorija.VILKIKOID AND temp.GRAZINTA= istorija.GRAZINTA WHERE istorija.GRAZINTA=1 ORDER BY GRAZINTA, VILKIKOID");
                                   while( $rez3 = mysql_fetch_assoc($uzklausa3) )
                                   {
                                       $get=mysql_query("SELECT VALSTYBINIS FROM vilkikai WHERE ID='".$rez3['VILKIKOID']."'");
                                       $option = '';
                                       while($row = mysql_fetch_assoc($get))
                                       {
                                           $option = $row['VALSTYBINIS'];
                                       }
                                       $get2=mysql_query("SELECT SERIJINIS FROM plansetes WHERE ID='".$rez3['PLANSETESID']."'");
                                       $option2 = '';
                                       while($row2 = mysql_fetch_assoc($get2))
                                       {
                                           $option2 = $row2['SERIJINIS'];
                                       }
                                       echo '<tr>';
                                           echo '<td><center>';
                                               echo $option;
                                           echo '</center></td>';
                                           echo '<td><center>';
                                               echo $option2;
                                           echo '</center></td>';
                                       echo '</tr>';
                                       $gg++;
                                   }
                                   echo '<tr>';
                                       echo '<td colspan=2><center>';
                                           $gga = $gg / 2;
                                           echo 'Iš viso: '.$gga;
                                       echo '</center></td>';
                                   echo '</tr>';
                               echo '</table>';
                               ?>
                           </center>

 

Kaip atrodo dalis visų duomenų

vilkiku lentelė: http://i.imgur.com/A3MgJij.png

planšečių lentelė: http://i.imgur.com/qI4LAPz.png

istorijos lentelė (naudojamas realationship ar kaip ten :D): http://i.imgur.com/SQO7UzI.png

ir rezultatas: http://i.imgur.com/I49ggwv.png

Redagavo mindux9
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Blogai, kad vietoj elementarios pagalbos susilauki kritikos, šitoj temoj turėtu būti balsavimo sistemą kurie komentarai eitu viršun, kurie išvis trintusi.

 

Aš nenoriu gilintis į tą kodą, tau derėtu sukurti temą, kurioje klaustum kaip gauti informaciją tą, kuri dabar atvaizduojama blogai, turėtum surašyti kokia yra DB struktūra su keliais duomenų pavyzdžiais, tada gal sulauktum sprendimo.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

ką jau padarysi, prisirenka kokių tai plauko snarglių, pamato html kodo elementų ir jau kaukia, kad nieko nesugebi :ph34r:

 

 

 

Jeigu į temą, tai šitą koda naudoju jau daugiau kaip pusę metų. Ir tik RETKARČIAIS rodo "netiesą".

Redagavo mindux9
Nuoroda į pranešimą
Dalintis kituose puslapiuose

ką jau padarysi, prisirenka kokių tai plauko snarglių, pamato html kodo elementų ir jau kaukia, kad nieko nesugebi :ph34r:

 

Tie visokio plauko snargliai bent jau nedaro tokių kuriozų kaip:

  • Praeito amžiaus elementų naudojimas: center, b irgi šioje vietoje galima keisti;
  • HTML elementų naudojimas echo, apskritai, HTML ir PHP mišrainės fabrikavimas;
  • Estetikos nebuvimas: idiotiški kintamųjų vardai;
  • Kreipinių optimizacijos degradacija;
  • Ne snarglius pats turėtų suprasti, kas dar blogai.

.

Redagavo Quetiapine
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Pff....

Man ne estetika svarbiausia, o pateikiama informacija.

Beto kuom skirtusi galutinis rezultatas jei anot tavęs, idiotiški kintamųjų vardai būtų ne idiotiški?

 

Nejuokink :D :D

 

Vienintelis tavo normalus paminėtas punktas yra Kreipinių optimizacijos degradacija. (Degradacija, parodyk kur ta degradacija, ir kaip turi atrodyti kad nebūtu degradacija)

O daugiau vien tavo "estetika" :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kas mums užtveria kelią, tas mus stumia pirmyn. Atsiminsi šiuos žodžius.

Na manau šiuo atveju tu neteisus, nes tavo toks "užtvėrimas" vadinamas paprasčiau - pasityčiojimas, čia tas pats, kas sporto klube iš storulio juoktis, abejoju ar tu jį paskatinsi taip.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Blogai, kad vietoj elementarios pagalbos susilauki kritikos, šitoj temoj turėtu būti balsavimo sistemą kurie komentarai eitu viršun, kurie išvis trintusi.

 

Aš nenoriu gilintis į tą kodą, tau derėtu sukurti temą, kurioje klaustum kaip gauti informaciją tą, kuri dabar atvaizduojama blogai, turėtum surašyti kokia yra DB struktūra su keliais duomenų pavyzdžiais, tada gal sulauktum sprendimo.

 

Cia tau ne stacl'as, o forumas, pilnas vaiku. As asmeniskai visada stengiosi padeti, kai matau tame tiksla, taciau cia eilinis vaikis pramusineja viena-kita projekta ir mala misraine, uz kuria gauna piniga, vietoi to, kad mokintusi normaliai. Tokiais atvejais is principo nepadetu, kadangi uz aciu nedirbu.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Cia tau ne stacl'as, o forumas, pilnas vaiku. As asmeniskai visada stengiosi padeti, kai matau tame tiksla, taciau cia eilinis vaikis pramusineja viena-kita projekta ir mala misraine, uz kuria gauna piniga, vietoi to, kad mokintusi normaliai. Tokiais atvejais is principo nepadetu, kadangi uz aciu nedirbu.

Gal ir gerai, nes bet koks postas downvote'intas būtu garantuotai.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Pff....

Man ne estetika svarbiausia, o pateikiama informacija.

Beto kuom skirtusi galutinis rezultatas jei anot tavęs, idiotiški kintamųjų vardai būtų ne idiotiški?

 

Nejuokink :D :D

 

Vienintelis tavo normalus paminėtas punktas yra Kreipinių optimizacijos degradacija. (Degradacija, parodyk kur ta degradacija, ir kaip turi atrodyti kad nebūtu degradacija)

O daugiau vien tavo "estetika" :D

 

http://paul-m-jones.com/archives/34

http://thisinterestsme.com/mixing-php-html/

Redagavo Cibulinskis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gal ir ne i tema, bet as daznai naudoju toki sprendima isvedinedamas duomenys. Ka manot apie toki kodo naudojima ir surisima tarp PHP ir HTML? Ar geriau siuo atveju lupti visa HTML per PHP echo kad nebutu daug tagu "<?php ?>"?

<div class="similar">
<?php $prof = $author->popularByProfession();  ?>
<?php $nat = $author->popularByNationality(); ?>
<?php $natprof = $author->popularByNationalityProfession(); ?>					
<h2>Looking for more quote authors similar to  <b><?php echo $author->fullname; ?></b>?</h2>
<?php if($prof->count()  && isset($author->type->name)): ?>
	<h5>Famous <?php echo str_plural(strtolower($author->type->name)); ?>:</h5>
	<p>
	<?php $i = 0; foreach($prof as $p): ?>
		<a title="Quotes by <?php echo strtolower($author->type->name); ?> <?php echo $p->fullname; ?>" href="<?php echo $p->getUrl();  ?>" /><?php echo $p->fullname; ?></a><?php echo ( $i + 1 == count($prof)) ? "" :", " ; ?> 
	<?php $i++;   endforeach; ?>
	</p>
<?php endif; ?>
<?php if($nat->count() && isset($author->nationality->name)): ?>
	<h5>Famous <?php echo $author->nationality->name; ?> quote authors:</h5>
	<p>
		<?php $i = 0; foreach($nat as $p): ?>
			<a title="Quotes by <?php echo $author->nationality->name; ?> <?php echo $p->fullname; ?>" href="<?php echo $p->getUrl();  ?>" /><?php echo $p->fullname; ?></a><?php echo(count($nat) == $i + 1) ? "" :", " ; ?>
		<?php $i++; endforeach; ?>
	</p>
<?php endif; ?>
<?php if($natprof->count() && isset($author->nationality->name) && isset($author->type->name)): ?>
	<h5>Popular <?php echo $author->nationality->name; ?> <?php echo str_plural(strtolower($author->type->name)); ?>:</h5>
	<p>
		<?php $i = 0; foreach($natprof as $p): ?>
			<a title="Quotes by <?php echo $author->nationality->name; ?> <?php echo strtolower($author->type->name); ?> <?php echo $p->fullname; ?>" href="<?php echo $p->getUrl();  ?>" /><?php echo $p->fullname; ?></a><?php echo(count($natprof) == $i + 1) ? "" :", " ; ?>
		<?php $i++; endforeach; ?>
	</p>
<?php endif; ?>
</div>

Redagavo kaunomanas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gal ir ne i tema, bet as naudoju mazdaug toki sprendima jeigu reikia paimti is DB kazka greitai. Ka manot apie toki kodo naudojima ir surisima tarp PHP ir HTML?

<div class="similar">
				<?php $prof = $author->popularByProfession();  ?>
				<?php $nat = $author->Nationality(); ?>
				<?php $natprof = $author->popularByNationalityProfession(); ?>					
				<h2>Looking for more quote authors similar to  <b><?php echo $author->fullname; ?></b>?</h2>
				<?php if($prof->count()  && isset($author->type->name)): ?>
					<h5>Famous <?php echo str_plural(strtolower($author->type->name)); ?>:</h5>
					<p>
						<?php $i = 0; foreach($prof as $p): ?>
							<a title="Quotes by <?php echo strtolower($author->type->name); ?> <?php echo $p->fullname; ?>" href="<?php echo $p->getUrl();  ?>" /><?php echo $p->fullname; ?></a><?php echo ( $i + 1 == count($prof)) ? "" :", " ; ?> 
						<?php $i++;   endforeach; ?>
					</p>
				<?php endif; ?>
				<?php if($nat->count() && isset($author->nationality->name)): ?>
					<h5>Famous <?php echo $author->nationality->name; ?> quote authors:</h5>
					<p>
						<?php $i = 0; foreach($nat as $p): ?>
							<a title="Quotes by <?php echo $author->nationality->name; ?> <?php echo $p->fullname; ?>" href="<?php echo $p->getUrl();  ?>" /><?php echo $p->fullname; ?></a><?php echo(count($nat) == $i + 1) ? "" :", " ; ?>
						<?php $i++; endforeach; ?>
					</p>
				<?php endif; ?>
				<?php if($natprof->count() && isset($author->nationality->name) && isset($author->type->name)): ?>

					<h5>Popular <?php echo $author->nationality->name; ?> <?php echo str_plural(strtolower($author->type->name)); ?>:</h5>
					<p>
						<?php $i = 0; foreach($natprof as $p): ?>
							<a title="Quotes by <?php echo $author->nationality->name; ?> <?php echo strtolower($author->type->name); ?> <?php echo $p->fullname; ?>" href="<?php echo $p->getUrl();  ?>" /><?php echo $p->fullname; ?></a><?php echo(count($natprof) == $i + 1) ? "" :", " ; ?>
						<?php $i++; endforeach; ?>
					</p>

				<?php endif; ?>
</div>

Nėr ką komentuoti, parodyk geriau klasę ir jau dabar matyti, kad pvz popularByKazkas reiktu daryti tiesiog kaip popularBy('kazkas'), toks metodas daug efektyvesnis.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nėr ką komentuoti, parodyk geriau klasę ir jau dabar matyti, kad pvz popularByKazkas reiktu daryti tiesiog kaip popularBy('kazkas'), toks metodas daug efektyvesnis.

Klase tokia sumazinus, bet klausiau daugiau apie paty isvedima duomenu i HTML. (paredagavau)

 

<?php

class Author extends Model {


public function popularByNationalityProfession(){
	return Author::where('nationality_id',$this->nationality_id)->where('type_id',$this->type_id)->where('id','!=',$this->id)->orderBy('views','desc')->limit(10)->get();
}
public function popularByNationality(){
	return Author::where('nationality_id',$this->nationality_id)->where('id','!=',$this->id)->orderBy('views','desc')->limit(10)->get();
}
public function popularByProfession(){
	return Author::where('type_id',$this->type_id)->where('id','!=',$this->id)->orderBy('views','desc')->limit(10)->get();
}

}

Redagavo kaunomanas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

 

<div class="similar">
..
	<?php $i = 0; foreach($prof as $p): ?>
		<a title="Quotes by <?php echo strtolower($author->type->name); ?> <?php echo $p->fullname; ?>" href="<?php echo $p->getUrl();  ?>" /><?php echo $p->fullname; ?></a><?php echo ( $i + 1 == count($prof)) ? "" :", " ; ?> 
	<?php $i++;   endforeach; ?>

 

For each turi savyje $key, nereikia dar papildomai kurtis $i kintamojo:

 

<div class="similar">
..
<?php foreach($prof as $i => $p): ?>
    ..
<?php endforeach; ?>

Nuoroda į pranešimą
Dalintis kituose puslapiuose

For each turi savyje $key, nereikia dar papildomai kurtis $i kintamojo:

 

<div class="similar">
..
<?php foreach($prof as $i => $p): ?>
    ..
<?php endforeach; ?>

 

Nu foreach nevisada savije turi $key kaip didejanti skaiciu, ziurint pro koki masyva suksi. Jeigu pro associatyvu, kur kejus belekoks stringas, tada reiketu papildomo kintmojo $i arba for ciklo. O siuo atveju tu teisus.

Redagavo kaunomanas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Klase tokia sumazinus, bet klausiau daugiau apie paty isvedima duomenu i HTML. (paredagavau)

 

<?php

class Author extends Model {


public function popularByNationalityProfession(){
	return Author::where('nationality_id',$this->nationality_id)->where('type_id',$this->type_id)->where('id','!=',$this->id)->orderBy('views','desc')->limit(10)->get();
}
public function popularByNationality(){
	return Author::where('nationality_id',$this->nationality_id)->where('id','!=',$this->id)->orderBy('views','desc')->limit(10)->get();
}
public function popularByProfession(){
	return Author::where('type_id',$this->type_id)->where('id','!=',$this->id)->orderBy('views','desc')->limit(10)->get();
}

}

Netiksliai kiek perskaičiau prašymą. Man labiau į html patinka integruoti php taip:

 

<?php foreach ( $results as $row ) : ?>

   <div><?php echo $row['col'] ?></div>

<?php endforeach ?>

Redagavo Prodev
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

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

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...