Gå til innhold

hente info fra mysql WHERE id='$id' feilmelding


Anbefalte innlegg

Heisann.

 

Lurer på den beste måten å hente informasjon fra MySql når jeg bare skal ha en linje og der id(nøkkel) = $id...

 

 

Jeg har prøvd

$les_cd="SELECT * FROM tbl_cd WHERE '$id'=cd_id";
$res_cd=mysql_query($les_cd, $db) or die("Feil: ".mysql_error());

  $cd_id = mysql_result($res_cd, $i, "cd_id");
  $cd = mysql_result($res_cd, $i, "cd");
  $spor = mysql_result($res_cd, $i, "spor");
  $sang = mysql_result($res_cd, $i, "sang");
  $artist = mysql_result($res_cd, $i, "artist");

echo $cd_id.'<br>';
echo $cd.'<br>';
echo $spor.'<br>';
echo $sang.'<br>';
echo $artist.'<br>';
?>

 

Jeg får følgende feil melding:

 

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index ....... in ......./cd.php on line ....

Lenke til kommentar
Videoannonse
Annonse

Her har du samme koden ved bruk av mysql_fetch_array, mysql_fetch_object fungerer på samme måte men du vil da få ut eit objekt :

 

$les_cd="SELECT * FROM tbl_cd WHERE cd_id=$id";
$res_cd=mysql_query($les_cd, $db) or die("Feil: ".mysql_error());

  $cd = mysql_fetch_array($res_cd);

echo $cd['cd_id'].'<br>';
echo $cd['cd'].'<br>';
echo $cd['spor'].'<br>';
echo $cd['sang'].'<br>';
echo $cd['artist'].'<br>';
?>

 

itsmebth: mysql_fetch_row er vel omtrent like dumt som mysql_result... Tenk deg at du legger inn eit ekstra felt mellom cd_id og cd (det blir som å bruke insert uten å sepsifisere kvaslags felt du bruker).

Endret av Runar0
Lenke til kommentar
Her har du samme koden ved bruk av mysql_fetch_array, mysql_fetch_object fungerer på samme måte men du vil da få ut eit objekt :

 

$les_cd="SELECT * FROM tbl_cd WHERE cd_id=$id";
$res_cd=mysql_query($les_cd, $db) or die("Feil: ".mysql_error());

  $cd = mysql_fetch_array($res_cd);

echo $cd['cd_id'].'<br>';
echo $cd['cd'].'<br>';
echo $cd['spor'].'<br>';
echo $cd['sang'].'<br>';
echo $cd['artist'].'<br>';
?>

 

itsmebth: mysql_fetch_row er vel omtrent like dumt som mysql_result... Tenk deg at du legger inn eit ekstra felt mellom cd_id og cd (det blir som å bruke insert uten å sepsifisere kvaslags felt du bruker).

 

 

Takk.

 

Du sier dette er omtrent like dumt. Hva er den beste løsningen du vet når jeg skal hente info MySql ?

 

Jeg vil nå prøve løsningen du har kommet med også ser jeg om jeg får noe feil.

Lenke til kommentar

Den beste måten er å bruke mysql_fetch_assoc().

 

Koden blir da

$les_cd = "SELECT * FROM tbl_cd WHERE cd_id={$id}";
$res_cd = mysql_query( $les_cd, $db ) or die( "Feil: ".mysql_error() );

  $cd = mysql_fetch_assoc( $res_cd );

echo "{$cd['cd_id']}<br />";
echo "{$cd['cd']}<br />";
echo "{$cd['spor']}<br />";
echo "{$cd['sang']}<br />";
echo "{$cd['artist']}<br />";
?>

Grunnen er at mysql_fetch_array() innholder resultatene til både mysql_fetch_assoc() og mysql_fetch_row(), med mindre du spesifiserer det i funksjonskallet.

Lenke til kommentar
I det hele tatt ganske håpløst å bruke mysql_ i disse dager.

Bruk mysqli eller PDO om du kan.

 

Hva som er forskjellen og er det webhoteller som har dette? Jeg bruker mysql grunnet webhotellet har støtte for php og MySql.

Mysqli er fortsatt mysql, bare med en nye klientversjon med støtte for ny funksjonalitet i mysql. Mysqli står for "Mysqli improved".

Mer her:

http://no.php.net/mysqli

 

Stort sett kan du bare gjøre alle mysql_-kallene om til mysqli_-kall, men det lønner seg å sette seg inn i å bruke kompilerte statements (eks. http://no.php.net/manual/en/function.mysqli-prepare.php) da dette vil redusere faren for sql injections ganske mye, samtidig som hastigheten kan gå opp.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...