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