Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

WHERE Bedingung unter PHP geht nicht?

Empfohlene Antworten

Hallo,

ich bastle atm an einem Script, welches mir aktuelle Termine auflistet. Dabei zeigt es unten die gesamten Termine an, und oben drüber, die Termine, die man am aktuelle Tag hat:

---AKTUELLER TAG--

- Termin 1

- Termin 2

--------------------------------

---GESAMT---

- Termin 1

..

..

..

Jetzt habe ich das Problem, dass mein Select Befehl, mit dem ich nur die Termine mit dem aktuellen Datum haben nicht funktioniert :(

Zuerst hole ich mir das Datum

$timestamp = time(); 
$date = date("d.m.Y",$timestamp); [/php]

Dann pack ich das Datum in ein Formularfeld

[php]print "<form action=\"$PHP_SELF\" method=\"GET\"><b>\n";
print "<input type=\"hidden\" size=\"50\" name=\"aktuell\" maxlenght=\"100\" value=\"".$date."\">\n";
print "</form>";

Und versuche dann mit einem Select Befehl darauf zuzugreifen

$heutigetermine = mysql_query( "SELECT * FROM projekt_termine WHERE datum=$aktuell" ); 

Danach will ich ihn mit ner While Schleife ausgeben

<? while ( $daten = mysql_fetch_array( $heutigetermine ) )
{ ?>
Heutige Termine:<br>
:: <?php echo $daten[termin_name] ?>
<? } ?>[/php]

Nun sagts mir jedoch

Warning: Supplied argument is not a valid MySQL result resource

Der Fehler soll in der While-Schleife liegen, aber ich tip eher auf den SQL Befehl, denn wenn ich den SQL Befehl umschreibe und die WHERE Bedingung weglasse gehts...aber halt nich so, wie ich es benötige :(

Hat einer einen Tip? :)

Die Variable $date zeigts mir mit dem echo befehl richtig an, hier liegt der fehler also nicht.

gruß,

lung

$heutigetermine = mysql_query( " SELECT * FROM projekt_termine WHERE datum = '$aktuel'l" );

so geht das. :P

btw. select * from macht man nicht. wenn es eh nur 2 oder 3 felder sind, kannst du auch SELECT feld1, feld2, feld3 FROM table nehmen... das ist schneller....

so long

noch was:


<? while ( $daten = mysql_fetch_array( $heutigetermine ) )

    { ?>

Heutige Termine:<br>

:: <?php echo $daten[termin_name] ?>

<? } ?>

das iss nich dein ernst, oder? schonmal was von echo() gehoert?

<?php

while ( $daten = mysql_fetch_array( $heutigetermine ) ) {

  echo( 'Heutige Termine:<br>' );

  echo $daten['termin_name'];

}

ist wohl um einiges schneller und schoener... bei jedem <?php muss erst mal der php interpreter wieder gestartet werden... das dauert... ;)

schonmal was von echo() gehoert?

ja klar siehst doch hier in der zeile:

<?php echo $daten[termin_name] ?>

*lacht*

Original geschrieben von -silencer-



<?php

while ( $daten = mysql_fetch_array( $heutigetermine ) ) {

  echo( 'Heutige Termine:<br>' );

  echo $daten['termin_name'];

}

Das hilft ihm nur immer noch nicht, da $heutigetermine so nicht mehr gefüllt ist.

Du musst die Abfrage und die Verarbeitung des Ergebnisses in einem <?php ... ?> packen.

Gruß Jaraz

<?php
/* Listing 1 */
/* Formular - kurz und schmerzlos */
?>
<form action="<?=$GLOBALS['PHP_SELF'] ?>" method="GET">
<input type="hidden" size="50" name="aktuell" maxlength="100" value="<?=time() ?>">
<input type="submit" >
</form>

<?php
/* Listing 2 */
/* Verarbeitung */

/* Alle Fehlermeldungen einschalten */
error_reporting(E_ALL);

if(isset($_GET['aktuell']) && !empty($_GET['aktuell'])){

/* Formatierung des Datums nach ISO nicht vergessen */

$heutigetermine = mysql_query( "SELECT * FROM projekt_termine"
." WHERE datum='".strftime('%Y-%m-%e',$_GET['aktuell'])."'" );



print "Heutige Termine:<br>";

while ( $daten = mysql_fetch_assoc( $heutigetermine ) ){
/* evtl. foreach(){} */
print $daten['termin_name'];

}

}
?>
[/PHP]

Achja,

das eigentliche Problem dürfte deine Query sein.

Also am besten nach der Query das Ergebnis checken!

Würde da aber auch:

$heutigetermine = mysql_query( "SELECT * FROM projekt_termine WHERE datum=getdate()" );

gehen?

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.