Avatar billede djsteiner Nybegynder
09. januar 2013 - 11:47 Der er 23 kommentarer og
1 løsning

mysql_fetch fejl

Hej jeg får denne fejl i koden her:

//Get currrent image path to default and floorplan imgages
            $sql = "SELECT * FROM bsi_bannerimages WHERE img_id=".$id;           
            $row = mysql_fetch_assoc(mysql_query($sql));                       
            $banner_img_db     = $row['banner_img'];



Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\apartment-rental\cp\page-edit-imagebanner.php on line 90 Call Stack: 0.0189 159496 1. {main}() C:\wamp\www\apartment-rental\cp\page-edit-imagebanner.php:0 0.9126 701008 2. mysql_fetch_assoc() C:\wamp\www\apartment-rental\cp\page-edit-imagebanner.php:90
09. januar 2013 - 12:47 #1
Årsagen er sandsynligvis at forespørgslen ikke har noget resultat.  Hvis forespørgslen har et resultat, så returneres dette resultat, men hvis forespørgslen ikke har noget resultat returneres 0.  Du kan undersøge, om der er et resultat ved at sige (ikke testet)

if($sql) $row = mysql_fetch_assoc(mysql_query($sql));

Men hvis der skulle have været et resultat, så er der måske noget galt med forespørgslen.  Det kunne du jo undersøge ved, midlertidigt, at tilføje dette:

$sql = "SELECT * FROM bsi_bannerimages WHERE img_id=".$id or die(mysql_error());
Avatar billede kjeldsted Novice
09. januar 2013 - 12:55 #2
#1: Du mener vel:

$sql = "SELECT * FROM bsi_bannerimages WHERE img_id=".$id;
$query = mysql_query($sql) or die(mysql_error);


Der er vel ikke meget idé i at sætte en 'or die' på en streng ;)

Desuden er det en god idé altid at omkranse sine variabler i SQL sætninger.

$sql = "SELECT * FROM bsi_bannerimages WHERE img_id='$id'";
Avatar billede michael_stim Ekspert
09. januar 2013 - 13:03 #3
#2
"Desuden er det en god idé altid at omkranse sine variabler i SQL sætninger."

Der er tværtimod en meget dårlig idé, når det formodentlig ikke er en char, varchar, text eller lignende. At MySQL køber den når det er en int eller lignende, er en anden sag, der er ikke mange andre databaser der gør det ;o)
Avatar billede djsteiner Nybegynder
09. januar 2013 - 13:30 #4
Hvad kan jeg så gøre blev lidt for forvirret:)
Avatar billede michael_stim Ekspert
09. januar 2013 - 13:37 #5
Sætte en if om, der checker om der er et resultat ;o)
Avatar billede michael_stim Ekspert
09. januar 2013 - 13:43 #6
Læs gerne det der står i den lyserøde rektangel:
http://php.net/manual/en/function.mysql-fetch-assoc.php
09. januar 2013 - 17:34 #7
Undskyld, jeg var for hurtig, Kjeldsted har ret i #2.

Altså, dit direkte spørgsmål og umiddelbare problem går på en fejlmelding når du kører det kodeafsnit du viser.  Jeg formoder, som sagt, at det skyldes at din query ikke giver noget resultat.  Jeg foreslog, at du, som #5 også siger, sætter parantes om:

if($sql) $row = mysql_fetch_assoc(mysql_query($sql));

Prøv det, se om det fjerner fejlmeldinge, og fortæl os om det.

Men derved har du muligvis kureret symptomet i stedet for sygdommen.  Hvis det var meningen, at queryen skulle give resultat, så er det virkelige problem muligvis et problem med queryen.  Det kan du teste af således:

$sql = "SELECT * FROM bsi_bannerimages WHERE img_id=".$id;
$query = mysql_query($sql) or die(mysql_error);

Hvis du får en fejlmelding derved, så er det den du skal takle.  Igen, prøv det af og fortæl hvad der sker.

Når du så, forhåbenligt, får dit umiddelbare problem løst og får koden til at give resultater, så har du i #2, #3, #5, og #6 fået råd medhensigt på at forbedre og fremtidssikre koden.
Avatar billede olebole Juniormester
09. januar 2013 - 21:28 #8
<ole>

Med al respekt, så er det kun #6, der handler om tidssvarende kode - for ikke at tale om fremtidssikret kode.

Resten handler - ligesom spørgsmålet - om dybt antikveret/forældet kode  =)

/mvh
</bole>
Avatar billede djsteiner Nybegynder
10. januar 2013 - 11:04 #9
Hej igen

Nu kommer da bare endnu flere fejl:

Jeg bliver hvis nødtil at lave noget mere simpelt PHP kode før jeg kaster mig over dette det er lidt for uoverskueligt.

Jeg skyder lige at forklare hvad det er jeg prøver på at lave:

Jeg er ved at lave et script hvor brugeren gerne selv skulle kunne beskære (redigere) billeder og de derefter bliver resize og uploadet til en database.

Jeg har fundet dette script http://www.webmotionuk.co.uk/php-jquery-image-upload-and-crop/ til formålet hvor der skal laves nogle ændringer i, som at indsætte og opdatere til en database.


Fejlen:

Notice: Undefined variable: 1357811208_default_20090428170550svommehal.jpg in C:\wamp\www\apartment-rental\cp\page-edit-imagebanner.php on line 123 Call Stack: 0.0008 160056 1. {main}() C:\wamp\www\apartment-rental\cp\page-edit-imagebanner.php:0 Notice: Undefined variable: 1357811208_default_20090428170550svommehal.jpg in C:\wamp\www\apartment-rental\cp\page-edit-imagebanner.php on line 124 Call Stack: 0.0008 160056 1. {main}() C:\wamp\www\apartment-rental\cp\page-edit-imagebanner.php:0 Warning: unlink(../gallery/BannerImage/temp_): No such file or directory in C:\wamp\www\apartment-rental\cp\page-edit-imagebanner.php on line 124 Call Stack: 0.0008 160056 1. {main}() C:\wamp\www\apartment-rental\cp\page-edit-imagebanner.php:0 0.3926 1110920 2. unlink() C:\wamp\www\apartment-rental\cp\page-edit-imagebanner.php:124 Fatal error: Using $this when not in object context in C:\wamp\www\apartment-rental\cp\page-edit-imagebanner.php on line 127 Call Stack: 0.0008 160056 1. {main}() C:\wamp\www\apartment-rental\cp\page-edit-imagebanner.php:0
Avatar billede olebole Juniormester
10. januar 2013 - 11:12 #10
Hvad står der i de pågældende linjer, du får fejl og meddelelser om?
Avatar billede djsteiner Nybegynder
10. januar 2013 - 11:21 #11
Jeg tror det skyldes denne fejl der kommer før sql sætningen:

Notice: Undefined index: id in C:\wamp\www\apartment-rental\cp\page-edit-imagebanner.php on line 85 Call Stack: 0.0012 156128 1. {main}() C:\wamp\www\apartment-rental\cp\page-edit-imagebanner.php:0

Her har koden som den ser ud der hvor fejlen er:

/    Update appartment image and floorplan image
            //                       
            $enable_thumbnails        = 1 ;
            //$max_image_size            = 1024000 ;
            $upload_dir_default        = "../gallery/BannerImage/";       
            $timestr = time();
   
   
$id        = $bsiCore->ClearInput($_POST['id']);
       
           
            //Get currrent image path to default and floorplan imgages
            $sql = "SELECT * FROM bsi_bannerimages WHERE img_id='$id'";   
           
                   
            $row = mysql_fetch_assoc(mysql_query($sql));                       
            if($sql) $row = mysql_fetch_assoc(mysql_query($sql));
            $banner_img_db     = $row['banner_img'];
Avatar billede michael_stim Ekspert
10. januar 2013 - 11:35 #12
Du får ikke din id med, af en eller anden grund. Men før du bruger for meget tid på det der, ville jeg nok tage et kig på oleboles guide om mysqli.
Avatar billede djsteiner Nybegynder
10. januar 2013 - 11:42 #13
Ja nemlig jeg bliver nødtil at kigge på oleboles guide
Avatar billede djsteiner Nybegynder
10. januar 2013 - 11:45 #14
Men lige et mere enkelt spørgsmål kan php move_uploaded_file bruges til at overskrive eksisterende billede filer?
Avatar billede michael_stim Ekspert
10. januar 2013 - 11:52 #15
Her er oleboles guide:

http://www.eksperten.dk/guide/1480

Tænker mere på hvis dit webhotel, eller hvor du nu har sitet liggende opdaterer til php 5.5 (når det kommer), så bliver det ret så omfattende at omskrive det meste af din kode ;o)

Læs det med lyserødt, lidt nede på siden:

http://php.net/manual/en/function.move-uploaded-file.php
Avatar billede djsteiner Nybegynder
10. januar 2013 - 12:04 #16
sådan jeg forstår det kan move_uploaded_file godt bruges til at overskrive eksisterende billede filer er det rigtigt forstået?
Avatar billede djsteiner Nybegynder
15. januar 2013 - 09:40 #17
lukke tid så er det jo så lige hvem skal have point?
15. januar 2013 - 09:50 #18
Det er noget spørgeren afgør i funktion af hvilke indlæg han har haft hjælp fra.
Avatar billede djsteiner Nybegynder
15. januar 2013 - 09:57 #19
Jeg vil bare ikke snyde nogen. jeg har jo noget ud af alle som har hjulpet.
Avatar billede djsteiner Nybegynder
17. januar 2013 - 10:39 #20
michael_stim smid lige et svar så får du point.
Avatar billede michael_stim Ekspert
17. januar 2013 - 12:03 #21
Ellers tak, samler ikke på point.
Avatar billede djsteiner Nybegynder
17. januar 2013 - 12:10 #22
Christian_Belgien vil du have point så smid et svar :)
17. januar 2013 - 15:52 #23
Det drejer sig ikke om hvorvidt jeg vil have points, det drejer sig om hvorvidt mine indlæg har været til hjælp.  Hvis det er tilfældet, så er her et svar.
Avatar billede djsteiner Nybegynder
18. januar 2013 - 09:23 #24
Tak til alle for hjælpen! :)

Jeg er bare glad for at jeg kan få hjælp!
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