Ursäkta knasig rubrik, men... Jag har en databastabell som innehåller pussel. Jag skriver en fråga i SQL som plockar ut alla pussel så att de nyaste hamnar först, så långt funkar det utmärkt.
Men... Nu vill jag lägga in en header i utskriften: These puzzles have been available since <datum>
Denna ska alltså bara stå EN gång per datum (eftersom vanligtvis flera pussel adderas samma dag). Följande kod borde, tycker jag, skriva ut datumet bara då det är annorlunda än förra gången. Men det gör den inte! Headern kommer ut en gång per pussel. Varför?
//....
$rowP = mysql_fetch_array($resP);
//...
$dateOld = "";
while ($rowJS = mysql_fetch_array($resJS)) {
$dateCurr = $rowP['datum']; //Ex March 25th, 2007
if ($dateCurr != $dateOld) {
$dateOld = $dateCurr;
echo "<h2>These puzzles have been available since $dateCurr</h2>";
}
//....
Men det skumma är att denna header alltid kommer ut, även när datumen ÄR lika??? :q
En utskrift av vad old eg hade för värde senare, och slanten trillade ner! Den sattes i 90% av alla fall om till "", därför att de flesta pussel bara har en variant. Så felet berodde på felplacering av nollställandet av värdet, den skulle ligga utanför första whileslingan också (vilken inte ens syntes på mitt utsnitt av kod)! :x
//....
$dateOld = ""; //<--- utflyttad
while ($rowP = mysql_fetch_array($resP)) {
//...
while ($rowJS = mysql_fetch_array($resJS)) {
$dateCurr = $rowP['datum']; //Ex March 25th, 2007
if ($dateCurr != $dateOld) {
$dateOld = $dateCurr;
echo "<h2>These puzzles have been available since $dateCurr</h2>";
}
//....
255 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849