Problemer med et par php ting

Tags:    php

Ok har problemer med at få den til at give mig de admin ting jeg vil have når jeg selv logger ind med min bruger som i databasen har id = 1, min kode ser sådan her ud


$db = mysql_connect("localhost","*****","*****");
mysql_select_db("thyge",$db);
$id = mysql_query("SELECT id FROM login");
if ($id == 1) {
echo "<tr><a href='post.php'><td align='center' class='link1'>New Post</td></a></tr>";
}
?>

men når jeg logger ind med en bruger ligemeget hvilken, så returner den slet ikke den echo linje også selvom det er id nr 1



3 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Det er fordi du gør det forkert. mysql_query returnerer ikke nogen værdi som sådan, men returnerer en mysql_resource, som du så kan behandle med eksempelvis mysql_fetch_array().

Overstående kan f.eks. rettes til:
Fold kodeboks ind/udKode 


Jeg har her brugt funktionen extract (http://dk.php.net/extract). Hvis du ved din query returnerer mere end én række, kan du køre igennem dem alle ved brug af funktionen mysql_fetch_array (http://dk.php.net/manual/en/function.mysql-fetch-array.php)



hey, tak for rådet, har rettet mit til

<?php
$db = mysql_connect("localhost","thyge","1433");
mysql_select_db("thyge",$db);
$id = mysql_query("SELECT id FROM login");
if(mysql_num_rows($id));
extract(mysql_fetch_array($id));
if ($id == 1) {
echo "<tr><a href='post.php'><td align='center' class='link1'>New Post</td></a></tr>";
}else{
echo "du lugter";
}
?>

men den returner stadig den der new post linje ligemeget hvilken bruger jeg logger ind med :s



Det gør den fordi at når du lavet en mysql_query og henter alle id´s fra login.Det som din kode gør, er at først henter den alle id, jeg er ikke så kende med mysql_fetch_array, men jeg vil tro at den så enten smider alle id i et array, eller bare et enkelt når du lavet det der extract. Dit problem er at du jo faktisk ikke har fortalt MySQL hvem du er, så den vil altid returnere med værdien 1, hvis der er en row med id =1 i din login. Jeg går ud fra at du skriver dit brugernavn og din adgangskode ind i en form på en eller anden side, så derfor ville jeg lave loginin scriptet sådan her:

Fold kodeboks ind/udKode 




hey, tak for rådet, har rettet mit til

<?php
$db = mysql_connect("localhost","thyge","1433");
mysql_select_db("thyge",$db);
$id = mysql_query("SELECT id FROM login");
if(mysql_num_rows($id));
extract(mysql_fetch_array($id));
if ($id == 1) {
echo "<tr><a href='post.php'><td align='center' class='link1'>New Post</td></a></tr>";
}else{
echo "du lugter";
}
?>

men den returner stadig den der new post linje ligemeget hvilken bruger jeg logger ind med :s



t