Avatar billede cozey Nybegynder
10. august 2004 - 16:20 Der er 22 kommentarer og
1 løsning

lægge en til og udskrive antal?

Hejsa.

Jeg har følgende kode til at sende mails ud:

---------------------------------------------------------
<?php
$email=$_POST["email"];
if($email){
    mail($email,"Angående hjemmeside.","Tekst","From: afsender");
    echo "Mail er afsendt..";
}
?>
---------------------------------------------------------

Nu vil jeg gerne have det således at hver gang den sender en mail, skal den lægge en til i min tabel (MySQL), så jeg kan udskrive hvor mange emails der er blevet sendt.

Spørgsmålene er derfor:

1) Hvordan lægger jeg 1 til i min celle (i tabellen), hver gang den sender en mail?

2) Hvad skal der stå i echoet for at udskrive antal?

3) Hvilken type skal cellen i MySQL-databasen være? INT?

Jeg vil gerne have den fulde kode ... både til at connecte til DB'en osv.

Jeg glæder mig til at høre fra jer, og på forhånd tak.

Med venlig hilsen
Daniel
Avatar billede Slettet bruger
10. august 2004 - 16:30 #1
<?php
$email=$_POST["email"];
if($email){
    mail($email,"Angående hjemmeside.","Tekst","From: afsender");
    echo "Mail er afsendt..";
   
    $db = mysql_connect ('localhost','domain','pw');
    mysql_select_db ('database',$db);
    $query = "SELECT felt FROM tabel";
    $result = mysql_query ($query);
    $row = mysql_fetch_assoc ($result)
    $sendte_mails = $row['felt'];

    $sendte_mails = $sendte_mails+1;

    $query = "UPDATE tabel SET felt = '$sendte_mails'";
    mysql_query ($query);
}
?>

Det her er slet ikke testet, men jeg er ret sikker på det vil virke.
Avatar billede cozey Nybegynder
10. august 2004 - 16:42 #2
Hvordan skal opbygningen i DB'en være? ... skal der kun være et felt? ... og hvad skal dette være ... INT?
Avatar billede sukos Juniormester
10. august 2004 - 16:50 #3
For at opdatere et felt, som er et tal, kan det gøres så'n:

mysql_query("UPDATE `sendteemails` SET `antal` = antal+1") or die (mysql_error());

Din DB behøver blot et felt, "antal" og det er vist fint hvis du lader det være en INT
Avatar billede sukos Juniormester
10. august 2004 - 16:56 #4
Og for at hente antal

$getquery = mysql_query("SELECT `antal` FROM `sendteemails`") or die (mysql_error());
echo mysql_result($getquery, 0);
mysql_free_result($getquery);

Og et svar! :O)
Avatar billede cozey Nybegynder
10. august 2004 - 17:08 #5
pacr00n ... din virker ikke!

sukos:
Kan du ikke skrive den fulde kode ...?
Avatar billede cozey Nybegynder
10. august 2004 - 17:10 #6
sådan:
<?php
$db = mysql_connect ('localhost','domain','pw');
mysql_select_db ('database',$db);
mysql_query("UPDATE `sendteemails` SET `antal` = antal+1") or die (mysql_error());
$getquery = mysql_query("SELECT `antal` FROM `sendteemails`") or die (mysql_error());
echo mysql_result($getquery, 0);
mysql_free_result($getquery);
?>

Er det sådan?
Avatar billede sukos Juniormester
10. august 2004 - 17:15 #7
Jeg ville lige putte en or die (mysql_error()) på

mysql_select_db("database", $db) or die (mysql_error());

Og så skal du jo ha' en tabel som hedder "sendteemails" med et felt som hedder "antal"!

Men ellers, prøv! :O)
Avatar billede cozey Nybegynder
10. august 2004 - 17:18 #8
Jeg får følgende fejl:
Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 4 in /var/www/virtual/webudviklingcom/webudvikling.com/public_html/tilbud_send.php on line 76
Avatar billede sukos Juniormester
10. august 2004 - 17:20 #9
Fordi du ikke har et felt som hedder antal, formodentlig
Avatar billede cozey Nybegynder
10. august 2004 - 17:22 #10
har jeg ... dog hedder tabellen blot emails, men det har jeg rettet :/ ... kan det være fordi jeg ikke har indsat tallet 0 i cellen?
Avatar billede sukos Juniormester
10. august 2004 - 17:22 #11
eller andet.............

Prøv at vise HELE koden du bruger!
Ikke den på din egen comp, men de nsom ligger på serveren, uden brugernavn og password selvf! :O)
Avatar billede cozey Nybegynder
10. august 2004 - 17:24 #12
Hvad mener du med "ikke den som ligger på din egen comp,..." ??? ... altså mener du at jeg skal vælge "vis kilde" og poste det? ... er ikke helt med :-)
Avatar billede sukos Juniormester
10. august 2004 - 17:24 #13
Men ok, dette alene i en fil for sig, skulle gerne vise antal, som forøges med + 1 ved hver opdatering af siden:

<?php
$db = mysql_connect ('localhost','domain','pw');
mysql_select_db ('database',$db) or die (mysql_error());
mysql_query("UPDATE `emails` SET `antal` = antal+1") or die (mysql_error());
$getquery = mysql_query("SELECT `antal` FROM `emails`") or die (mysql_error());
echo mysql_result($getquery, 0);
mysql_free_result($getquery);
?>
Avatar billede sukos Juniormester
10. august 2004 - 17:25 #14
Næhh, det var for du ikke vise koden for en fil du har på din comp og ikke på serveren! :O)
Avatar billede sukos Juniormester
10. august 2004 - 17:30 #15
Har lige testet dette på min egen comp

mysql_query("UPDATE `emails` SET `antal` = antal+1") or die (mysql_error());
$getquery = mysql_query("SELECT `antal` FROM `emails`") or die (mysql_error());
echo mysql_result($getquery, 0);
mysql_free_result($getquery);

og det virker :O)
Avatar billede cozey Nybegynder
10. august 2004 - 17:31 #16
Her er min php-kode:

<?php
$email=$_POST["email"];
if($email){
    mail($email,"Angående hjemmeside.","Teksten","From: t.damsgaard@webudvikling.com");
    echo "Mail er afsendt.."; }

$db = mysql_connect ('localhost','******','******');
mysql_select_db("webudviklingcomdb", $db) or die (mysql_error());
mysql_query("UPDATE `emails` SET `antal` = antal+1") or die (mysql_error());
$getquery = mysql_query("SELECT `antal` FROM `emails`") or die (mysql_error());
echo mysql_result($getquery, 0);
mysql_free_result($getquery);
?>

Kan du se fejlen? ... kan det evt. være fordi jeg har valgt localhost? ... så burde den vel bare sige at den ikke kan finde databasen ik?
Avatar billede cozey Nybegynder
10. august 2004 - 17:39 #17
Rykkede lige }  ... så nu ser det således ud:

<?php
$email=$_POST["email"];
if($email){
    mail($email,"Angående hjemmeside.","Teksten","From: t.damsgaard@webudvikling.com");
    echo "Mail er afsendt..";

$db = mysql_connect ('localhost','******','******');
mysql_select_db("webudviklingcomdb", $db) or die (mysql_error());
mysql_query("UPDATE `emails` SET `antal` = antal+1") or die (mysql_error());
$getquery = mysql_query("SELECT `antal` FROM `emails`") or die (mysql_error());
echo mysql_result($getquery, 0);
mysql_free_result($getquery);
}
?>

Jeg kan ikke se fejlen :-/
Avatar billede sukos Juniormester
10. august 2004 - 17:41 #18
Ved ikke, men du kan prøve:

mysql_query("UPDATE `emails` SET `antal` = antal+1") or die (mysql_error());
$getquery = mysql_query("SELECT `antal` FROM `emails`") or die (mysql_error());

if(mysql_num_rows($getquery) !=0) {
echo mysql_result($getquery, "antal");
}else{
echo "INTET AT VISE!!!!!!!!!";
}

mysql_free_result($getquery);
Avatar billede sukos Juniormester
10. august 2004 - 17:45 #19
Det er muligt at error_reporting er slået helt/delvist fra på serveren, for ikke at vise evt. følsomme oplysninger!

Måske dette vil gi' et andet resultat:

<?php
ini_set('error_reporting', "E_ALL");

$email=$_POST["email"];
if($email){
    mail($email,"Angående hjemmeside.","Teksten","From: t.damsgaard@webudvikling.com");
    echo "Mail er afsendt..";

$db = mysql_connect ('localhost','******','******');
mysql_select_db("webudviklingcomdb", $db) or die (mysql_error());
mysql_query("UPDATE `emails` SET `antal` = antal+1") or die (mysql_error());
$getquery = mysql_query("SELECT `antal` FROM `emails`") or die (mysql_error());
echo mysql_result($getquery, 0);
mysql_free_result($getquery);
}
?>
Avatar billede cozey Nybegynder
10. august 2004 - 19:19 #20
Nu har jeg prøvet følgende:

mysql_query("UPDATE `emails` SET `antal` = antal+1") or die (mysql_error());
$getquery = mysql_query("SELECT `antal` FROM `emails`") or die (mysql_error());

if(mysql_num_rows($getquery) !=0) {
echo mysql_result($getquery, "antal");
}else{
echo "INTET AT VISE!!!!!!!!!";
}

mysql_free_result($getquery);


Og der siger den INTET AT VISE!!!
Avatar billede cozey Nybegynder
10. august 2004 - 19:24 #21
Hvad betyder det så?...
Avatar billede cozey Nybegynder
10. august 2004 - 20:08 #22
Ingen der ved hvad der er galt?
Avatar billede sukos Juniormester
12. august 2004 - 09:01 #23
Du connecter formodentlig forkert.

Har du prøvet forslaget med ini_set(), postet 17:45:06
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester