09. januar 2013 - 11:47Der 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
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Å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)
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());
#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)
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:
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.
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.
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
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
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)
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.
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.