Hallo,

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

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

Updating mail info
Arno van Zanten
1
UPDATE Mail SET By="Arno van Zanten" WHERE ID="1"
En als je het script uitvoert dan geeft ie "Error Updating record"?
        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?
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
<?php
if(isset($mail['User'])){
echo "Nobody";
} else {
echo "<td>".$mail['User']."</td>";
}
?>
En is ID of id?
En waar komt $mail['User'] vandaan?
Wat zit daar in? Naam of leeg?
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.

[size=xsmall]Toevoeging op 04/06/2022 20:59:19:[/size]

contac.php

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

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

<?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
Dan zou ik empty gebruiken.
<?php
if(empty($mail['User'])){
echo "Nobody";
} else {
echo "<td>".$mail['User']."</td>";
}
?>
Gedaan maar blijft het zelfe doen

Reageren