Datenbank Forum - für Anfänger und Profis

Willkommen im Datenbank Forum von Datenbanken-verstehen.de - Das Datenbank, Data Warehouse & Business Intelligence Forum!

Das Datenbank Forum für Anfänger und Profis ist eine Community zu den Themen Datenbanken, Data Warehouse & Business Intelligence. Nimm teil an der Community von Datenbanken-verstehen.de und tausch dich mit deinen Fragen und Lösungen mit anderen Nutzern aus.

Als registrierter Benutzer genießt Du viele Vorteile, wie

  • den vollen Zugang zu allen Foren und Unterforen
  • Kostenloses Lernmaterial inkl. Lösungen zum Thema Datenbanken
  • Zugriff auf DB-Tutorials, Best Practices und SQL-Snippets

Bevor Du einen Beitrag verfassen möchtest, kannst Du dich einfach kostenlos registrieren.

oder Einloggen mit



Beachte bitte die Forenregeln von Datenbanken-verstehen.de. Wir wünschen Dir viel Spaß im Datenbank Forum! - Dein Datenbanken-verstehen.de-Team

eigenartige Ergebnisse bei Abfrage mit größer als

Hier werden die SQL Grundlagen behandelt...

eigenartige Ergebnisse bei Abfrage mit größer als

Beitragvon axl-g » Do 5. Sep 2019, 13:09

Hallo ich bin axl und neu hier.
Ich habe mich hier angemeldet, weil ich bei einer Abfrage auf ein eigenartiges Phänomen gestossen bin und den Fehler nicht finden kann.

Ich suche nach Werten, die nach einem bestimmten Datum erstellt wurden. Die Tabelle speichert den Datumswert als varchar(10) im Format JJJJ-MM-TT.

Ich frage so:
Code: Alles auswählen
$query = '
        SELECT `Nr` , `Firma` , `E_Mail` , `Anlagedatum` , `AngebotstextUnten`
        FROM `' . $db_table . '`
        WHERE `Anlagedatum` >= \'' . $lastdate . '\'
        COLLATE latin1_general_ci
        AND
        `AngebotstextUnten` > CONVERT( _utf8 \'\' USING latin1 ) COLLATE latin1_general_ci
';


Das $lastdate wird aus einer Textdatei ebenfalls im Format JJJJ-MM-TT ausgelesen und auch mit echo korrekt dargestellt.

Die Ergebnisse die ich erhalte liegen immer ein paar Tage nach $lastdate. Zum Beispiel:

$lastdate: 2019-07-05, 1. Ergebis 2019-07-08
$lastdate: 2019-07-04, 1. Ergebis 2019-07-08
$lastdate: 2019-07-03, 1. Ergebis 2019-07-05
$lastdate: 2019-06-26, 1. Ergebis 2019-07-05
$lastdate: 2019-06-25, 1. Ergebis 2019-07-04
usw.

Unten habe ich mal noch das ganze Script drangehängt.

Danke für jede Hilfe

Gruß

axl


Code: Alles auswählen
$filename = "lastdate.txt";

$db_server = 'localhost';
$db_base = 'a';
$db_pass = '';
$db_user = 'root';
$db_table = 'adressen';

$handle = fopen($filename, "r");
$lastdate = fread($handle, filesize($filename));
echo '<h3>Das sind die neuen Adressen seit der letzten Abfrage am ' . $lastdate . '</h3>';
fclose($handle);

mysql_connect($db_server, $db_user, $db_pass)
        or die('Keine Verbindung zur Datenbank');
mysql_select_db($db_base)
        or die('Kann Datenbank nicht &ouml;ffnen');

$query = '
        SELECT `Nr` , `Firma` , `E_Mail` , `Anlagedatum` , `AngebotstextUnten`
        FROM `' . $db_table . '`
        WHERE `Anlagedatum` >= \'' . $lastdate . '\'
        COLLATE latin1_general_ci
        AND
        `AngebotstextUnten` > CONVERT( _utf8 \'\' USING latin1 ) COLLATE latin1_general_ci
';

$result = mysql_query($query)
        or die('Fehler bei der Datenbankabfrage!');

echo '<FORM NAME="Liste" ACTION="lastdateschreiben.php" METHOD="POST">';

if (mysql_fetch_array($result)) {

    echo '<table border="1" cellspacing="0" cellpadding="2"><tr>
      <th>Nr.</th>
      <th>Firma</th>
      <th>E_Mail</th>
      <th>Anlagedatum</th>
      </tr>';

    $j = 0;
    $result2 = $result;
    while ($row = mysql_fetch_array($result)) {
        echo '<tr>';
        echo '<td>' . $row['Nr'] . '</td>';
        echo '<td>' . $row['Firma'] . '</td>';
        echo '<td>' . $row['AngebotstextUnten'] . '</td>';
        echo '<td>' . $row['Anlagedatum'] . '</td>';
        echo'</tr>';
        $data[$j] = $row['AngebotstextUnten'];
        $j++;
    }

    echo '</table>';

    echo '<br><br>';
   
    foreach ($data as $emailadress) {
        echo $emailadress . '<br>';
    }
} else {

    echo('<h3>keine Datens&auml;tze vorhanden</h3>');
}

    echo '<br><br>';
echo '<INPUT NAME="Name" TYPE="submit" VALUE="Datum aktualisieren">';
axl-g
 
Beiträge: 1
Registriert: Do 5. Sep 2019, 12:45

Zurück zu SQL Grundlagen

 


  • Related topics
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

  • Jetzt Fan werden
  • Newsletter abonnieren? Hier anmelden!

    Alle Informationen aus dem Portal, Blog und Forum in einem Newsletter!

    E-Mail-Adresse: