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
A co kdyby se tam ta padmínka vůbec nepsala? Vyberou se všechna písmena.
tomas2245
Profil
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
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
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
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
Alphard:
ďakujem ;)
Keeehi
Profil
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.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0