Avatar billede rasmus-madsen Nybegynder
12. februar 2005 - 13:24 Der er 28 kommentarer og
2 løsninger

Resource id #5 ?

Hej allesammen.

For hele tiden udskrevet dette:
Resource id #5

Men har det noget med databasen eller det et array som det er galt med ?

På forhånd tak.
Avatar billede Slettet bruger
12. februar 2005 - 13:32 #1
hvad gør du siden den udskriver det?
Avatar billede rasmus-madsen Nybegynder
12. februar 2005 - 13:43 #2
Den henter noget data fra en dasebase.
Indsætter noget data.
Og til sidst sletter den noget andet.
Avatar billede detox Nybegynder
12. februar 2005 - 13:46 #3
Det lyder som om mangler at fetche din result resource.
Avatar billede detox Nybegynder
12. februar 2005 - 13:50 #4
Vi må nok se lidt kode, hvis det ikke skal være det rene gætteri.
Avatar billede rasmus-madsen Nybegynder
12. februar 2005 - 13:52 #5
<?php
include("connect.php");
$lognavn= "../log/over" .date("j-m-y") .".txt";
$i=0;
$fejla=0;
$fejl="";
$status = "";
$res2 = mysql_query("SELECT * FROM send order by id asc");
$handle = fopen($lognavn, "a+");
if (mysql_num_rows($res2) != 0) {
    while($row = mysql_fetch_array($res2)){
    $kode = $row['id'];

    echo $kode;
    if ($row['type'] == "mail") {
        $res = mysql_query("SELECT * FROM adresser where firma = '" .$row['fra'] ."' AND mail !='none'");

            if (mysql_num_rows($res) != 0){
           
                while($row1 = mysql_fetch_array($res)) {
                $til = $row1['mail'];
                $fra = $row['fra'];
                $besked = $row['besked'];
                $res3 = mysql_query("INSERT INTO mail (til, afsendt, fra, besked) VALUES ('$til','0','$fra','$besked')");
            $fejl .= "\n " .mysql_error();
       
            }

        $res1 = mysql_query("delete FROM send where id= '$kode'");
            $fejl .= "\n " .mysql_error();
    } else {
$fejla++;
$fejl .= "\nIngen adresser fundet";
}
   
} elseif ($row['type'] == "sms") {
    echo $kode;
    $res = mysql_query("SELECT * FROM adresser where firma = '" .$row['fra'] ."' AND sms !='none'");

        if (mysql_num_rows($res) != 0){

            echo $kode;
   
                while($row1 = mysql_fetch_array($res)) {
                $til = $row1['sms'];
                $fra = $row['fra'];
                $besked = $row['besked'];
                echo $kode;
                $res3 = mysql_query("INSERT INTO sms (til, afsendt, fra, besked) VALUES ('$til','0','$fra','$besked')");
            $fejl .= "\n " .mysql_error();
                }
            $res1 = mysql_query("delete FROM send where id= '$kode'");
           
            $fejl .= "\n " .mysql_error();
            } else {
$fejla++;
$fejl .= "\nIngen adresser fundet";
}

        } else {
$fejla++;
$fejl .= "\nHverken email eller SMS er valgt.";
        }
    }
} else {

$fejl .= "Ingen resultater";

}
$fejl .= "\n " .mysql_error();
$tid = date("g:i:s");
$status = $handle ."\n\ntid : " .$tid . "\nFejl opstod : " .$fejla  ."\nFejltekster : " .$fejl .".\n";
$handle1 = fwrite($handle, $status);
?>
Avatar billede rasmus-madsen Nybegynder
12. februar 2005 - 13:54 #6
Koden virker fint, dog udskriver den, den der resource ting der
Avatar billede detox Nybegynder
12. februar 2005 - 14:01 #7
Det kan jeg ikke lige se hvorfor. Det eneste du udskriver er jo: $kode og jeg kan ikke se at du tildeler den en resource id nogen steder. Du bruger vel ikke $kode i: "connect.php"?
Avatar billede rasmus-madsen Nybegynder
12. februar 2005 - 14:03 #8
Nej $kode bliver ikke brugt connect.php.

Nej jeg forstår det hellere ikke helt :(
Avatar billede jakoba Nybegynder
12. februar 2005 - 14:07 #9
du vi cå den fejl hvis du prøver at udskrive et resultatsæt. fx:
  echo $res;

men det gør du ikke nogen steder i den kode du viser.
er du 100& sikker på det er den rigtige kode du viser os?
kunne det være et andet sted i den fil koden kommer fra?

Prøv ent at kredese dig ind på det sted det går galt med debug-linier
eg:
midt i filen tilføjes en debug linie
    echo "midti filen<br>";
midt i første halvdel af filen
    echo "første kvartil<br>";
midt i anden halvdel
    echo "tredie kvartil<br>";

nu kan du køre scriptet igen og se hvilken fjerdedel af filen det sker i, den fjerdel kan du så undersøge igen med et nyt sæt debuglinier, osv.
Avatar billede detox Nybegynder
12. februar 2005 - 14:12 #10
Ja, medmindre $row['id'] ligefrem indeholder: Resource id #5
Avatar billede rasmus-madsen Nybegynder
12. februar 2005 - 14:13 #11
Det er hundrede procent den kode.
Men jeg er kommet lidt videre. Det sker ved en af mysql_error´ne.
Prøver lige din måde, og finde ud af hvilken.
Avatar billede rasmus-madsen Nybegynder
12. februar 2005 - 14:14 #12
Det var den sidste :
$fejl .= "\n " .mysql_error();

Er der så noget galt ?
Avatar billede detox Nybegynder
12. februar 2005 - 14:16 #13
Jamen du udskriver jo ikke fejl. Er det i logfilen du mener?
Avatar billede detox Nybegynder
12. februar 2005 - 14:17 #14
Men jeg kan i ævrigt heller ikke se du har brug for den sidste: $fejl .= "\n " .mysql_error();
Avatar billede rasmus-madsen Nybegynder
12. februar 2005 - 14:18 #15
Ja det var i logfilen jeg kunne se det.
Nej jeg kan vel bare fjerne den ?

Hvem skal have points ?
Avatar billede rasmus-madsen Nybegynder
12. februar 2005 - 14:20 #16
Næ den bliver ved :(
Avatar billede rasmus-madsen Nybegynder
12. februar 2005 - 14:21 #17
Det er denne her:
$res2 = mysql_query("SELECT * FROM send order by id asc");

Hvad er der galt med den ?
Avatar billede jakoba Nybegynder
12. februar 2005 - 14:22 #18
Nu er jo netof variablen $fejl et sted hvor min måde at hitte ud af hvor det sker ikke duer. Den bliver bygget hen ad vejen uden at blive udskrevet, så hvis den tekst står i $fejl så vil vi altid se den til allersidst, selvom den måske blev lagt ind i $fejl oppe forrest i scriptet

for at tage høde for den også kunne vi sige:
    echo "første kvartil - $fejl<br>";
    echo "midti filen - $fejl<br>";
    echo "tredie kvartil - $fejl<br>";

så vi ser hvordan $fejl ændres hen ad vejen.
Avatar billede detox Nybegynder
12. februar 2005 - 14:24 #19
Prøv at rette:

$status = $handle ."\n\ntid : " .$tid . "\nFejl opstod : " .$fejla  ."\nFejltekster : " .$fejl .".\n";

til:

$status = "\n\ntid : " .$tid . "\nFejl opstod : " .$fejla  ."\nFejltekster : " .$fejl .".\n";
Avatar billede detox Nybegynder
12. februar 2005 - 14:25 #20
Du beder den jo om at udskrive $handle, hvilket sikkert er: Resource id #5
Avatar billede jakoba Nybegynder
12. februar 2005 - 14:26 #21
her er den:
    $status = $handle ."\n\ntid : " .$tid . "\nFejl opstod : " .$fejla  ."\nFejltekster : " .$fejl .".\n";
                  ^^^^^^
variablen  $handle er jo din filpeger labet med
    $handle = fopen($lognavn, "a+");

og det er opgså et 'resource id'
Avatar billede rasmus-madsen Nybegynder
12. februar 2005 - 14:26 #22
<?php
include("connect.php");
$lognavn= "../log/over" .date("j-m-y") .".txt";
$i=0;
$fejla=0;
$fejl="";
$status = "";
$res2 = mysql_query("SELECT * FROM send order by id asc");
echo " 0. " .mysql_error();
$handle = fopen($lognavn, "a+");
if (mysql_num_rows($res2) != 0) {
    while($row = mysql_fetch_array($res2)){
    $kode = $row['id'];
    if ($row['type'] == "mail") {
        $res = mysql_query("SELECT * FROM adresser where firma = '" .$row['fra'] ."' AND mail !='none'");

            if (mysql_num_rows($res) != 0){
           
                while($row1 = mysql_fetch_array($res)) {
                $til = $row1['mail'];
                $fra = $row['fra'];
                $besked = $row['besked'];
                $res3 = mysql_query("INSERT INTO mail (til, afsendt, fra, besked) VALUES ('$til','0','$fra','$besked')");
echo " 1. " .mysql_error();
       
            }

        $res1 = mysql_query("delete FROM send where id= '$kode'");
echo " 2. " .mysql_error();
    } else {
$fejla++;
$fejl .= "\nIngen adresser fundet";
}
   
} elseif ($row['type'] == "sms") {

    $res = mysql_query("SELECT * FROM adresser where firma = '" .$row['fra'] ."' AND sms !='none'");

        if (mysql_num_rows($res) != 0){
   
                while($row1 = mysql_fetch_array($res)) {
                $til = $row1['sms'];
                $fra = $row['fra'];
                $besked = $row['besked'];
                $res3 = mysql_query("INSERT INTO sms (til, afsendt, fra, besked) VALUES ('$til','0','$fra','$besked')");
echo " 3. " .mysql_error();
                }
            $res1 = mysql_query("delete FROM send where id= '$kode'");
           
echo " 4. " .mysql_error();
            } else {
$fejla++;
$fejl .= "\nIngen adresser fundet";
}

        } else {
$fejla++;
$fejl .= "\nHverken email eller SMS er valgt.";
        }
    }
} else {

$fejl .= "Ingen resultater";

}
$tid = date("g:i:s");
$status = "\n\ntid : " .$tid . "\nFejl opstod : " .$fejla  ."\nFejltekster : " .$fejl .".\n";
$handle1 = fwrite($handle, $status);
?>


Den udskriver nu 0.
Næsten det samme som din måde jakoba.
Avatar billede jakoba Nybegynder
12. februar 2005 - 14:27 #23
^som allerede sagt :-))
Avatar billede jakoba Nybegynder
12. februar 2005 - 14:29 #24
>> rasmus
    ja det det kan gøres på mange måder, og er ofte nyttigt.
    men det er nu not $handle det handler om, ikke noget med mysql som vi troede
Avatar billede detox Nybegynder
12. februar 2005 - 14:30 #25
Jamen så må vi vel hellere smide nogle svar :O)
Avatar billede detox Nybegynder
12. februar 2005 - 14:31 #26
svar!
Avatar billede rasmus-madsen Nybegynder
12. februar 2005 - 14:32 #27
Ja men har rettet det.. Men det giver stadig 0. fejl. Og den ressource i logfilen :(
Avatar billede rasmus-madsen Nybegynder
12. februar 2005 - 14:33 #28
Næ det virekr... Takker :D
Avatar billede rasmus-madsen Nybegynder
12. februar 2005 - 14:35 #29
jakoba smid svargså
Avatar billede jakoba Nybegynder
12. februar 2005 - 14:36 #30
ok
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