[ drmilun9 @ 26.06.2012. 17:51 ] @
POZDRAV SVIMA.

Imam problem prilikom ispisa iz Mysql baze. Problem je sledeći: koristim foreach petlju da mi se ispišu podaci iz baze. I petlja dobro radi kad treba da se ispišu podaci koji se nalaze u bazi ali stvar je u tome da ja želim da kad nema podataka u bazi, koje korisnik može da zatraži da se ispiše porukica da "nema traženih podataka" . Mislim da se za tu opciju koristi opcija "empty" ili nešto slično. Mislim da je ova moja foreach petlja nepotpuna koju koristim i znači nedostaje mi opcija da kada korisnik zatraži određene podatke u bazi koji nepostoje i klikne na "submit" da se pojavi "nema traženih podataka". Evo i koda:



global $wpdb;

$imena = $wpdb->get_results("select * from tabelaslika where cijena BETWEEN $cijenaod AND $cijenado AND kvadrati BETWEEN $kvadratiod AND $kvadratido AND (mjesto) = '".$mjesto."'AND (objekat) = '".$objekat."'AND (kategorija) = '".$kategorija."' ");

echo "<table>";

foreach($imena as $customer){
echo "<tr>";
echo "<td>".$customer->kategorija."</td>";
echo "<td>".$customer->mjesto."</td>";
echo "<td>".$customer->objekat."</td>";
echo "<td>".$customer->kvadrati."</td>";
echo "<td>".$customer->cijena."</td>";
echo "</td>";

}
echo "</table>";


HVALA SVIMA UNAPRED NA EVENTUALNOJ POMOĆI. POMAGAJTE
[ vmosnak @ 26.06.2012. 18:38 ] @
Code:

if(count($imena) > 0){
    echo "<table>";
    foreach($imena as $customer){
         echo "<tr>";
         echo "<td>".$customer->kategorija."</td>";
         echo "<td>".$customer->mjesto."</td>";
         echo "<td>".$customer->objekat."</td>";
         echo "<td>".$customer->kvadrati."</td>";
         echo "<td>".$customer->cijena."</td>";
         echo "</td>";
    }
    echo "</table>";
}


wp-codex

Generic, mulitple row results can be pulled from the database with get_results. The function returns the entire query result as an array.
[ plus_minus @ 26.06.2012. 18:56 ] @
@drmilun9

Mali off.

drmilune, zašto echo na svakoj liniji?

Zar ti nije lakše ovako..

Code (php):


echo '<table>';

foreach($imena as $customer){

echo
'<tr>
<td>'
.$customer->kategorija.'</td>
<td>'
.$customer->mjesto.'</td>
<td>'
.$customer->objekat.'</td>
<td>'
.$customer->kvadrati.'</td>
<td>'
.$customer->cijena.'</td>
</tr>'
;

}

echo '</table>';

 


I uvek se trudi da php-om ispisuješ html pomoću singlquota, gde god je to moguće.

Zašto? Zato što doublequote može da sadrži i promenljivu.
A kada je singlquot, onda je u pitanju uvek string value. Dakle, tekst ili tag i parser onda "ne gleda" jel' to možda promenjiva, već se zna šta je. Mali + na performanse dakle.
Pored toga, kada pišeš singlquot i naiđeš na deo gde treba da outputuješ recimo <tr class="something">, ti ćeš ga tako i ispisati. Nećeš morati da "begaš"

npr. echo "<tr class=\"something\">";

Što je jako jako olakšavajuća okolnost u radu onda kada ima mnogo klasa i id za ispisivanje.

poz.

[Ovu poruku je menjao plus_minus dana 26.06.2012. u 20:08 GMT+1]
[ ivan.a @ 26.06.2012. 20:42 ] @
Zašto uopšte koristiti php za html output? Po meni je najidealnije rešenje koristiti čist HTML i razdvajati od php-a gde god je to moguće.

Code (php):
<table>
<?php  foreach($imena as $customer){ ?>
<td><?php echo $customer->kategorija; ?></td>
<td><?php echo $customer->mjesto; ?></td>
<td><?php echo $customer->objekat; ?></td>
<td><?php echo $customer->kvadrati; ?></td>
<td><?php echo $customer->cijena; ?></td>
<?php } ?>
</table>

[ drmilun9 @ 26.06.2012. 22:03 ] @
Hvala svima na odgovorima i potrudiću se da popravim način pisanja koda, ali meni još uvjek nije jasna petlja. Jer kad ukucam i ovaj kod meni prilikom osvježavanja stranice ispisuje prvo "nema traženih rezultata" bez čekanja da korisnik klikne "submit" to jest da unese tražene rezultate. Znači problem je što se odmah po otvaranju stranice prikaže "nema traženih rezultata" bez uopšte ikakve reakcije od strane korisnika i prije traženja bilo kakvih podataka iz baze. Pozdravček.


global $wpdb;

$imena = $wpdb->get_results("select * from tabelaslika where cijena BETWEEN $cijenaod AND $cijenado AND kvadrati BETWEEN $kvadratiod AND $kvadratido AND (mjesto) = '".$mjesto."'AND (objekat) = '".$objekat."'AND (kategorija) = '".$kategorija."' ");

echo "<table>";

if(count($imena) > 0){

foreach($imena as $customer){

echo "<tr>";
echo "<td>".$customer->kategorija."</td>";
echo "<td>".$customer->mjesto."</td>";
echo "<td>".$customer->objekat."</td>";
echo "<td>".$customer->kvadrati."</td>";

echo "</tr>";
}
}
else{
echo "nema traženih podataka";
}
echo "</tr>";


echo "</table>";
[ vmosnak @ 26.06.2012. 22:34 ] @
ne znam da li pravish plugin, ili sta god, ali je tesko odgovoriti s obzirom da ne znam gde i kada ti se izvrshava ovaj kod.
Koliko sam ja shvatio, taj kod se izvrsava cim se stranica ucita, samim tim $imena nije definisana i izvrshava se "else" deo "if-else". Trebao bi taj deo koda da izvrshavash tek kada je forma u kojoj korisnik unosi kriterijume pretrage submit-ovana.
Nadam se da sam shvatio, i pomogao oko problema, ako nisam slobodno ponovo pitaj.
[ plus_minus @ 26.06.2012. 22:48 ] @
@ivan.a

Slažem se. Slažem se u potpunosti. :) Njegov kod je takav kakav je i dalje od toga ne znamo.

Ne mora ni "echo". A ni "<?php" već samo "<?=$customer->kategorija; ?> etc.. " ali, lepše će njemu biti kada sam krene to da uviđa..

A možda i grešim. :)

Osim toga, zašto foreach u delu gde je html?

Zašto ne sve to kao mala jednostavna funkcija?
A u delu gde treba da bude, umesto petlje i tabele,
samo jedno "<body><table><?=$function; ?></table> etc.. </body>" parčence.
[ drmilun9 @ 26.06.2012. 23:06 ] @
Hvala svima na pomoći, riješio sam problem pomoću ovog koda:

if (isset($_POST['submittt']))