onhandig script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fabian webstars

Fabian webstars

11/07/2015 12:45:42
Quote Anchor link
Hallo,

ik heb een nogal onhandig script gemaakt:
het werkt allemaal prima maar het is heel veel code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92


<h2>a</h2>
<div class="panel-group" id="accordion">
<div class="panel-body">
<p>
<?php
$sql
= "
SELECT id, artiest, sort
FROM artiesten
WHERE sort='a'
ORDER BY artiest
"
;
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result)) {

echo '<a href="artiest.php?id=', $row['id'], '">';
echo $row['artiest'];
echo '</a><br /> ';
}

?>

</p>

</div></div>
<?php
if(isset($_SESSION['username']) and $_SESSION['groep']==$admin or $_SESSION['groep']==$muziek) { ?>

<input type="button" class="btn btn-default" onclick="javascript:document.location='http://web-stars.nl/muziek/addartiest.php?sort=a';" value="voeg artiest toe"/>
<?php } ?>
</div>
                    

<div class="col-md-3">
<h2>B</h2>
<div class="panel-group" id="accordion">
<div class="panel-body">
<p>
<?php
$sql
= "
SELECT id, artiest
FROM artiesten
WHERE sort='b'
ORDER BY artiest
"
;

$result = mysqli_query($con, $sql);

while($row = mysqli_fetch_array($result)) {

echo '<a href="artiest.php?id='; echo $row['id']; echo '">';
echo $row['artiest'];
echo '</a><br /> ';
}

?>

</p>
</div>
</div>

<?php if(isset($_SESSION['username']) and $_SESSION['groep']==$admin or $_SESSION['groep']==$muziek) { ?>
<input type="button" class="btn btn-default" onclick="javascript:document.location='http://web-stars.nl/muziek/addartiest.php?sort=b';" value="voeg artiest toe"/>
<?php } ?>
</div>


<div class="col-md-3">
<h2>C</h2>
<div class="panel-group" id="accordion">
<div class="panel-body">
<p>
<?php
$sql
= "
SELECT id,artiest
FROM artiesten
WHERE sort='c'
ORDER BY artiest
"
;

$result = mysqli_query($con, $sql);

while($row = mysqli_fetch_array($result)) {

echo '<a href="artiest.php?id='; echo $row['id']; echo '">';
echo $row['artiest'];
echo '</a><br /> ';
}

?>

</p>

</div></div>
<?php if(isset($_SESSION['username']) and $_SESSION['groep']==$admin or $_SESSION['groep']==$muziek) { ?>
<input type="button" class="btn btn-default" onclick="javascript:document.location='http://web-stars.nl/muziek/addartiest.php?sort=c';" value="voeg artiest toe"/>
<?php } ?>
</div>


weet iemand hoe ik dit een stuk handiger kan aanpakken?

groetjes
Fabian
Gewijzigd op 11/07/2015 12:48:43 door Fabian webstars
 
PHP hulp

PHP hulp

27/04/2024 18:52:50
 
Randy vsf

Randy vsf

11/07/2015 12:58:01
Quote Anchor link
Om het een stuk netter te maken, kan je alle php waar je waardes uit de database haalt, helemaal bovenaan in je script zetten.

Dan krijg je zoiets :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$result
= mysqli_query($con, $sql);

$arrayNaam = array();

while($row = mysqli_fetch_array($result)) {
    $arrayNaam[] = $row;
}

?>
Gewijzigd op 11/07/2015 13:00:16 door Randy vsf
 
Fabian webstars

Fabian webstars

11/07/2015 13:13:15
Quote Anchor link
oh nice, maar wat moet ik dan in de
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php array() ?>
zetten? Sorry ik heb nog nooit met arrays gewerkt


Toevoeging op 11/07/2015 13:16:57:

of moet dat dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$result
= mysqli_query($con, $sql);

$a= array(SELECT id, artiest, sort
FROM artiesten
WHERE sort='a'
ORDER BY artiest);


$b= array(SELECT id, artiest, sort
FROM artiesten
WHERE sort='b'
ORDER BY artiest);

while($row = mysqli_fetch_array($result)) {
    $a[] = $row;
}


while($row = mysqli_fetch_array($result)) {
    $b[] = $row;
}

?>


tis wel netter, maar is het niet mogelijk om niet steeds die select op te moeten roepen?
Gewijzigd op 11/07/2015 13:17:34 door Fabian webstars
 
Randy vsf

Randy vsf

11/07/2015 13:24:34
Quote Anchor link
even snel een voorbeeld.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php

$sql
= "
SELECT id, artiest, sort
FROM artiesten
WHERE sort='a'
ORDER BY artiest
"
;

$result = mysqli_query($con, $sql);

$a = array();

while($row = mysqli_fetch_array($result)) {

    $a[] = $row;

}


$sql = "
SELECT id, artiest, sort
FROM artiesten
WHERE sort='b'
ORDER BY artiest
"
;

$result = mysqli_query($con, $sql);

$b = array();

while($row = mysqli_fetch_array($result)) {

    $b[] = $row;

}

?>


- Je maakt een lege array aan.
- Vervolgens vul je de array met de row in de while loop.

Dan tussen je html in met een foreach loop de waardes ophalen om in de HTML te zetten.
om te zien wat er in de array zit kan je print_r($array); gebruiken.

Om die select niet steeds te hoeven schrijven, kan je functies of classes schrijven of ergens van het internet vandaan plukken. Voorbeeld functie

Je kan ze ook in een apart bestand zetten, en dan includen in de gewenste pagina.
Gewijzigd op 11/07/2015 13:36:22 door Randy vsf
 
Shamrock Modelbouw

Shamrock Modelbouw

11/07/2015 13:27:45
Quote Anchor link
Ik neem aan dat je voor elke letter in het alfabet dezelfde code wil uitvoeren?

Waarom dan niet zo?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?PHP
$alfabet
=Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
foreach ($alfabet as $i => $value) {
    echo '<div class="col-md-3">
          <h2>'
.ucfirst($value).'</h2>
          <div class="panel-group" id="accordion">
          <div class="panel-body">
          <p>'
;
          
    $sql = "
    SELECT id, artiest
    FROM artiesten
    WHERE sort='"
.$value."'
    ORDER BY artiest
    "
;
          
    $result = mysqli_query($con, $sql);
    
    while($row = mysqli_fetch_array($result)) {
        echo '<a href="artiest.php?id='; echo $row['id']; echo '">';
        echo $row['artiest'];
        echo '</a><br /> ';
    }

    
    echo '
          </p>
          </div>
          </div>
          '
;
    
    if(isset($_SESSION['username']) and $_SESSION['groep']==$admin or $_SESSION['groep']==$muziek) {
        echo '<input type="button" class="btn btn-default" onclick=\"javascript:document.location="http://web-stars.nl/muziek/addartiest.php?sort='.$value.'";\" value="voeg artiest toe"/>';
    }

    echo '</div>';
}

?>
 
Thomas van den Heuvel

Thomas van den Heuvel

11/07/2015 13:42:36
Quote Anchor link
EGADS, MY EYES!

Edit:
Gelieve in het vervolg een constructief beargumenteerde reactie te geven waar een ander ook iets aan heeft.

Alvast bedankt!
Gewijzigd op 11/07/2015 19:45:01 door - Ariën -
 
Victor -

Victor -

11/07/2015 14:54:04
Quote Anchor link
Op de volgende manier hoef je niet elke keer een query uit te voeren, wat je dus ongeveer 25 queries per pagina bespaart:)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
$sql
= "SELECT id, artiest
    FROM artiesten
    ORDER BY artiest"
;
          
$result = mysqli_query($con, $sql);
$first = true;

while ($row = mysql_fetch_assoc($result)) {
    if ($eerste_letter !== strtoupper(substr($row['artiest'], 0, 1)) {
        $eerste_letter = strtoupper(substr($row['artiest'], 0, 1));
        echo '<div class="col-md-3">
          <h2>'
.$eerste_letter.'</h2>
          <div class="panel-group" id="accordion">
          <div class="panel-body">
          <p>'
;
    }


    echo '<a href="artiest.php?id='; echo $row['id']; echo '">';
    echo $row['artiest'];
    echo '</a><br /> ';

    if(!first) {
        echo '</p></div></div>';
    
        if(isset($_SESSION['username']) and $_SESSION['groep']==$admin or $_SESSION['groep']==$muziek) {
            echo '<input type="button" class="btn btn-default" onclick=\"javascript:document.location="http://web-stars.nl/muziek/addartiest.php?sort='.$eerste_letter.'";\" value="voeg artiest toe"/>';
        }

        echo '</div>'
    }
    $first = false;
    
}

?>


edit: indent, en typfoutje whoops
Gewijzigd op 11/07/2015 15:04:38 door Victor -
 
Randy vsf

Randy vsf

11/07/2015 15:02:08
Quote Anchor link
Victor - op 11/07/2015 14:54:04:
Op de volgende manier hoef je niet elke keer een query uit te voeren, wat je dus ongeveer 25 queries per pagina bespaart:)


Dan zou ik wel ff de query aanpassen, want zo doet hij nog niks ;)
 
Victor -

Victor -

11/07/2015 15:05:09
Quote Anchor link
Oeps, aangepast
 
Fabian webstars

Fabian webstars

11/07/2015 15:53:04
Quote Anchor link
Shamrock Modelbouw op 11/07/2015 13:27:45:
Ik neem aan dat je voor elke letter in het alfabet dezelfde code wil uitvoeren?

Waarom dan niet zo?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?PHP
$alfabet
=Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
foreach ($alfabet as $i => $value) {
    echo '<div class="col-md-3">
          <h2>'
.ucfirst($value).'</h2>
          <div class="panel-group" id="accordion">
          <div class="panel-body">
          <p>'
;
          
    $sql = "
    SELECT id, artiest
    FROM artiesten
    WHERE sort='"
.$value."'
    ORDER BY artiest
    "
;
          
    $result = mysqli_query($con, $sql);
    
    while($row = mysqli_fetch_array($result)) {
        echo '<a href="artiest.php?id='; echo $row['id']; echo '">';
        echo $row['artiest'];
        echo '</a><br /> ';
    }

    
    echo '
          </p>
          </div>
          </div>
          '
;
    
    if(isset($_SESSION['username']) and $_SESSION['groep']==$admin or $_SESSION['groep']==$muziek) {
        echo '<input type="button" class="btn btn-default" onclick=\"javascript:document.location="http://web-stars.nl/muziek/addartiest.php?sort='.$value.'";\" value="voeg artiest toe"/>';
    }

    echo '</div>';
}

?>


yes thanx het werkt super!!!
 
Randy vsf

Randy vsf

11/07/2015 16:12:25
Quote Anchor link
PHP Range

Kan je ook gebruiken ipv $alfabet=Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
 
Fabian webstars

Fabian webstars

11/07/2015 19:28:38
Quote Anchor link
k heb nog een vraagje en voelde me beetje beschaamd om nog een topic te starten

dit script is om een nieuw ww op te vragen, als je je email invult krijg je een nieuw ww opgestuurd. Heb echt super veel geprobeerd, maar het wil steeds niet lukken
Weet iemand wat ik fout doe?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?php
include('config.php');

$Error = false;
$Message = array();

if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    if(empty($_POST['email']))
    {

        $Message[] = 'Vul een email adres in.';
        $Error = true;
    }

    
    if(preg_match( $_POST['email']))
    {

        $Message[] = 'Vul een geldig email adres in.';
        $Error = true;
    }

    
    if($Error == false)
    {

        # Query uitvoeren
        $Query =
        "
            SELECT id, email
            FROM users
            WHERE email = '"
.mysql_real_escape_string(trim($_POST['email']))."'
        "
;
        
        $Result = mysql_query($Query);
        
        if(!$Result)
        {

            $Message[] = 'Er is een fout opgetreden, fout is: '.mysql_error();
        }

        else
        {
            if(mysql_num_rows($Result) == 0)
            {

                $Message[] = 'Dit email adres komt niet voor in onze database.';
            }

            else
            {
                $Row = mysql_fetch_assoc($Result);
                
                $Nieuw_ww = mt_srand((double)microtime()*100000);
                                
                while(strlen($Nieuw_ww) <= 6)
                {

                    $i = chr(mt_rand(0,255));
                                                              
                    if(preg_match('/^[a-z0-9]$/', $i))
                    {

                        $Nieuw_ww = $Nieuw_ww.$i;
                    }
                }

                
                $Query = "
                    UPDATE users
                    SET password = '"
.sha1($Nieuw_ww)."'
                    WHERE id = '"
.intval($Row['id'])."'
                "
;
                
                $Result = mysql_query($Query);
                
                if($Result)
                {

                    $Receiver       = $Row['email'];
                    $Subject        = 'Wachtwoord Reset';
                    $Headers        = 'From: [email protected]' . "\r\n" .
                                      'Reply-To: [email protected]' . "\r\n" .
                                      'MIME-Version: 1.0' . "\r\n" .
                                      'Content-Type: text/html; charset=ISO-8859-1' . "\r\n" .
                                      'X-Mailer: PHP/' . phpversion();
                                      'X-Priority: 1' . "\r\n" .
                    $Mail            = '<h3>Wachtwoord Reset</h3>
<p>Beste '
.$Row['email'].',</p>
<p>U nieuwe wachtwoord: '
.$Nieuw_ww.'<br/>
Werkt het nieuwe wachtwoord niet? Neem dan zo snel mogelijk contact op (http://web-stars.nl/contact.php). <br />
Is deze mail niet van u afkomstig, negeer deze mail en meldt het bij web-stars!</p>
<p>Met vriendelijke groet,</p>
<p>Web-stars!</p>'
;
?>

<script type="text/javascript">
    function myFunction() {
        window.open('http://gmail.com');
    }
</script>
<?php
                }
                else
                {
        
$Message[] = 'Er is een fout opgetreden, fout is: '.mysql_error();


                }
            }
        }
    }
}

?>


                        <?php
include('header.php')
?>
        

<div class="header"></div>      

<div class="container">
<h2>Nieuw wachtwoord opvragen</h2>
<?PHP

# Kijken of er berichten zijn
if(!empty($Message))
{

    # Berichten laten zien
    foreach($Message as $Msg)
    {

        echo $Msg.'<br/>';
    }
}


?>
                  
</script>
          <div class="col-md-3">
<form id="form1" name="form1" method="post" onsubmit="myFunction();">
    <div class="form-group">
        <label for="email">E-mailadres</label>
        <input type="email" name="email" class="form-control" id="email">
    </div>

    <input type="submit" value="verzenden" class="btn btn-primary" />
</form></div>
</body>
</html>
Gewijzigd op 11/07/2015 19:55:35 door Fabian webstars
 
Fabian webstars

Fabian webstars

11/07/2015 19:39:31
Quote Anchor link
Thomas van den Heuvel op 11/07/2015 13:42:36:
EGADS, MY EYES!


Thomas wat bedoel je hier eigenlijk mee??
 
Thomas van den Heuvel

Thomas van den Heuvel

11/07/2015 19:57:10
Quote Anchor link
Die code was niet om aan te zien.

(Heb je ook echt een 'sort' kolom? je kunt toch ook een LIKE gebruiken?)

- queries in een loop... really?
- echo'en van HTML heeft geen enkele meerwaarde, behalve dan dat alles moeilijker leesbaar wordt
- het niet escapen van output, noch in de queries (met een _real_escape_string() functie) noch in de HTML (met htmlspecialchars)
- en ja, array uitschrijven in plaats van een range() is ook nogal omslachtig

Edit:
*knip*
Daar zijn moderatie-pm's voor bedoeld!
Gewijzigd op 11/07/2015 20:00:50 door - Ariën -
 
Fabian webstars

Fabian webstars

11/07/2015 20:00:05
Quote Anchor link
ja ik heb een kolom genaamd "sort" het maakte me niet zo veel uit hoe het kolom zou heten
Gewijzigd op 11/07/2015 20:05:56 door Fabian webstars
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.