Avatar billede 88mouv Nybegynder
30. maj 2004 - 19:13 Der er 4 kommentarer

Fejl i script??

Hey!! Jeg har et fejl i dette script.. I min tabel har jeg to rows med indhold, men stadig skriver den ikke noget..

Script:
<?php

$s_antal = mysql_query("SELECT id FROM quotesys");

$antal = mysql_num_rows($s_antal);

$valgt = rand(0,$antal);

$s_vis = mysql_query("SELECT quote FROM quotesys LIMIT $valgt,1");

$vis = mysql_fetch_array($s_vis);

print $vis[besked];

if($vis[besked] == NULL) {

$s_vis = mysql_query("SELECT quote FROM quotesys ORDER BY id DESC LIMIT 1");
$vis = mysql_fetch_array($s_vis);

print $vis[besked];

}

?>

Den den skal er at skrive et random quote og hvis der er kludder i id'erne så skal den bare tage den nyeste, men den skriver overhovedet ikke noget :(

Hvad er fejlen?
Avatar billede rasmusbg Nybegynder
30. maj 2004 - 19:21 #1
Hvis du ikke har lavet en connection til databasen, prøver php at åbne en, på samme måde, som hvis du kalde mysql_connect() uden parametre.
Så hvis du skal bruge et bestemt brugernavn og password til databasen (hvilket, jeg formoder du skal), skal du sørge for at starte med at kalde mysql_connect(), før du laver queries.
Avatar billede 88mouv Nybegynder
30. maj 2004 - 19:23 #2
jeg har en mysql connection som bliver includet i min header.php og jeg ved det virker fordi på sammen side som overgående script er, har jeg en anden mysql udtræk og den har ingen mysql close på.. Så der må være en fjel :P ))
Avatar billede rasmusbg Nybegynder
30. maj 2004 - 19:29 #3
Det kan måske være et par " du mangler, når du forsøger at arbejde med $vis:

<?php

$s_antal = mysql_query("SELECT id FROM quotesys");

$antal = mysql_num_rows($s_antal);

$valgt = rand(0,$antal);

$s_vis = mysql_query("SELECT quote FROM quotesys LIMIT $valgt,1");

$vis = mysql_fetch_array($s_vis);

print $vis["besked"];

if($vis["besked"] == NULL) {

$s_vis = mysql_query("SELECT quote FROM quotesys ORDER BY id DESC LIMIT 1");
$vis = mysql_fetch_array($s_vis);

print $vis["besked"];

}

?>
Avatar billede dennismp Nybegynder
30. maj 2004 - 19:31 #4
.. hvorfor så ikke tilføje or die(mysql_error()) på dine mysql-kald?

$s_antal = mysql_query("SELECT id FROM quotesys") or die(mysql_error());

alternativt kan du gøre:

$res= mysql_query("SELECT quote FROM quotesys ORDER BY rand() LIMIT 1") or die(mysql_error());

if( $row = mysql_fetch_array($res) ) {
  print $row['quote'];
}
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