Als sender altijd een cijfer is moet je tinytext veranderen naat int
- Operator in MYSQL selectie werkt niet
-
10-09-2016, 18:49 #16
- Berichten
- 1.344
- Lid sinds
- 18 Jaar
Re: Operator in MYSQL selectie werkt niet
-
10-09-2016, 18:50 #17
- Berichten
- 1.735
- Lid sinds
- 17 Jaar
-
10-09-2016, 18:53 #18
- Berichten
- 1.735
- Lid sinds
- 17 Jaar
Re: Operator in MYSQL selectie werkt niet
-
10-09-2016, 18:56 #19
- Berichten
- 1.344
- Lid sinds
- 18 Jaar
Re: Operator in MYSQL selectie werkt niet
Moet het geen
PHP Code:if($row['sender'] < 80)
Ik denk dat $sender geen waarde heeft
-
10-09-2016, 18:59 #20
- Berichten
- 1.735
- Lid sinds
- 17 Jaar
-
10-09-2016, 19:05 #21
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
Re: Operator in MYSQL selectie werkt niet
Als je twee integer velden wilt vergelijken maar 1 ervan is geen integer dan kun je het casten.
if ( (int)trim($sender) > 80 ) { /* doe iets */ }
else { /* doe iets anders */ }
-
10-09-2016, 19:19 #22
- Berichten
- 1.735
- Lid sinds
- 17 Jaar
Re: Operator in MYSQL selectie werkt niet
Dit is het hele script:
PHP Code:<?php
// Connect to DB ####################################
require_once('db.php');
$sql = "SELECT description, sender FROM table WHERE sender < 80 LIMIT 1";
$result = $conn->query($sql);
// meer dan 1
if ($result->num_rows > 0) {
// output data of each row
while ($row = $result->fetch_assoc()) {
$description = $description."".$row["description"] . "";
$sender = $sender."".$row["sender"] . "";
}
} else {
// als leeg is
echo "Geen issue";
}
$conn->close();
?>
<?php
require_once 'lib/swift_required.php';
// Create the Transport ####################################
$transport = Swift_SmtpTransport::newInstance('XXX', 587);
$transport->setUsername('XXXX');
$transport->setPassword('XXX');
// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
// Create the message
// Create the message
$message = Swift_Message::newInstance()
// Give the message a subject
->setSubject('XXXX')
// Set the From address with an associative array
->setFrom(array('XXXX' => 'XXXX'))
// Set the To addresses with an associative array
->setTo(array('XXX'))
// Give it a body
->setBody('Hier komt de code voor de email', 'text/html');
// Check if count lower than 80
if($sender <80) {
($mailer->send($message));
echo "Er is een email gestuurd";
} else {
echo "Er is geen email verzonden";
}
?>
-
10-09-2016, 20:11 #23
- Berichten
- 20
- Lid sinds
- 14 Jaar
Re: Operator in MYSQL selectie werkt niet
Je plakt $description en $sender ervoor maar deze variabelen bestaan niet? Krijg je daar geen foutmeldingen van? Bovendien heb je in je tabel nog een rij waarbij sender de waarde 60 heeft, dus die mail wordt gewoon verstuurd. Dat in de eerste rij sender de waarde 91 of 100 heeft maakt niks uit.
Laatst aangepast door I Stork : 10-09-2016 om 20:16
-
10-09-2016, 21:20 #24
- Berichten
- 1.735
- Lid sinds
- 17 Jaar
Re: Operator in MYSQL selectie werkt niet
Probleem is opgelost, ik moet eerst checken of er uberhaubt iets uit de DB kwam als de waarde lager dan 80 was. Maar er stonden alleen getallen hoger in dan 80.
Eerst check ik of de waarde uit de DB leeg is of niet, zoniet dan check ik of de waarde <80 is.
PHP Code:<?php
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );
if (empty($sender)) {
echo "Er is geen waarde";
} elseif ($sender <80){
$mailer->send($message);
}
?>
-
10-09-2016, 21:34 #25
- Berichten
- 1.344
- Lid sinds
- 18 Jaar
Re: Operator in MYSQL selectie werkt niet
Je hebt alles op de verkeerde plek staan.
Als je maar 1 resultaat uit de DB haalt hoef je geen while loop te gebruiken.
PHP Code:<?php
// Connect to DB ####################################
require_once('db.php');
$sql = "SELECT description, sender FROM table WHERE sender < 80 LIMIT 1";
$result = $conn->query($sql);
// meer dan 1
if ($result->num_rows > 0) {
// output data of each row
$row = $result->fetch_assoc();
$description = $row['description'];
$sender = $row['sender'];
require_once 'lib/swift_required.php';
// Create the Transport ####################################
$transport = Swift_SmtpTransport::newInstance('XXX', 587);
$transport->setUsername('XXXX');
$transport->setPassword('XXX');
// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
// Create the message
// Create the message
$message = Swift_Message::newInstance()
// Give the message a subject
->setSubject('XXXX')
// Set the From address with an associative array
->setFrom(array('XXXX' => 'XXXX'))
// Set the To addresses with an associative array
->setTo(array('XXX'))
// Give it a body
->setBody('Hier komt de code voor de email', 'text/html');
// Check if count lower than 80
if($row['sender'] < 80) {
$mailer->send($message);
echo "Er is een email gestuurd";
} else {
echo "Er is geen email verzonden";
}
} else {
// als leeg is
echo 'Niets gevonden in de DB';
}
$conn->close();
?>
-
10-09-2016, 21:43 #26
- Berichten
- 1.735
- Lid sinds
- 17 Jaar
Re: Operator in MYSQL selectie werkt niet
Dankjewel Ferdi!! Enorm bedankt!
-
11-09-2016, 13:28 #27
- Berichten
- 1.410
- Lid sinds
- 16 Jaar
Re: Operator in MYSQL selectie werkt niet
Om dan nog verder te optimaliseren...: ;-)
Waarom met sql alles selecteren met een waarde lager dan 80, en vervolgens in de code nog een keer controleren of iets lager is dan 80?
Alles is toch al lager dan 80 als het uit de database komt? Mijns inziens kan die if < 80 eruit toch?
Waarom eerst in de code resources gebruiken om een mailtje op te stellen en dán pas controleren of er wel een mail verstuurt moet worden. Beter eerst controleren of er überhaupt een mail gestuurd moet worden en dan pas de mail opstellen?
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic