Gegevens wijzigen via PHP uit database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rick

rick

16/03/2009 15:27:00
Quote Anchor link
Ik probeer een backend voor een site te maken waar men telefoongegevens kan wijzigen. Deze staan opgeslagen in een MySQL database.

Dit is de code welke ik gebruik. maar krijg een foutmelding wanneer ik een bepaalde row wil bewerken.

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
<?php
//includes
include('config.php');

//session start
if(isset($_SESSION['id'])) {
}
else{
    header("Location: index.php?pagina=beheer");
}

    
//Query
$sql = " SELECT * FROM buitenlijn ";

//Gegevens uit de database tonen op de site
if(!$res = mysql_query($sql))
{

    trigger_error(mysql_error().'<br />In query: '.$sql);
}

else
{
?>

<!--Titel-->    
<body>
<h2>Gegevens wijzigen</h2><br><br>

<b>Directe buitenlijn telefoonnummers</b>
</body>

<!--Java code: Select form-->
<SCRIPT TYPE="text/javascript">
function veranderscript() {
  if (document.bewerk.groep.value == 1) location = 'index.php?pagina=internbewerk';
    else if (document.bewerk.groep.value == 2) location = 'index.php?pagina=buitenlijnbewerk';
    else if (document.bewerk.groep.value == 3) location = 'index.php?pagina=gsmbewerk';
}
</SCRIPT>

<FORM NAME="bewerk" ACTION="">
<P><SELECT NAME="groep" ONCHANGE="veranderscript();">
<OPTION SELECTED>Kies een groep...
<OPTION VALUE="1">Interne nummers
<OPTION VALUE="2">Directe buitenlijn nummers
<OPTION VALUE="3">GSM nummers
</SELECT></P>
</FORM>    


<!--Formulier-->
<form name="bewerkform" action="" method="post">
<input type='submit' value="Bewerk geselecteerde producten" name="update" />
<input type='submit' value="Verwijder geselecteerde producten" name="verwijder" />
        <BR>
    <TABLE BORDER="0" ALIGN="center">
    <TD WIDTH="180"><b>Externe nummers:</b></TD>
    <TR>
    <TD WIDTH="180"><b>Naam</b></TD>
    <TD WIDTH="180"><b>Telefoonnummer</b></TD>
    <TD WIDTH="180"><b>Inlognaam</b></TD>
    <TD WIDTH="180"><b>Afdeling</b></TD>
    <TD WIDTH="180"><b>Groep</b></TD>
    <TD WIDTH="20"><b>Wijzigen</b></TD>
    </TR></TABLE>
<?php    
    while($row = mysql_fetch_assoc($res)){
?>
        
    <TABLE BORDER="0" ALIGN="center">
    <TR>
    <TD WIDTH="180"><?php echo $row['naam']; ?></TD>
    <TD WIDTH="180"><?php echo $row['nummer']; ?></TD>
    <TD WIDTH="180"><?php echo $row['inlog']; ?></TD>
    <TD WIDTH="180"><?php echo $row['afdeling']; ?></TD>
    <TD WIDTH="180"><?php echo $row['groep']; ?></TD>
    <TD WIDTH="20"><input type='checkbox' value=".$row['id']." name='telid[]' /></form></TD>
    </TR>
    </TABLE>
    
<?php
    }}

    if (isset($_POST['update'])){
        $maxid = 0;
    ?>

    <form name="verzenden" action="" method="post">
        <?php
        foreach($_POST['telid'] As $value ){
            echo "<input type='hidden' name='telid' value=$value />";
            
            // select
            $result2 = mysql_query("SELECT * FROM buitenlijn WHERE id=$value");
            while ($row = mysql_fetch_array($result2)){
                    echo "<table>";
                    echo "<td>naam: </td><td><input type='text' size='25' name='".$id."naam' value='".$row['naam']."' /></td>";
                    echo "</tr><tr>";
                    echo "<td>nummer: </td><td><input type='text' size='25' name='".$id."nummer' value='".($row['nummer'])."' /></td>";
                    echo "</tr><tr>";
                    echo "<td>afdeling: </td><td><input type='text' size='25' name='".$id."afdeling' value='".$row['afdeling']."' /></td>";
                    echo "</tr><tr>";
                    echo "<td>groep: </td><td><input type='text' size='25' name='".$id."groep' value='".$row['groep']."' /></td>";
                    
                    echo "</tr></table>";
                    }
                 
                
            }

    ?>

    <br>
    <center>
  
    <input type='submit' name='opslaan' value='Opslaan' />
    </center>
    
    </form>
<?php
    }

?>


Foutmelding
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Websites\Localhost\telefoonlijst\buitenlijnbewerk.php on line 90
Gewijzigd op 01/01/1970 01:00:00 door Rick
 
PHP hulp

PHP hulp

21/05/2024 09:19:25
 
Jens V

Jens V

16/03/2009 15:38:00
Quote Anchor link
Ik weet niet hoor, maar probeer eens dit te vervangen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(!$res = mysql_query($sql))
{

    trigger_error(mysql_error().'<br />In query: '.$sql);
}

?>

door
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$res
= mysql_query($sql);
if(!$res)
{

    trigger_error(mysql_error().'<br />In query: '.$sql);
}

?>


Jens
 
Rick

rick

16/03/2009 15:44:00
Quote Anchor link
Geprobeerd, maar dat is niet he probleem.
 
- wes  -

- wes -

16/03/2009 15:49:00
Quote Anchor link
beginnersfout

haal verder je vars buiten de quotes en gebruik echo '<input type="text">'; notatie ipv echo "<input type='text'>";

en dan nog 14 andere punten maar pas eerst dit maar aan
 
Rick

rick

16/03/2009 15:55:00
Quote Anchor link
bedankt voor de tip, gelijk aangepast.
Maar ik wil graag de oplossing voor de foutmelding...
 
- wes  -

- wes -

16/03/2009 16:02:00
Quote Anchor link
beter lezen, pas foutafhandeling toe. Je gaat er vanuit dat je query klopt en dat er resultaat uit komt, waarschijnlijk is dit niet zo
 
Rick

rick

16/03/2009 16:11:00
Quote Anchor link
Wanneer ik het toepas geeft ie resultaat dus de query is goed dan toch?
Alleen wanneer er echt gegevens worden gevraagd pakt ie hem niet.

Wanneer ik $value weghaal uit de query pakt ie hem wel, alleen het is juist de bedoeling dat ie 1 row selecteert dmv die value. staat deze soms verkeerd beschreven?
Gewijzigd op 01/01/1970 01:00:00 door rick
 
- wes  -

- wes -

16/03/2009 16:51:00
Quote Anchor link
laat eens zien wat je nu hebt (relevante code)
 
Rick

rick

16/03/2009 16:56:00
Quote Anchor link
Op dit moment laat hij alle rows zien wanneer er een geselecteerd wordt.
Het moet 1 row worden dmv van een checkbox ($value)
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
<?php
//includes
include('config.php');

//session start
if(isset($_SESSION['id'])) {
}
else{
    header("Location: index.php?pagina=beheer");
}

    
//Query
$sql = " SELECT * FROM buitenlijn ";

//Gegevens uit de database tonen op de site
if(!$res = mysql_query($sql))
{

    trigger_error(mysql_error().'<br />In query: '.$sql);
}

else
{
?>

<!--Titel-->    
<body>
<h2>Gegevens wijzigen</h2><br><br>

<b>Directe buitenlijn telefoonnummers</b>
</body>

<!--Java code: Select form-->
<SCRIPT TYPE="text/javascript">
function veranderscript() {
  if (document.bewerk.groep.value == 1) location = 'index.php?pagina=internbewerk';
    else if (document.bewerk.groep.value == 2) location = 'index.php?pagina=buitenlijnbewerk';
    else if (document.bewerk.groep.value == 3) location = 'index.php?pagina=gsmbewerk';
}
</SCRIPT>

<FORM NAME="bewerk" ACTION="">
<P><SELECT NAME="groep" ONCHANGE="veranderscript();">
<OPTION SELECTED>Kies een groep...
<OPTION VALUE="1">Interne nummers
<OPTION VALUE="2">Directe buitenlijn nummers
<OPTION VALUE="3">GSM nummers
</SELECT></P>
</FORM>    


<!--Formulier-->
<form name="bewerkform" action="" method="post">
<input type='submit' value="Bewerk geselecteerde producten" name="update" />
<input type='submit' value="Verwijder geselecteerde producten" name="verwijder" />
        <BR>
    <TABLE BORDER="0" ALIGN="center">
    <TD WIDTH="180"><b>Externe nummers:</b></TD>
    <TR>
    <TD WIDTH="180"><b>Naam</b></TD>
    <TD WIDTH="180"><b>Telefoonnummer</b></TD>
    <TD WIDTH="180"><b>Inlognaam</b></TD>
    <TD WIDTH="180"><b>Afdeling</b></TD>
    <TD WIDTH="180"><b>Groep</b></TD>
    <TD WIDTH="20"><b>Wijzigen</b></TD>
    </TR></TABLE>
<?php    
    while($row = mysql_fetch_assoc($res)){
?>
        
    <TABLE BORDER="0" ALIGN="center">
    <TR>
    <TD WIDTH="180"><?php echo $row['naam']; ?></TD>
    <TD WIDTH="180"><?php echo $row['nummer']; ?></TD>
    <TD WIDTH="180"><?php echo $row['inlog']; ?></TD>
    <TD WIDTH="180"><?php echo $row['afdeling']; ?></TD>
    <TD WIDTH="180"><?php echo $row['groep']; ?></TD>
    <TD WIDTH="20"><input type="checkbox" value="$row['id']" name="telid[]" /><?php echo $row['id']; ?></form></TD>
    </TR>
    </TABLE>
    
<?php
    }}

    if (isset($_POST['update'])){
    ?>

    <form name="verzenden" action="" method="post">
        <?php
        foreach($_POST['telid'] As $value ){
            echo '<input type="hidden" name="telid" value=$value />';
            
    // select
    $result = mysql_query('SELECT * FROM buitenlijn ');
     if ($result && mysql_num_rows($res) >= 1)
    {

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

                        
                    echo '<table>';
                    echo '<td>naam: </td><td><input type="text" size="25" name="'.$id.'naam" value="'.$row["naam"].'" /></td>';
                    echo '</tr><tr>';
                    echo '<td>nummer: </td><td><input type="text" size="25" name="'.$id.'nummer" value="'.($row["nummer"]).'" /></td>';
                    echo '</tr><tr>';
                    echo '<td>afdeling: </td><td><input type="text" size="25" name="'.$id.'afdeling" value="'.$row['afdeling'].'" /></td>';
                    echo '</tr><tr>';
                    echo '<td>groep: </td><td><input type="text" size="25" name="'.$id.'groep" value="'.$row['groep'].'" /></td>';
                    
                    echo '</tr></table><br>';
                    }
    }
else {
        echo 'Geen data gevonden';
    }}

    ?>

    <br>
    <center>
  
    <input type="submit" name="opslaan" value="Opslaan" />
    </center>
    
    </form>
<?php
    }    

?>


Hoe zou ik dit kunnen doen?
Gewijzigd op 01/01/1970 01:00:00 door rick
 
Rick

rick

17/03/2009 08:45:00
Quote Anchor link
Deze tip kreeg ik net van iemand:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
Waarom haal je die foreach er niet uit, en zet je input hidden niet gewooon in de while.
Hierdoor krijg je het exace id nr uit het database, en niet zo maar een zelf geteld nummer.

Hierdoor heb je ook meteen het goede id nr, om de (update) query mee uit te voeren!


Zou dit werken en hoe zou ik de input in de while moeten zetten?
Gewijzigd op 01/01/1970 01:00:00 door rick
 



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.