abfrage

frank_muc

Grünschnabel
hallo,
ich durchsuche innerhalb meiner for-schleife das db-array nach dem inhalt $where.
der zeiger meiner abfrage steht aber wohl auf der where, so werden mir die falschen daten angezeitg.

11.05.2004.30 ID :
11.05.2004.30 DDDDATEN :
16.05.2004.30 WHERE :

12.05.2004 ID :
12.05.2004 DDDDATEN :
11.05.2004.30 WHERE :

also wird nach dem 11.05.2004.30 gesucht werden mit die daten des 12.05.2004.30 angezeigt, weil der zeiger der where sich hier die daten holt und nicht im ergebnis.

sorry ich weiß das ich das nicht gut beschreiben kann :-(

hier noch mein code:
PHP:
$my = 0;
          $result = mysql("db100588358", "SELECT id, daten FROM KALENDER_DATEN");
          //MYSQL_ASSOC erstellt assoziatives Array, spalte direkt ansprechbar
          while($mydaten = mysql_fetch_array($result, MYSQL_ASSOC))  {
          $meinarray[$my] = $mydaten["id"];
          $meinarray2[$my] = $mydaten["daten"];
          $my++;
          }//end while

           for($l=0; $l<7;$l++){
                      if($x == $kkkk) {
                      $caltime = "30";
                      $where =($wochentag[$l].".".$caltime);
                      echo $meinarray[$l]."ID :<br>".$meinarray2[$l]."DATEN :<br>";
                      echo $where."WHERE :<hr><br>";
               if (in_array("$where", $meinarray)) {
               echo "<td bgcolor=\"#FFFFFF\"><a href=\"javascript:open_nachricht($j,".$termin.")\" class=\"anzeige\">";
               echo "<a href=\".$termin\">".$meinarray2[$l]."+".$meinarray[$l];
               echo "</a></td>";
               }else{
               echo "<td bgcolor=\"#CCCCFF\">&nbsp;</td>";
               }
               if($wochentag[$l]==6) echo "</tr><tr><td>&nbsp;</td>";
                        } //end if
           }//end for

es wäre toll wenn hier jemand eine lösung hätte, bin nämlich schon am verzweifeln.
danke
 
was genau willst du denn machen? Weil wenn ich mir den Code anschaue, geht das sicherlich auch einfacher, nur müsste man wissen was du genau tuen willst...
 
ich habe einen wochenkalender. in dem code abschnitt will ich zu jedem tag der woche, für die zeit 08.00 uhr einträge wenn vorhanden aus der datenbank auslesen.
hierzu vergleiche ich den tag mit zeit aus dem kalender 11.05.2004.30 WHERE
mit dem datenabnkeintrag den ich mir in das array geholt habe. 11.05.2004.30I D :
das macht der code auch noch richtig. nur zeigt er mit dann die falschen daten an.

ob es einfacher geht weiß ich nicht. über der while-schleife ist noch eine for für mein kalender.

hier mal die url des kalenders:
http://www.fussballkinder.de/planer/calender/cal16.php?yyyy=2004&kkkk=20

danke
 
hmm als um Ehrlich zu sein, ist mir der Code sehr schleierhaft.
Um zu dem Ergebnis zu kommen würde ich das folgendermassen realisieren:
Eine Tabelle anlegen, in der in dem einen Feld der Unix Timestamp des betreffenden Eintrags steht und im Zweiten die Daten zu dem Termin.
Zum Auslesen würde ich dann alle Einträge auslesen, deren Timetamp zwischen now() und now()+604800 (= 1 Woche in Sekunden).
Somit bekomsmt du alle Termine der oWoche, auch unabhängig davon ob es ein Monatswechsel ist.
Dann durchläufst du dieses Ergebnis mit einer Schleife und vergleichst dann das Timestamp mit einem Gewünschten. mit mktime() kannst du dir aus einem Wunschdatum einen Timestamp machen.

Das ändert zwar nichts an deinem Problem, aber vieleicht hilft es dir trotzdem weiter, da ich mit deinem Code wenig anfangen kann, alleine bei so sachen wie warum ist das Array uas der Datenbank in meinarray und meinarray2 unterteilt etc.
 
vielen dank für die antwort.
bin schon selber dahintergekommen.

mein problem war in_array liefert nur einen boolschen wert.

vielen dank nochmals
gruss
 
Zurück