sql query wordt niet uitgevoerd

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Arno van Zanten

Arno van Zanten

04/06/2022 19:31:21
Quote Anchor link
Hallo,

Nu ben ik echt het spoor bijster.
Ik heb nu een stukje code, die de UPDATE niet uitvoerd.

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
<?php
    echo "Updating mail info<br>";
    
    $user = $_SESSION['Name'];
    $id = $_GET['id'];
    
    echo $user."<br>".$id."<br>";
    
    $sql = 'UPDATE Mail SET By="'.$user.'" WHERE ID="'.$id.'"';
        
//        if(mysqli_query($connect, $sql)) {
//            echo "<br>Record Updated Succesfully";
//        } else {
//            echo "<br>Error Updating record";
//        }

        echo $sql;
//        header('Location: index.php?menu=contact');
?>


Haal ik de // voor de onderste code weg, doet hij ook niks en de echo output is wel okay.
Maar hij zet niks in de Dbase weg terwijl de DBase wel de juiste velden heeft

output van de echo
Quote:
Updating mail info
Arno van Zanten
1
UPDATE Mail SET By="Arno van Zanten" WHERE ID="1"
 
PHP hulp

PHP hulp

26/04/2024 20:39:07
 
Adoptive Solution

Adoptive Solution

04/06/2022 19:45:15
Quote Anchor link
Ik vermoed dat By een gereserveerd woord is.

Probeer `By` of verander de veldnaam.

https://mariadb.com/kb/en/reserved-words/

Je kan het testen als je de query direct op de database loslaat.
 
Arno van Zanten

Arno van Zanten

04/06/2022 20:08:06
Quote Anchor link
Nou gedaan wat je vroeg en idd de uit gesloten woorden bekeken en dar stond By als een uit gesloten woord. dus die hernoemt naar User en nog werkt het niet.

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
<?php
    echo "Updating mail info<br>";
    
    $user = $_SESSION['Name'];
    $id = $_GET['id'];
    
    echo $user."<br>".$id."<br>";
//    UPDATE `Mail` SET `User`='Arno van Zanten' WHERE id='1'
    $sql = 'UPDATE Mail SET User="'.$user.'" WHERE ID="'.$id.'"';
        
//        if(mysqli_query($connect, $sql)) {
//            echo "<br>Record Updated Succesfully";
//        } else {
//            echo "<br>Error Updating record";
//        }

        echo $sql;
        header('Location: index.php?menu=contact');
?>


// UPDATE `Mail` SET `User`='Arno van Zanten' WHERE id='1' heb ik uit de Dbase gepakt, deze werkt, maar waarom die in de code staat niet?
 
- SanThe -

- SanThe -

04/06/2022 20:22:43
Quote Anchor link
Bestaat $connect wel?
En id='1' kan gewoon id=1 zijn.
Gewijzigd op 04/06/2022 20:24:41 door - SanThe -
 
Arno van Zanten

Arno van Zanten

04/06/2022 20:23:19
Quote Anchor link
Ja die bestaat, deze page wort in include gebruikt
 
- SanThe -

- SanThe -

04/06/2022 20:30:52
Quote Anchor link
Echo mysqli_error($connect) eens.
 
Arno van Zanten

Arno van Zanten

04/06/2022 20:33:57
Quote Anchor link
- SanThe - op 04/06/2022 20:30:52:
Echo mysqli_error($connect) eens.


geen error

Toevoeging op 04/06/2022 20:36:48:

- SanThe - op 04/06/2022 20:30:52:
Echo mysqli_error($connect) eens.

geen error

maar doe ik dit :
echo mysqli_error($sql);
Dan stopt de code en krijg ik geen output.
 
- SanThe -

- SanThe -

04/06/2022 20:42:53
Quote Anchor link
En var_dump($connect);
 
Arno van Zanten

Arno van Zanten

04/06/2022 20:44:12
Quote Anchor link
- SanThe - op 04/06/2022 20:42:53:
En var_dump($connect);


Dan krijg ik dit :

object(mysqli)#1 (18) { ["affected_rows"]=> int(-1) ["client_info"]=> string(13) "mysqlnd 8.1.6" ["client_version"]=> int(80106) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0) { } ["field_count"]=> int(0) ["host_info"]=> string(25) "Localhost via UNIX socket" ["info"]=> NULL ["insert_id"]=> int(0) ["server_info"]=> string(25) "10.1.48-MariaDB-1~stretch" ["server_version"]=> int(100148) ["sqlstate"]=> string(5) "00000" ["protocol_version"]=> int(10) ["thread_id"]=> int(52987081) ["warning_count"]=> int(0) } UPDATE Mail SET User="Arno van Zanten" WHERE ID="1"
 
Adoptive Solution

Adoptive Solution

04/06/2022 20:46:17
Quote Anchor link
Kijk eens of ID en id verschil maakt.

UPPERCASE lowercase AnyCaSE

https://mariadb.com/kb/en/identifier-case-sensitivity/
 
Arno van Zanten

Arno van Zanten

04/06/2022 20:48:07
Quote Anchor link
In de Dbase staat ID en hij krijgt de id maar naar de DBase moet hij het naar ID zetten. Alles staat zoals het moet.
Ik weet ook dat de sql naar kleine en hoofdletters kijkt, daar ben ik me van bewust
 
- SanThe -

- SanThe -

04/06/2022 20:49:06
Quote Anchor link
En als je het script uitvoert dan geeft ie "Error Updating record"?
 
Arno van Zanten

Arno van Zanten

04/06/2022 20:49:32
Quote Anchor link
Nope, daar hang ie op vast
 
- SanThe -

- SanThe -

04/06/2022 20:52:58
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
        if(mysqli_query($connect, $sql)) {
            echo "<br>Record Updated Succesfully";
        } else {
            echo "<br>Error Updating record";
        }
        echo $sql;

Doet ie geen van die twee echo's in de if maar wel de echo $sql?
 
Arno van Zanten

Arno van Zanten

04/06/2022 20:53:40
Quote Anchor link
Okay, nu op een raar moment werkt het
maar nu een ander klein probleem, dat daar mee te maken heeft
Ik wil weten of er in een veld van de dbase iets ingevuld is.
Maar ik snap niet hoe dit moet
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if(isset($mail['User'])){
   echo "Nobody";
}
else {
   echo "<td>".$mail['User']."</td>";
}

?>
 
- SanThe -

- SanThe -

04/06/2022 20:54:35
Quote Anchor link
En is ID of id?
 
Arno van Zanten

Arno van Zanten

04/06/2022 20:54:57
Quote Anchor link
ID
 
- SanThe -

- SanThe -

04/06/2022 20:56:47
Quote Anchor link
En waar komt $mail['User'] vandaan?
Wat zit daar in? Naam of leeg?
 
Arno van Zanten

Arno van Zanten

04/06/2022 20:58:07
Quote Anchor link
Als het nog niet gelezen is, dan is het veld in de DBase leeg, dus als het script het ophaalt en een leeg veld aantreft, moet hij de Nobody aangeven en anders de gebruiker die het gelezen heeft.

Toevoeging op 04/06/2022 20:59:19:

contac.php

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
<?php
    $sql
= 'SELECT * FROM Mail';
    $result = mysqli_query($connect, $sql);
    $mails = mysqli_fetch_all($result, MYSQLI_ASSOC);
    mysqli_free_result($result);
    mysqli_close($connect);
    
    echo "</td>
        </tr>
        <tr>
            <td>From</td><td>Email address</td><td>Phone Number</td><td colspan='2'>Website</td><td>Recieved</td><td>Read by</td>
        </tr>"
;
        foreach($mails as $mail) {
            
            echo "
            <tr>
                <td><a href='index.php?menu=read&id="
.$mail['ID']."'>".$mail['Name']."</a></td>
                <td>"
.$mail['Email']."</td><td>".$mail['Phone']."</td>
                <td colspan='2'>"
.$mail['URL']."</td>
                <td>"
.date('m-d-Y',$mail['Time'])."</td>";
                if(isset($mail['User'])){
                    echo "Nobody";
                }
else {
                    echo "<td>".$mail['User']."</td>";
                }

            "
            </tr>"
;
            
        }

        
                    

?>

readmail.php

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
<?php
    $sql
= 'SELECT * FROM Mail WHERE ID="'.$_GET['id'].'"';
    $result = mysqli_query($connect, $sql);
    $mails = mysqli_fetch_all($result, MYSQLI_ASSOC);
    mysqli_free_result($result);
    mysqli_close($connect);
    
        
    foreach($mails as $mail) {
        echo "
            <tr>
                <td colspan='3'>From :"
.$mail['Name']."</td>
                <td colspan='4'>Email address: "
.$mail['Email']."</td>
            </tr>
            <tr>
                <td colspan='3'>Phone Number :"
.$mail['Phone']."</td>
                <td colspan='4'>Website :"
.$mail['URL']."</td>
            </tr>
            <tr>
                <td colspan='7'>Recieved :"
.date('m-d-Y',$mail['Time'])."</td>
            </tr>
            <tr>
            <td colspan='7'>Message :<br>"

            .nl2br($mail['Message'],false)."</td>
            </tr>
            <tr>
                <td colspan='7' align='right'><a href='index.php?menu=back&id="
.$_GET['id']."'>Go back</a></td>
            </tr>"
;
    }

?>


mailsaw.php

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
<?php
    echo "Updating mail info<br>";
    
    $user = $_SESSION['Name'];
    $id = $_GET['id'];
    
    echo $user."<br>".$id."<br>";
//    UPDATE `Mail` SET `User`='Arno van Zanten' WHERE id='1'
    $sql = 'UPDATE Mail SET User="'.$user.'" WHERE ID="'.$id.'"';

//    var_dump($connect);
//    echo mysqli_error($connect);
//    echo mysqli_error($sql);

        if(mysqli_query($connect, $sql)) {
            echo "<br>Record Updated Succesfully";
        }
else {
            echo "<br>Error Updating record";
        }

        echo $sql;
    header('Location: index.php?menu=contact');
?>


Dit hoort bij elkaar
 
- SanThe -

- SanThe -

04/06/2022 20:59:46
Quote Anchor link
Dan zou ik empty gebruiken.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if(empty($mail['User'])){
   echo "Nobody";
}
else {
   echo "<td>".$mail['User']."</td>";
}

?>
 
Arno van Zanten

Arno van Zanten

04/06/2022 21:00:52
Quote Anchor link
Gedaan maar blijft het zelfe doen
 

Pagina: 1 2 volgende »



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.