Jump to content
php.lv forumi

DB noteiktu ierakstu izvade ekselī


astere

Recommended Posts

Sveicināti!

Griežos pie Jums ar nelielu problēmiņu, ir nepieciešams izveidot nelielu skriptiņu, kas man izvadītu noteiktus ierakstus ekselī, piemērā rādītais skriptiņs strādā, ja ir ievietos jaunā php failā un nodefinēti mainīgie pieprasījumā, bet tas man nekam neder, jo mainīgie ir jāņem no cita pieprasījuma. Šis ir esošais SKRIPTS, kurš strādā atsevišķā failā. Ja ievietoju zem swich funkcijas, kur caur action es to izsaucu tad man bļauj, ka headers alredy send, šis bļāviens ir pilnīgi logisks, jo ir jau izsūtīti headeri. Tad nu es lūdzu, lai iedodat man padomu,kā smuki izvadīt datus uz xls failu, bez liekām problēmām, neprasu atrisinājumu, vienk. padomu, lai var palauzīt galvu :)

Link to comment
Share on other sites

Nesaprotu kur ir problēma...

Pirms izsaukt jebkādu header(..) (vai kukiju uzstādīšanas) funkciju, nedrīkst sūtīt nekādus datus uz klientu (echo/print). Vajag kodu pārkārtot tā, lai tas nenotiek, un tā ir arī visa māksla.

Te jau n-tās reizes ir runāts par "Headers already sent"-kļūdu: http://php.lv/f/index.php?showtopic=7294

 

Un ar datubāzēm šai topiciņā/problēmiņā/skriptiņā ir visai maz sakara.

Link to comment
Share on other sites

Lai neveidotu jaunu topiku, vai ir iespējams saīsināt šo kodu, mērķis izvēltnē izvēlēties konkrētu datumu un defoultais datums ir konkrētās dienas datums:

 

$dienaxsz=date("d");
$query="SELECT id,diena FROM dienas where diena<=$dienaxsz-1"; $result = mysql_query ($query);
$query2="SELECT id,diena FROM dienas where diena=$dienaxsz"; $result2 = mysql_query ($query2);
$query3="SELECT id,diena FROM dienas where diena>=$dienaxsz+1"; $result3 = mysql_query ($query3);
echo "<select name='izp_diena' class='dienas_terminjs_uzsakshana' >"; 
while($nt=mysql_fetch_array($result)){ echo " <option value='$nt[id]'>$nt[diena]</option>";}
while($nt=mysql_fetch_array($result2)){ echo " <option value='$nt[id]' selected>$nt[diena]</option>";}
while($nt=mysql_fetch_array($result3)){ echo " <option value='$nt[id]'>$nt[diena]</option>";}
echo "</select>";

Edited by astere
Link to comment
Share on other sites

Paldies, par palīdzību, bet tavu piedāvato variantu par 'OR' izmēģināju pašā šākumā pirms uzrakstiju esošo kodu, problēma bija ar to, ka izvēltnē selected. value parādījās kā vajag , bet nākamās nē, piem. selected. bija 2, tālākās 3.4.5.6. un līdz 31. un tad tikai 1, bet tajā pašā laikā bija nepieciešams, lai ir šādi 1;iezīmēts 2;3;4;... 31; , tiesa, tad man bija tikai viena option izvade kur izvadīja visus datus, varbūt arī tur slēpās šī problēma.

Edited by astere
Link to comment
Share on other sites

Īstenībā tev nekādus OR tev tur nevajag. Nezinu kāpec kautkādu OR tur rakstīju.. vajag vienkārši izselektēt visus datus no tabulas.

Un svarīgākais ir tas, ka MySQL kveriji neatgriež datus sakārtotus. Vajag pašam vienmēr padot kverijā kārtību kādā nepieciešams saņemt kverija rezultātus. To dara ar ORDER BY:

$dienaxsz = date("d");
$query ="SELECT id,diena FROM dienas ORDER BY diena";
$result = mysql_query ($query) or die(mysql_error());

echo "<select name='izp_diena' class='dienas_terminjs_uzsakshana'>";
while ($nt = mysql_fetch_arrray($result))
{
$selected = $nt["diena"] == $dienaxsz ? 'selected="selected"' : '';
echo "  <option value='$nt[id]' $selected>$nt[diena]</option>";
}
echo "</select>";

Link to comment
Share on other sites

×
×
  • Create New...