Gå til innhold

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


Anbefalte innlegg

Skrevet

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 ....

Videoannonse
Annonse
Skrevet

Jeg vil tro at denne funker:

$id = intval($_GET['id']);
$les_cd = mysq_query("SELECT * FROM tbl_cd WHERE id = '$id'") or die('Error: ' . mysql_error());

 

Legg også merke til at jeg tok bort selve querien fra linje 2, og inn på den første linja, så sparte du den lille linja hehe

Skrevet
Hva er $i?

Hvorfor bruker du mysql_result? mysql_fetch_row er mye raskere.

Fordi jeg ikke kan noe annet. holder på å lære og prøver.

 

Kanskje du kan vise meg hvordan jeg kan bruke mysql_fetch_row funksjonen.

Skrevet (endret)

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
Skrevet
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.

Skrevet

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.

Skrevet
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.

Skrevet
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.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...