MySQL DatenbankabfragenInhalt per PHP eMail senden?

1 Antwort

Auf das Skript den cronjob alle x Minuten ausführen.

Im SQL die where Bedingung um `wiedervorlage` <= NOW() ergänzen.

Den Inhalt nicht ausgeben (echo) sondern in $nachricht.

Bei erfolgreichem versenden das Datum von wiedervorlage auf null setzen.

Zum Schluss: für solche Fragen besser stackoverflow nutzen :P

Ungefähr so:

$host = "host";

$user = "User";
$pass = "Passwort";
$con = mysql_connect($host, $user, $pass) or die(mysql_error());
mysql_select_db("datenbank", $con) or die(mysql_error());
$sql = "SELECT mandant,finanzprojektnummer,wiedervorlage,beschreibung,erledigt FROM wiedervorlage WHERE finanzprojektnummer LIKE 1234567 AND wiedervorlage >= NOW()";
$query = mysql_query($sql);

while ($row = mysql_fetch_assoc($query)) {
$empfaenger = 'empfaenger@provider.de';
$betreff = 'Neue Nachricht';
$nachricht = $row['beschreibung'];
$header = "FROM: Absender";
mail($empfaenger, $betreff, $nachricht, $header);
}
0
@PatrickMuku

Vielen Lieben Dank für die Hilfe! Ich habe dein Script jetzt 1:1 übernommen und die relevanten Daten geändert (Passwort usw) aber leider ist die Email nach wie vor leer... :/ 

0
@PatrickMuku

Also es klappt doch - die Testabfrage war nur leer :D wie kann ich aber eine Tabelle als eMail ausgeben in der alle Daten stehen also Mandant, finanzprojektnummer, wiedervorlage usw alles als einzelne eMail falls mehrere Daten auf das Wiedervorlagedatum heute() also Beispiel 04.08.2016 auftreten? müsste ja alles in $nachricht rein. 

0
@Mickan1994

Du kannst in der email auch HTML verwenden:

$nachricht = "<table><tr><td>".$row["finanzprojektnummer"]."</td></tr></table>";
0

Hallo ich Möchte gerne die 10 Größten Werte aus meiner DB ausgeben?

Hallo :) ich möchte gerne die 10 user mit den Meisten Coins ausgeben.

wie mach ich das genau mit PHP?

Dieses Script gibt mir alle User aus .. ich möchte aber nur die 10 User mit den Meisten Coins ausgeben? Jemand ne Antwort?

<?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');

$sql = "SELECT * FROM users"; foreach ($pdo->query($sql) as $row) { echo $row['coins']." ".$row['id']."
"; echo "E-Mail: ".$row['email']."

"; } ?>

...zur Frage

PHP echo - Leerzeichen zwischen SQL Spalten in einer Select Box?

Moin liebe Community,

ich versuche mir grade nebenbei etwas HTML, PHP, usw. beizubringen. Also ich bin ein noch eigentlich ein blutiger Anfänger der sich langsam voran tastet.

Ich habe grade mal versucht mit einem Tutorial einen AJAX Zugriff auf eine Datenbank zu machen und dann das ganze in Select Boxen auszuwählen.

Die Datenbank ist recht billig. Es gibt die Tabellen CPUs, Mainboards und RAM. Nun wollte ich gerne einen Prozessor auswählen und über den Sockel passende Mainboards anzeigen.

Das ganze klappt eigentlich auch schon. Nur die Ausgabe finde ich recht bescheiden. Da ich noch nicht wirklich erfahren bin, frage ich mich, ob man in der Ausgabe Leerzeichen hinzufügen kann?

<select name="cpu" id="cpu">
<option value="">Bitte CPU wählen</option>
<?php
if($rowCount > 0){
    while($row = $query->fetch_assoc()){ 
        echo '<option value="'.$row['Sockel'].'">'.$row['Hersteller'].$row['TYP'].$row['CPU'].'</option>';
    }
}else{
    echo '<option value="">CPUs nicht auswählbar</option>';
}
?> </select>

In der Zeile:

echo ''.$row['Hersteller'].$row['TYP'].$row['CPU'].'';

definiere ich welche Spalten ausgegeben werden sollen.

Das Endresultat sieht dann z.B. so aus : Inteli77700k.

Kann ich hier irgendwie Leerzeichen einfügen, damit das ganze richtig angezeigt wird ? Also Intel i7 7700k.

Danke im Voraus

...zur Frage

Tabelle mit Datenbankinhalt per php Mail senden?

Hallo ich habe ein Script mit Datenbankabfrage und möchte diese Abfrage gerne als Tabelle wiedergeben. Diese Tabelle soll nun in einer eMail an Empfänger x versandt werden.

Ich bekomme es bislang hin, pro Datensatz eine eMail zu senden und eine eMail mit einer Tabelle ohne Datenbankinhalt (Also mit festen Test-Daten) zu senden. Nur eben keine Tabelle mit Datenbankinhalt.

Hoffentlich kann mir hier jemand helfen. Hier mein aktueller Codeschnipsel:

$sql = "SELECT ID,Mandant,FP,ABP,erledigt FROM ABPTest WHERE erledigt Like 0";
$query = mysql_query($sql);
$message="";        
while($row = mysql_fetch_array($query)){
$message .= 
         '<table border=1>';
    '<tr>';        
    '<td width="20">"Test"</td>';
            '<td width="80">"abc"</td>';
    '</tr>';
     '</table>'; }
$empfaenger = "empfänger@test.de";
$betreff = "Test";
$from = "From: Nils Reimers <absender@domain.de>\n";
$from .= "Reply-To: antwort@domain.de\n";
$from .= "Content-Type: text/html\n";
mail($empfaenger, $betreff, $message, $from); 

Angezeigt werden sollen in der eMail dann die Spalten "Mandant, FP und ABP. Pro Datensatz eine Zeile. Als Anzeige per echo bekomme ich es hin aber in einer eMail eben leider nicht. Sieht jemand den Fehler und kann mein Script korrigieren?

...zur Frage

Finde den Fehler nicht(PHP)?

Ich arbeite an einem Login. In einer Tabelle "users" in einer Datenbank gibt es die Spalten "username" und "password". In einem Formular gebe ich beide Dinge ein um mich einzuloggen. Diese Eingaben vergleiche ich dann mit einer Abfrage und das daraus resultierende Ergebnis. Nun habe ich schon einige Ausgaben mit eingebaut, die überprüfen sollen, an was mein Problem liegt. Das Problem liegt daran, dass in $row nichts gespeichert ist. var_dump() gibt hier "NULL". Wenn ich die SQL-Abfrage jedoch in phpmyadmin eingebe funktioniert sie. Woran könnte es noch liegen?

<?php
//Initialisierung der Session
session_start();

//Verbindung zur Datenbank
$pdo = new PDO(DIE VERBINDUNGSDATEN);

//Übernahme aus Formular
$name = $_POST["username"];
$password = $_POST["pwd"];

$shapwd = sha1($password);

//Suchkriterien angeben
$sql = "SELECT * from users WHERE username=$name AND password=$shapwd";

//LoginOK zeigt Status login an
$loginOk = false;

var_dump($name);
echo "<br>";
var_dump($shapwd);
echo "<br>";
echo "<br>";

//Durchsuchen der Datenbank
foreach($pdo->query($sql) AS $row){    
    echo $row['username']."<br>";
    echo $row['password']."<br>";
        /*
    if($row['username']==trim($name) && $row['password']==trim($shapwd)){
        $loginOk = true;
        break;
    }*/
}

var_dump($row['username']);
echo "<br>";
var_dump($row['password']);
echo "<br>";
echo "<br>";

if($loginOk === true){
    header('Location: ../mainpage.php');
}else{
    header('Location: ../falsch.html');
}
?>
...zur Frage

Kann man ein zweites SELECT statement in einem while loop ausführen?

Hallo,

meine Frage ist einfach:

$sql = "SELECT DISTINCT gruppeid FROM users";
    $result = $con->query($sql);
    while ($row = $result->fetch_assoc()) {
                    .............
    }

ich muss eigentlich in meinem loop spalten aus einer anderen Tabelle mit dieser gruppeid zählen. Aber immer wenn ich in den loop ein weiteres (SELECT...) schreibe und dieses danach einfach erstmal nur abfragen will bekomme ich diesen Fehler: Call to a member function fetch_assoc() on boolean. Deswegen meine Frage, kann man überhaupt in dem loop noch ein SELECT statement schreiben? Und wenn ja, dann wie?

Ich würde mich über eine Antwort freuen ;) schönen Tag noch

...zur Frage

Einen Datensatz aus SQL-Datenbank der über Auswahlliste selektiert wird in Tabelle Zeilen ausgeben

Hallo Freunde,

ich soll ein Formular erstellen, in der man sich über Auswahllisten einen/mehrere Artikel aussucht. Dies geschieht in einer Tabelle mit 3 Spalten.

  1. Spalte (Auswahlliste) ist die Artikelnummer (aus Datenbank)

  2. Spalte ist die genaue Bezeichnung des Artikels (aus Datenbank)

  3. Spalte ist der Preis (aus Datenbank)

In der Datenbank hat jeder Datensatz eine Artikelnummer eine Bezeichnung und einen Preis.

Mein Problem ist nun, wenn ich in der Auswahlliste (1. Spalte) eine Artikelnummer auswähle, bringe ich es nicht hin die dazugehörige Bezeichnung und Preis in der jeweilige Tabellen Zeile auszugeben...

Mein Code: (bisher)

<tr>
  <td width="5%"><input name="stk_01" type="text" size="2" maxlength="2"></td>
  <td width="20%"><? include ("01.php"); ?></td>
  <td width="45%"><?  ?></td>
  <td width="10%"><?  ?></td>
  <td width="10%">&nbsp;</td>
</tr>

Include: 01.php

<? $sql = "SELECT Artikelnummer, Bezeichnung, VK1 FROM artikel";

$result = mysql_query($sql) or die(mysql_error());

echo "";

echo "Bitte auswählen";

  while ($row=mysql_fetch_row($result))                               
          {                                                           
           echo "<option value='$row[0]'>".$row[0]."</option>";       
          }                                                           

echo "";

?>

...zur Frage

Was möchtest Du wissen?