| 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: 9 let
|
|||
0