Avatar billede wolstrup Nybegynder
15. januar 2006 - 11:25 Der er 17 kommentarer og
1 løsning

Fejl i A-B-C inddeling

Hej, har lavet en inddeling af mit databaseindhold i alfabetisk orden. Altså A-B-C osv. Scriptet skulle efter hvad jeg kan se virke, men det gør det selvfølgelig ikke. Når man klikke på et bogstav registreres variablen $b godt nok, men der findes intet indhold, selvom der er indhold i databasen med dette begyndelsebogstav. Håber der er nogen som kan finde fejlen. På forhånd tak.

Links:
<a href="?p=adressebog&b=a"><b>A</b></a>
<a href="?p=adressebog&b=b"><b>B</b></a> 
<a href="?p=adressebog&b=c"><b>C</b></a>
<a href="?p=adressebog&b=d"><b>D</b></a>
Osv...

Script:
<?
$b=$_GET[b];
include 'db.php';
if($_GET[b] != ""){
$user = mysql_query("select * from login WHERE efternavn LIKE \'$b%\' order by id");
} else {
if($_GET[b] == ""){
include 'db.php';
$user = mysql_query("select * from login order by id");
}
?>

<?
while ($users = mysql_fetch_array($user)){
$bg2 = "#F0F6F9";
$bg = "#FFFFFF";
    if($color == "$bg"){
$color=$bg2;
} else {
$color=$bg;
}
?>
Avatar billede nielle Nybegynder
15. januar 2006 - 11:33 #1
Prøv med dette:

<?
$b = $_GET[b];
include 'db.php';
if (isset($_GET[b]))
    if (trim($_GET[b]) != "")
    {
        $sql = "SELECT * FROM login WHERE efternavn LIKE '$b%' ORDER BY id";
    }
    else
    {
        $sql = "SELECT * FROM login ORDER BY id";
    }

    $user = mysql_query($sql) or die(mysql_error());

    while ($users = mysql_fetch_assoc($user))
    {
        $bg2 = "#F0F6F9";
        $bg = "#FFFFFF";
        if ($color == "$bg")
        {
            $color = $bg2;
        }
        else
        {
            $color = $bg;
        }

        // Og så skal du selvfølgeligt også udskrive data fra $users.
    }
}
?>
Avatar billede wetdog Nybegynder
15. januar 2006 - 11:44 #2
include er en funktion og bør skrives:

include('db.php');
Avatar billede killifish Nybegynder
15. januar 2006 - 11:44 #3
For mig ser det ud som nogle manglende anførselstegn. Altså $_GET["b"] og ikke $_GET[b]
Avatar billede wolstrup Nybegynder
15. januar 2006 - 11:45 #4
Lækkert! Men det skulle gerne være sådan at når man kommer ind på siden, udskriver den alt indhold af databasen? Så man har alt indhold på første side..
Avatar billede nielle Nybegynder
15. januar 2006 - 17:34 #5
Et bud:

<?
include(db.php);

if (isset($_GET["b"]) && trim($_GET["b"]) != "")
    $sql = "SELECT * FROM login WHERE efternavn LIKE '" . $_GET["b"] . "%' ORDER BY id";
else
    $sql = "SELECT * FROM login ORDER BY id";

$bg = "#FFFFFF";
$bg2 = "#F0F6F9";

$user = mysql_query($sql) or die(mysql_error());
while ($users = mysql_fetch_assoc($user))
{
    $color = ($color == "$bg") ? $bg2 : $bg;

    // Og så skal du selvfølgeligt også udskrive data fra $users.
}
?>
Avatar billede nielle Nybegynder
15. januar 2006 - 21:39 #6
Er det her at du mente at:

"Mend hensyn til mit andet spørgsmål, skriver den "Query was empty" når man ikke har valgt noget bogstav, altså der hvor den egentlig skulle poste alle?"
Avatar billede wolstrup Nybegynder
15. januar 2006 - 21:44 #7
Præcis :-)
Avatar billede nielle Nybegynder
15. januar 2006 - 21:51 #8
Prøv lige med noget debug-udskrift:

<?
include(db.php);

if (isset($_GET["b"]) && trim($_GET["b"]) != "")
    $sql = "SELECT * FROM login WHERE efternavn LIKE '" . $_GET["b"] . "%' ORDER BY id";
else
    $sql = "SELECT * FROM login ORDER BY id";

$bg = "#FFFFFF";
$bg2 = "#F0F6F9";

echo "DEBUG: [" . $sql . "]<br>";
$user = mysql_query($sql) or die(mysql_error());
while ($users = mysql_fetch_assoc($user))
{
    $color = ($color == "$bg") ? $bg2 : $bg;

    // Og så skal du selvfølgeligt også udskrive data fra $users.
}
?>
Avatar billede wolstrup Nybegynder
15. januar 2006 - 21:54 #9
DEBUG: [SELECT * FROM login ORDER BY id]
Avatar billede nielle Nybegynder
15. januar 2006 - 21:57 #10
Og så altså:

Query was empty

umiddelbart nedenunder?
Avatar billede wolstrup Nybegynder
15. januar 2006 - 22:00 #11
Nej, den kom kun før da jeg ikke havde indsat debug.
Avatar billede nielle Nybegynder
15. januar 2006 - 22:02 #12
Wierd! Prøv lige at fjerne debug-linjen igen.
Avatar billede wolstrup Nybegynder
15. januar 2006 - 22:11 #13
Så har vi den igen når der ikke er valgt noget bogstav. Query was empty
Avatar billede nielle Nybegynder
15. januar 2006 - 22:14 #14
Det giver absolut ingen som helst mening at det at fjerne echo'en skulle ændre på den øvrige adfærd?! Sikker på at du ikke også gør noget andet samtidigt?
Avatar billede wolstrup Nybegynder
15. januar 2006 - 22:22 #15
100%
Avatar billede nielle Nybegynder
15. januar 2006 - 22:24 #16
Hvordan ser din kode ud lige nu?
Avatar billede wolstrup Nybegynder
15. januar 2006 - 22:34 #17
Fandt en løsning, så det virker bare nu... Lækkert.. Men mange tak, smid et svar. Lige for at være ekstra bøvlet, så har jeg fundet en anden måde til ventelisten, så hvis du er frisk kan vi hoppe tilbage i det andet spørgsmål, så kan du lige kigge på den???
Avatar billede nielle Nybegynder
15. januar 2006 - 22:37 #18
Oki :^)
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