/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
At tælle et variabelnavn op
Fra : Mads Madsen


Dato : 10-08-07 08:25

Hej
Jeg skal have lavet sådan at en variabel tæller op i en whilesætning
og det er variablen $status der driller. Det der var planen var at
$status skulle efter første gennemløb hedde $status1, næste $status2
osv

....
while($row = mysql_fetch_assoc($result))
{
echo "<input type=checkbox ";
echo $status[$i];
echo " name=";
echo "{$row['id']}";
echo "value=ON>{$row['nyhedsgrupper']}<br>";

$i++;
}

<?php
echo "Mads";
?>


 
 
Kenny (10-08-2007)
Kommentar
Fra : Kenny


Dato : 10-08-07 10:27


> while($row = mysql_fetch_assoc($result))
> {
> echo "<input type=checkbox ";
> echo $status[$i];
> echo " name=";
> echo "{$row['id']}";
> echo "value=ON>{$row['nyhedsgrupper']}<br>";
>
> $i++;
> }
>
> <?php
> echo "Mads";
> ?>
>

Er $i defineret før løkken? Altså $i = 0.

Kenny

Michael Zedeler (10-08-2007)
Kommentar
Fra : Michael Zedeler


Dato : 10-08-07 10:32

Mads Madsen wrote:
> Hej
> Jeg skal have lavet sådan at en variabel tæller op i en whilesætning
> og det er variablen $status der driller. Det der var planen var at
> $status skulle efter første gennemløb hedde $status1, næste $status2
> osv [klip]

Jeg tror det er nemmere at hjælpe hvis du kan beskrive problemet, du
ønsker at løse.

Mvh. Michael.

Mads Madsen (10-08-2007)
Kommentar
Fra : Mads Madsen


Dato : 10-08-07 10:37

ja det er den - fik dog ikke lige den linje med

> Er $i defineret før løkken? Altså $i = 0.
>
> Kenny



Mads Madsen (10-08-2007)
Kommentar
Fra : Mads Madsen


Dato : 10-08-07 10:46

Jeg synes også jeg har beskrevet problemet. Men for at beskrive hele
mit script vil jeg lave et nyhedsbrevsystem hvor man kan tilmelde/
afmelde sig flere kategorier. Jeg har så tidligere i scriptet hentet
frem om en bruger har tilmeldt en given kategori vha $status01 02
osv...


> Jeg tror det er nemmere at hjælpe hvis du kan beskrive problemet, du
> ønsker at løse.

Mads


Michael Zedeler (10-08-2007)
Kommentar
Fra : Michael Zedeler


Dato : 10-08-07 11:55

Mads Madsen wrote:
> Jeg synes også jeg har beskrevet problemet. Men for at beskrive hele
> mit script vil jeg lave et nyhedsbrevsystem hvor man kan tilmelde/
> afmelde sig flere kategorier. Jeg har så tidligere i scriptet hentet
> frem om en bruger har tilmeldt en given kategori vha $status01 02
> osv...

Det gør altså en kæmpe forskel at du skriver det. problemet er at din
kode er temmelig ødelagt og det er ikke muligt at se hvad det helt
præcis er, du vil. Samtidig beder du om noget, du ikke har brug for. Så
er det altså ret godt at vide hvad det er, du vil.

Er de forskellige kategorier lagret i databasen og derfor tilgængelige i
$row, eller hvordan?

Hvor bliver $status initialiseret henne?

Hvis du f. eks. har det hele i databasen, bliver koden nok snarere noget
i denne her stil:

while($row = mysql_fetch_assoc($result)) {
echo '<input type=checkbox ';
if( $row['tilmeldt'] ) {
echo 'checked ';
}
echo "name=\"$row[id]\">";
echo $row['nyhedsgrupper'];
echo '<br/>';
}

Med forbehold for fejl og forudsætter at det du henter fra databasen er
en liste over hvilke grupper der findes hvor feltet "tilmeldt" angiver
om man er tilmeldt eller ej.

Mvh. Michael.

P.s. husk at indentere din kode.

Mads Madsen (10-08-2007)
Kommentar
Fra : Mads Madsen


Dato : 10-08-07 12:04

Nu prøver jeg lige med hele koden
De tilmeldte er i en database og katekorierne ie en anden. Det hele er
proppet ind i noget der hedder php-fusion det er derfra jeg henter
user_id i første kald således at jeg kun får de bruger der er logget
på systemet. De forskellige statuer i første del henter frem om
brugerne har tilmeldt (med værdien checked) til de forskellige
nyhedskategorier (5 ialt) De 5 $status1 2 osv vil jeg gerne hente ind
i næste kald de jeg oprinde skrev således man kan se hvilke der er
checked og ikke. Jeg satsede på at jeg kunne bruger $i til at øge
tallet efter $status men det virker ikke rigtig. Jeg er også åben for
andre og måske mere simple forslag. Da jeg ikke er skolet i php prøver
jeg mig bare frem.

Mads

<b>Nyhedsgrupper</b><br>
<?php
$brugerid = $userdata['user_id'];
$query = "SELECT `id`, `user_id`, `nyhedsid01`, `nyhedsid02`,
`nyhedsid03`, `nyhedsid04`, `nyhedsid05` FROM nyhedsbrugere WHERE
user_id='$brugerid' ";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
$status1 = $row['nyhedsid01'];
$status2 = $row['nyhedsid02'];
$status3 = $row['nyhedsid03'];
$status4 = $row['nyhedsid04'];
$status5 = $row['nyhedsid05'];
}

$query = "SELECT id, nyhedsgrupper FROM nyhedsgrupper ORDER BY id
ASC";
$result = mysql_query($query);
$i = 1;
while($row = mysql_fetch_assoc($result))
{
echo "<input type=checkbox ";
echo $status[$i]; //Her er den jeg gerne vil have
til at tælle op
echo " name=";
echo "{$row['id']}";
echo "value=ON>{$row['nyhedsgrupper']}<br>";
echo $status[$i];
$i++;
}
?>


Michael Zedeler (10-08-2007)
Kommentar
Fra : Michael Zedeler


Dato : 10-08-07 12:20

Hej Mads.

Mads Madsen wrote:
> [klip] Jeg er også åben for
> andre og måske mere simple forslag. Da jeg ikke er skolet i php prøver
> jeg mig bare frem. [klip]
> <b>Nyhedsgrupper</b><br>
> <?php
> $brugerid = $userdata['user_id'];
> $query = "SELECT `id`, `user_id`, `nyhedsid01`, `nyhedsid02`,
> `nyhedsid03`, `nyhedsid04`, `nyhedsid05` FROM nyhedsbrugere WHERE
> user_id='$brugerid' ";
> $result = mysql_query($query);
> while($row = mysql_fetch_assoc($result))
> {
> $status1 = $row['nyhedsid01'];
> $status2 = $row['nyhedsid02'];
> $status3 = $row['nyhedsid03'];
> $status4 = $row['nyhedsid04'];
> $status5 = $row['nyhedsid05'];
> }

Problemet er at du ikke har normaliseret din database korrekt. I stedet
for at stoppe abonnementer direkte på brugerne, bør du have det i en
separat tabel:

Brugere
-------
- bruger_id
- navn
- login
- password
....

Kategorier
----------
- kategori_id
- titel

Abonnementer
------------
- kategori_id
- bruger_id

Så hvis du har en bruger som hedder Svend, der har abonneret på
kategorierne Ål og Egern, ser det sådan her ud:

Brugere
bruger_id navn
----------------
1 Svend

Kategorier
------------------
kategori_id titel
1 Ål
2 Egern

Abonnementer
---------------------
kategori_id bruger_id
1 1
2 1

Hvis du benytter det skema, får du slet ikke problemet med dine
mærkelige variable.

Beholder du alligevel dit skema som det er, bør du benytte arrays til at
løse problemet.

Mvh. Michael.

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste