Autor | Zpráva | ||
---|---|---|---|
tomas2245 Profil |
Zdravím, mám príliš veľký počet dotazov na 1 stránku pretože pre každé písmeno v abecede potrebujem vybrať zákazníkov...
ako by som to mohol prosím vás spraviť aby som pre každé iné písmeno mohol vyberať zákazníkov z DB bez použitia viacerých dotazov? Kód: $vratz = mysqli_query($pripoj,"SELECT meno, priezvisko FROM objednavky WHERE skupina='$cisloskupiny' AND pismeno = 'A' ORDER by priezvisko"); while($vratz2 = mysqli_fetch_array($vratz)){ $pismeno_A .='<tr> <td>'.$vratz2['meno'] '.$vratz2['priezvisko']</td> </tr>'; } pretože potom mám tabuľku kde mám daných zákazníkov usporiadaných podľa abecedy... |
||
Alphard Profil |
#2 · Zasláno: 23. 4. 2017, 12:35:36
A co kdyby se tam ta padmínka vůbec nepsala? Vyberou se všechna písmena.
|
||
tomas2245 Profil |
#3 · Zasláno: 23. 4. 2017, 12:40:42
a potom ako by som priradil už v html daných zákazníkov s písmenom napr. A do stĺpca = A?
|
||
Alphard Profil |
#4 · Zasláno: 23. 4. 2017, 13:02:10
Jednodušší případ viz Nejčastější potíže s PHP (FAQ) » Nadpis skupiny nejen při výpisu z databáze, ve složitějších jde data uložit do asociativního pole a pak s ním dělat téměř cokoliv.
|
||
tomas2245 Profil |
#5 · Zasláno: 23. 4. 2017, 13:35:57
vďaka :)
|
||
tomas2245 Profil |
všetko funguje, len by som sa chcel ešte spýtať či by sa dalo nejak vyriešiť ešte floatovanie tabuliek..napr. na ľavej strane: A, B, C, Č a ostatné napravo...
Kód: $vrat_zoznam = ""; $vratz = mysqli_query($pripoj,"SELECT id, pismeno, priezvisko FROM objednavky WHERE skupina='$cisloskupiny' ORDER BY pismeno, priezvisko"); while($vratz2 = mysqli_fetch_array($vratz)) { if ($vratz2['pismeno'] != $vrat_zoznam) { $vrat_zoznam = $vratz2['pismeno']; $test .= ' <table class="tg2" style="float:left;"> <tr> <td class="zakaznik">'.$vrat_zoznam.'</td> </tr>'; } $test .= ' <tr> <td class="zakaznik">'.$vratz2['priezvisko'].'</td> </tr> '; } |
||
tomas2245 Profil |
ešte by som sa chcel spýtať ako spraviť z týchto dvoch dotazov 1?
<?php $dotaz1 = mysqli_query($pripoj,"SELECT * FROM tabulka WHERE druh='moznost1'"); $dotaz1 = mysqli_fetch_array($dotaz1); $dotaz2 = mysqli_query($pripoj,"SELECT * FROM tabulka WHERE druh='moznost2'"); $dotaz2 = mysqli_fetch_array($dotaz2); $vypis->set("moznost1", $dotaz1['obsah']); $vypis->set("moznost1", $dotaz2['obsah']); ?> |
||
Slark Profil |
$query= mysqli_query($pripoj, "SELECT * FROM tabulka WHERE druh='moznost1' AND druh = 'moznost2' "); SQL kód je náchylný na SQL Injection. Vstupy musíš ošetřit přes mysqli_real_escape_string() Omlouvám se, náchylný na SQL injection by byl pouze kdyby byly hodnoty předávány z venku. Pokud jsou tam takto napevno tak je to jedno. |
||
tomas2245 Profil |
nemôžem to tak zapísať potom to nemám ako v tom: $vypis-e rozdeliť ktorý obsah patrí k danému druhu...
|
||
Alphard Profil |
#10 · Zasláno: 23. 4. 2017, 23:03:32
Ono by to takhle ani nefungovalo, tam by musel být OR. Použijete union a jako jeden ze sloupců si označne, která varianta to je.
|
||
tomas2245 Profil |
#11 · Zasláno: 23. 4. 2017, 23:46:44
Alphard:
ďakujem ;) |
||
Keeehi Profil |
#12 · Zasláno: 24. 4. 2017, 11:09:54
Alphard:
Souhlasím s tím, že tam má být OR, případně to celé přepsat jako IN a množina. UNION je zbytečný když to má v jedné tabulce. |
||
Časová prodleva: 8 let
|
0