Avatar billede blach Nybegynder
24. juli 2006 - 19:43 Der er 6 kommentarer og
1 løsning

Løkke som laver titel unikt

Har brug for en løkke, som laver titel unikt. Dvs. når denne streng returnerer 0, er titlen unik:

$forespLink = mysql_query("SELECT id FROM " . $db . " WHERE titel='" . $titel_navn . "'") or die(mysql_error());

Dvs. hvis:
mysql_num_rows($forespLink) == '1' --> $titel_navn er ikke unik, lav den om til f.eks. $titel_navn = $titel_navn.'_2'; (det er fint hvis den bare plusser 1 hver gang)

Hvis:
mysql_num_rows($forespLink) == '0' --> Den er unik, og der skal ikke gøres mere ved $titel_navn
Avatar billede nielle Nybegynder
24. juli 2006 - 19:53 #1
Et bud:

$sql = "SELECT id FROM $db WHERE titel='$titel_navn'";
$result = mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($result) == 0)
    echo "Titlen $titel_navn er ikke brugt før.";
else
{
    $counter = 1;
    do
    {
        $counter++;
        $sql = "SELECT id FROM $db WHERE titel='{$titel_navn}_{$counter}'";
        $result = mysql_query($sql) or die(mysql_error());
    } while (mysql_num_rows($result) > 0)

    echo "Titlen {$titel_navn}_{$counter} er ikke brugt før.";
}
Avatar billede blach Nybegynder
31. juli 2006 - 19:31 #2
Det virker perfekt, tak for hjælpen!
Avatar billede nielle Nybegynder
31. juli 2006 - 20:36 #3
Svar :^)
Avatar billede Slettet bruger
31. juli 2006 - 20:38 #4
nielle> det ser ud til at virke, men kan ikke lide din måde med din $variabler inde i din tekst streng, jeg bruger altid:
echo "Titlen ".$titel_navn." er ikke brugt før.";
Avatar billede hmortensen Nybegynder
31. juli 2006 - 20:43 #5
coldgate, men det er ikke nødvendigt. Strenge omgivet af "" oversætter selv $variabler. Man kan dog sætte {} som i gammelt bash scripting:
echo "Titlen {$titel_navn} er ikke brugt før.";
eller
echo "Titlen ${titel_navn} er ikke brugt før.";
Avatar billede nielle Nybegynder
31. juli 2006 - 20:50 #6
Det er jo ultimativt et spørgsmål om smag og behag.

Sommetider foretrækker jeg .-metoden og i andre sammenhænge foretrækker jeg den med indlejrede variable. De kan begge være med til at gøre koden lettere at læse alt efter sammenhængen.

Når jeg bruger .-metoden insistere jeg dog altid på mellemrum rundt om .-tegnene sådan at det bliver mere synligt hvad der sker:

echo "Titlen " . $titel_navn . " er ikke brugt før.";

I dette løsning brugte jeg den indlejrede version, og lige i dette tilfælde er {}-parenterne uundgåelige, idet PHP ellers ville undre sig over variablen "$titel_navn_" i:

echo "Titlen $titel_navn_$counter} er ikke brugt før.";
Avatar billede Slettet bruger
31. juli 2006 - 21:32 #7
okay ja du har ret i at det er smag og behag.
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