Avatar billede Dacco Nybegynder
07. oktober 2010 - 09:59 Der er 8 kommentarer og
1 løsning

fejl

Hei alle sammen jeg sider og arbejder med den her kode her og den virker fint hvis jeg tester den på en testing server men så snart jeg går online/remote med den så kommer der en fejl og har forsøgt så meget at jeg nu har brug for hjælp forstår simpelthen ikk hvor min fejl ligger


<?php
require_once("../db_connect.php");
$query = mysqli_query($conn,"select * from skuespiller");
while($result = mysqli_fetch_array($query)){

    echo "<br />";
    echo "--------------------------------------------------------------------<br/>";
    echo "<img src='../thumb.php?file=images/skuespiller/".$result['skuespillerbilled']."&width=100' /><br/><br />";
    echo $result['skuespillerinfo'];   
};

?>

selve fejlkoden

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in D:\web\medieskolerne.dk\subdomains\eksamen\elev04\Sites\Skuespiller.php on line 31
Avatar billede mrgumble Nybegynder
07. oktober 2010 - 10:37 #1
Hvilken linje er nr. 31?
Læs nu lige fejlbeskeden:
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in D:\web\medieskolerne.dk\subdomains\eksamen\elev04\Sites\Skuespiller.php on line 31

Den er altså gal med linjen med while-løkken. Tilsyneladende er $query en boolean, en Sand/Falsk værdi, returneret af mysqli_query.
Gå nu ind og læs i dokumentationen om hvad mysqli_query laver:
http://dk2.php.net/manual/en/mysqli.query.php
Her ser du under punktet "Return Values", at mysqli_query returnerer FALSK, hvis sql-forespørgelsen ikke virker.

Din næste opgave er derfor at finde ud af, hvorfor det mon skyldes.

Siden du siger, at den virker på din egen testserver, men ikke på online, må du hellere tjekke forskellene. Det kan være alt fra indstillingerne af php til forskellige versioner af php.
Lav en fil med følgende indhold:
<?php phpinfo(); ?>
Åbn filen på både testserver og onlineserver og sammenlign.
Avatar billede Dacco Nybegynder
07. oktober 2010 - 10:48 #2
hva skal jeg så kigge efter de er jo forskellige næsten fra start til slut - jeg er sku ikk så hård til det her php så sorry for noob kommentarne men er sku slet ikk med - ka jo godt læse min kode men ser bare ikk nogen fejl ok!
Avatar billede mrgumble Nybegynder
07. oktober 2010 - 11:03 #3
I dit tilfælde skal du mest se på, om der er forskellige i versionen af php. Det kan give et hint om hvorfor mysqli_query ikke virker.
For du skal stadigvæk løse dette problem - hvorfor virker mysqli_query ikke? Din SQL sætning er næsten dømt til at lykkedes - den fejler kun hvis tabellen "skuespiller" ikke findes. Så det er nærliggende at undersøge 1) Findes tabellen i online databasen? 2) Forbinder du overhovedet til online databasen i "../db_connect.php"?
Tag et kig på disse to funktioner og se på deres output:
mysqli_connect_error()
mysqli_error($conn)
Avatar billede Dacco Nybegynder
07. oktober 2010 - 11:06 #4
ka se min test server er 3.5.0 hvorimod min remote server er 3.5.1
har det noget at sku sige ?

og har gennemgået min dbcon... har ikk fundet noget som virker forkert selve tabellen skuespiller findes og er skrevet korrekt - jeg har min host plus bruger og password hm hm hm.
Avatar billede mrgumble Nybegynder
07. oktober 2010 - 11:07 #5
Og du skal ikke undskylde for at være ny til php. Det har vi alle været engang. Men du må derimod godt undskylde for dit spørgsmål - "fejl" er en ret intetsigende titel. Fra FAQ'en:
Hvad skal jeg skrive i spørgsmålets titel?

Overskriften på et spørgsmål skal fange læserens opmærksomhed. Derfor er det vigtigt at du gør din overskrift både informativ og interessant.

Du skal prøve med få ord at beskrive hvad dit problem omhandler, det er en rigtig dårlig idé bare at skrive Hjælp, hjælp mig eller en masse spørgsmålstegn.

Det drejer sig om at gøre opmærksom på sit problem, i de førnævnte tilfælde er der mange der vælger at ignorere spørgsmålet, og det er jo ikke meningen.

Der findes også en php-kategori til dit næste php-spørgsmål, du finder den under Programmering > Script > PHP. :)
Avatar billede mrgumble Nybegynder
07. oktober 2010 - 11:13 #6
WTF? php version 3.5 har ikke eksisteret i tusinde år. Er du sikker på du aflæser den rigtige php version? Hvis du er i tvivl, kan du bruge funktionen "phpversion()".

Hvad sker der, hvis du under linjen "require_once" tilføjer disse:
var_dump($conn);
echo mysqli_connect_error();
$query = mysqli_query($conn,"select * from skuespiller");
echo mysqli_error($conn);


PS. Ekspertens indlæg typer er lidt misvisende. Du skal kun bruge "Svar" hvis du har en løsning til problemet, ikke et svar til en kommentar.
Avatar billede Dacco Nybegynder
07. oktober 2010 - 11:17 #7
ahh tak for det vidste ikk man bare sku trykke kommentar - nu ka jeg se den faktisk siger min tabel ikke eksistere sender lige selve fejl koden.

object(mysqli)#1 (17) { ["affected_rows"]=>  int(0) ["client_info"]=>  string(50) "mysqlnd 5.0.5-dev - 081106 - $Revision: 1.3.2.27 $" ["client_version"]=>  int(50005) ["connect_errno"]=>  int(0) ["connect_error"]=>  string(0) "" ["errno"]=>  int(0) ["error"]=>  string(0) "" ["field_count"]=>  int(0) ["host_info"]=>  string(44) "MySQL host info: medieskolerne.dk via TCP/IP" ["info"]=>  NULL ["insert_id"]=>  int(0) ["server_info"]=>  string(16) "5.1.42-community" ["server_version"]=>  int(50142) ["sqlstate"]=>  string(5) "00000" ["protocol_version"]=>  int(10) ["thread_id"]=>  int(4454) ["warning_count"]=>  int(0) } Table 'elev04.skuespiller' doesn't exist


og min kode kom ti lat se sådan ud -

<?php
require_once("../db_connect.php");
var_dump($conn);
echo mysqli_connect_error();
$query = mysqli_query($conn,"select * from skuespiller");
echo mysqli_error($conn);
   

    echo "<br />";
    echo "--------------------------------------------------------------------<br/>";
    echo "<img src='../thumb.php?file=images/skuespiller/".$result['skuespillerbilled']."&width=100' /><br/><br />";
    echo $result['skuespillerinfo'];   


?>
Avatar billede Dacco Nybegynder
07. oktober 2010 - 11:21 #8
skrev også forkert med min php version mente 5.3 sorry
Avatar billede mrgumble Nybegynder
07. oktober 2010 - 11:27 #9
Den gode nyhed er, at du rent faktisk forbinder til databasen.
Den dårlige nyhed er, at tabellen, som du åbner, ikke eksisterer. Løsningen hertil forventer jeg du selv kan klare.

Til din kode vil jeg anbefale dig, at du løbende tjekker output fra databaser, filer, osv. F.eks. kan du efter mysqli_query spørge, om det det var en succes:
if (!$query) {
  die("Horrible database error. The Query was not executed succesfully...");
}

Og evt. erstatte meddelelsen med noget mere informativt som "echo mysqli_error($conn);", i hvert fald i udviklingsfasen. ;)

Og nu hvor vi har løst problemet, skal du huske at lukke dit spørgsmål og acceptere svaret.
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
Kurser inden for grundlæggende programmering

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