Avatar
katrincsak
Člen
Avatar
katrincsak:

Zdravím,

Potřebuji pomoc :(

  1. Uživatel si zvolí, které inzeráty chce zobrazovat podle zadaných údajů např. kategorie, region, psč atp. To se uloží do DB s názvem "zasilani_emailu". Uživatel si toho může zvolit více a tak řádků je xx.
  2. A já potřebuji vytahat data z tabulky výše zmíněné "zasilani_emailu". (Což je v pohodě samozřejmě - uložím do pole).
  3. Jenže 1 hodnota v poli může mít xx výsledků při dotazu na mysql a absolutně netuším jak to do pole dostat.
  • Script níže funguje, vypíše data dle zadaných kritérií, ale jak je vidět např. na obrázku, který je níže, tak tiskáren je je mnohem více, takže se sice zeptám opakovaně, ale jen s jedním výsledkem na 1 dotaz. Hlavně zároveň nechápu, proč musím mít tak blbej "název" pole "[nazev]->[0]->[] ".
// Vytahám si data do pole z tabulky "zasilani_emailu" podle uživatele.
$this->data['zasilaneEmaily'] = $DataSQL->sqlSelectVsechny('*', 'zasilani_emailu', 'id_uzivatele', $_SESSION['prihlaseni']['id']);

// Aby nedocházelo k opakovanému dotaz na mysql (snížení zátěže a délky dotazu).
Db::beginTrans();

//Výpis do pole, to proč název pole vypadá takto divně by mě taky zajímalo proč to jinak nejde.
foreach($this->data['zasilaneEmaily'] as $zasilani){
  $this->data['vypisInzeratu'][0][] = $DataSQL->zasilaniEmailuSelect($zasilani['sub_kategorie'],$zasilani['region'],$zasilani['cena_min'],$zasilani['cena_max']);
}

// Ukončení Db::beginTrans();
Db::commitDB();

Výpis pak vypadá takto:

foreach($vypisInzeratu[0] as $inzerat){
 if($inzerat[0]['zobrazeni'] == 1){
 echo "
  <form method='post' >
   <tr>
        <td> ".$inzerat[0]['id']."</td>
        <td class='cena'> ".$inzerat[0]['cena1']." Kč</td>
        <td>".$inzerat[0]['nadpis']."</td>
        <td class='akce'>
        <input type='hidden' name='id_inzerat' value='".$inzerat[0]['id']."'/>
        <input class='button3' type='submit' name='obnovit' value='Obnovit'/></td>
   </tr>
 </form>";
 }
}

Děkuji moc za rady.

 
Odpovědět 4. ledna 12:33
Avatar
katrincsak
Člen
Avatar
katrincsak:

Struktura by tedy měla vypadat takto něják.

noteboky ->
- NTB 1
- NTB 2
- NTB 3
tiskarny ->
- TISK 1
- TISK 2
- TISK 3
ostatni ->
- OSTATNI 1

Výpis dle výše uvedeného udělá prakticky jen.

NTB1, TISK1, OSTATNI1

Níže lze ještě vidět zápis..

Editováno 4. ledna 12:41
 
Nahoru Odpovědět 4. ledna 12:38
Avatar
katrincsak
Člen
Avatar
katrincsak:

Chyba editace a již nešlo vložit fotku...

Editováno 4. ledna 12:42
 
Nahoru Odpovědět 4. ledna 12:42
Avatar
katrincsak
Člen
Avatar
katrincsak:

Děkuji všem, že nikdo nereagoval aspoň jsem byl nucen nad věcí více přemýšlet.

Použil jsem to co již dříve a to cyklus "for" a funkci "count".

(Je to samozřejmě jen testovací výpis se kterým už budu pracovat jinak).

$pZaklad = count($this->data['vypisInzeratu']);

for($x=0; $x < $pZaklad; $x++){
 echo "Pořadí: ".$x."<br>";
 $pHlavni = count($this->data['vypisInzeratu'][$x]);
   for($y=0; $y < $pHlavni; $y++){
   echo "Inzerát".$y.":".$this->data['vypisInzeratu'][$x][$y]['nadpis']."<br>";
  }
}

Rada: Stačí se řádně vyspat, ráno si udělat kafe, zapnout pc, vypnout fb, vypit kafe .... A výsledek se dostaví :D

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět  +1 9. ledna 11:09
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.