MySQL, Wie kann ich Ergebnisse einer bestimmten Spalte abfragen in Abhängigkeit vom Username?

Hallo zusammen,

ich mache gerade ein Login System für meine Webseite. Funktioniert auch soweit. Will jetzt aber noch eine Funktion ergänzen die beim einloggen überprüft, ob der Account gesperrt ist oder nicht! Nur weiß ich nicht, wie ich den mySQL Befehl in PHP dafür umsetzen muss.

In der Datenbank werden immer bei der Registrierung folgende Parameter gespeichert:

USERNAME, PASSWORD, STATUS

Der Status ist dabei immer automatisch ,,ok".

Wie kann ich jetzt in einer Spalte den STATUS eines bestimmten USERNAME abrufen?
Im Internet finde ich nur Anleitungen, wie ich alle Daten von USERNAME abrufen kann, aber nicht, wie ich nur den STATUS von einem bestimmten USERNAME abrufen kann.

Der folgende Quellcode hat schon Mal nicht funktioniert:

$status = $mysql->prepare("SELECT STATUS FROM accounts WHERE USERNAME = :user");
      $status->bindParam(":user", $_POST["username"]);
      $status->execute();
      $status2 = $status->fetch();
      if ($status2 == "ok") {
        header("Location: index.php");
      }else {
      
$accounterror = '<div class="alert alert-danger alert-   dismissible fade show" role="alert">
<strong>Error!</strong> Your <a href="#" class="alert-link">account</a> was banned.
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
 <span aria-hidden="true">&times;</span>
      </button>
        </div>';
                     }
MySQL, Wie kann ich Ergebnisse einer bestimmten Spalte abfragen in Abhängigkeit vom Username?
Computer, Technik, HTML, Datenbank, MySQL, PHP, Technologie, phpmyadmin
PHP Login-System: Verschiedene User auf jeweiliges Skript?

Hey.

Ich hab auf meinem XAMPP Server eine Datenbank mit drei festen Usern. Diesen sind ein Nutzername/ID (z.B. 4644786744) und ein Passwort (z.B. 4vv41ge6w) zugewiesen.
In einer weiteren Datenbank stehen Datensätze mit Lizenzschlüsseln.

Nehmen wir an, es die Nutzer-IDs der User sind folgende:

ID von User-01: 64154186756
ID von User-02: 56416816489
ID von User-03: 47485694587

Angenommen, die Datenbank mit den Schlüsseln ist folgende:

LIZENZSCHLÜSSEL ID

v64v6d04s1vgb68rv 64154186756
b41aswgvb0n041nd4 64154186756
gbv145nj1r410ndss 64154186756
gvsagvb104gv84410 56416816489
w41fdw01scd485sw1 56416816489
gedavge68v1408041 47485694587

User-01 hat 3 Schlüssel. User-02 hat 2 Stück, und User-03 hat einen Lizenzschlüssel.

Meine Frage nun:

Ich möchte jetzt ein Login Formular haben, mit dem sich z.B. User-02 mit seiner ID als Nutzername und seinem Passwort als Passwort anmelden kann und so dann die zu ihm gehörigen Lizenzen einsehen kann.

Zu den drei Nutzern habe ich jeweils eine php-Datei. Führt man die Datei für User-03 aus, werden die dem User-03 zugewiesenen Lizenzen ausgegeben.

Wie schaffe ich es, dass wenn sich ein User anmeldet, dass das Skript dann auch auf "seine Datei" zugreift?

Ein bisschen Code wäre z.B. auch sehr hilfreich :)

Eine etwas längere Frage...
Aber vielen Dank für jede Antwort und Hilfe.

Computer, Technik, sql, HTML, Programmieren, Login, Datenbank, MySQL, PHP, Technologie, xampp
Mysql/php/Datenbanken Code Problem?

Guten Abend liebe Gute Frage Community,

mein Anliegen heute: Ich soll aktuell ein Informatik Projekt erstellen habe aber noch ein paar Probleme.

Wir sollen mithilfe von php und XAMPP Datenbanken erstellen, diese ebenfalls abfragen, verändern und löschen. Erklärt wurde uns das nicht sehr gut, haben aber einen Code "Beispiel" mitbekommen.

Leider ist genau dieser Code Fehlerhaft. Einige Sachen funktionieren einige nicht.

Wenn ich einen neuen Datensatz eingeben will kann ich die Daten zwar eingeben aber nicht speichern ->

Bitte erklärt mir folgenden Fehlercode:

Fatal error: Uncaught ArgumentCountError: mysqli_error() expects exactly 1 argument, 0 given in C:\xampp\htdocs\c\verbinden.php:14 Stack trace: #0 C:\xampp\htdocs\c\verbinden.php(14): mysqli_error() #1 C:\xampp\htdocs\c\neu.php(11): include('C:\\xampp\\htdocs...') #2 {main} thrown in C:\xampp\htdocs\c\verbinden.php on line 14

Ich verstehe wo ich theoretisch schauen muss aber was genau falsch ist entfällt mir. Falls ihr mehr Code/Infos brauch gebt bitte bescheid.

verbinden.php

<?php
$host = "localhost";
$user = "root";
$pass = "";
$database = "db_schule";


//Verbindung zum DB-Server und zur Datenbank aufbauen
$db_verb=mysqli_connect($host,$user,$pass,$database)
    or die ("Fehler beim Verbindungsaufbau. ".mysql_error());
   // echo"Verbindung zur Datenbank erfolgreich.<br>" ;
       $result=mysqli_query($db_verb,$sql)
	   
    or die ("Fehlerhafte SQL-Anweisung!
	".mysqli_error());
    mysqli_close($db_verb);
?>

neu.php

<?php
    if(isset($_POST["speichern"])){
    $sql="
        INSERT tab_adressen (name, vname, geb, tel, email) values ('"
        .$_POST["name"]."','"
        .$_POST["vname"]."','"
        .$_POST["geb"]."','"
        .$_POST["tel"]."','"
        .$_POST["email"]."')
    ";
    include("verbinden.php") ;
    include("index.php");
    }
    else{
	include("index.php");


?>
<meta charset="utf-8" >
<form action='neu.php' method='POST'>
<?php
         include("formular.php");
    }
?>
</form>

Computer, Technik, Programmieren, Datenbank, MySQL, PHP, Technologie, xampp
PHP: Stimmt dieser Bereich?

In der MySQL-Datenbank sollen Daten überschrieben werden, die der Nutzer zuvor eingegeben hat. Ich habe das mithilfe von Prepared Statements gelöst, aber es scheint so, als ob nach dem Setzen der SQL-Variable die Ausführung abbricht. Es gibt keine Fehlermeldung. Der ""echo "sql set"; ""-Befehl ist das Letzte, was ausgeführt wird.

if (htmlspecialchars($_GET["validate_input"]) == "yes") {
  echo "validate_input is yes<br>";
  
  $specialchars_country = htmlspecialchars($_POST["country"]);
  $specialchars_pb_id = htmlspecialchars($_POST["pb_id"]);
  $specialchars_pb_type = htmlspecialchars($_POST["pb_type"]);
  $specialchars_bio1 = htmlspecialchars($_POST["bio1"]);
  $specialchars_bio2 = htmlspecialchars($_POST["bio2"]);
  $specialchars_bio3 = htmlspecialchars($_POST["bio3"]);

  echo "variables set";
  // Check input errors before inserting in database
  #if () {

  // Prepare an insert statement
  $sql = "UPDATE advanced_data SET (country, bio1, bio2, bio3) VALUES (?, ?, ?, ?) WHERE username='$us'";
  echo "sql set";

  if ($stmt = mysqli_prepare($link, $sql)) {
    // Bind variables to the prepared statement as parameters
    mysqli_stmt_bind_param($stmt, 'sssss', $specialchars_country, $specialchars_bio1, $specialchars_bio2, $specialchars_bio3, );
    echo "params set";

    // Attempt to execute the prepared statement
    if (mysqli_stmt_execute($stmt)) {
      echo "<br>";
      echo "changes saved";

      #header("location: profile.php");
      #exit;
    }
    else {
      echo "<h4>Oops! Something went wrong. Please try again later.</h4>";
    }

    // Close statement
    mysqli_stmt_close($stmt);
  }
}
PC, Server, Computer, sql, HTML, Webseite, MySQL, PHP
Seltsam... im php array steht nur ein variablenwert und gibt keine ausgabe?

Hallo, ich bins wieder, ich hab mir die basics zu php und sql durchgelesen, aber anscheinend tut der code wieder nicht das was er soll, es gibt keine ausgabe mit echo, und mit var_dump steht da nur, dass es ein datenpaar geholt hat aus der db, hoffe jemand kann mir helfen ;), weil nichmal

"echo $output_array[1]['pictureid'].$output_array[1]['filetype'];" bringt eine bildschirmausgabe

<?php
// Initialize the session
session_start();
 
// Check if the user is logged in, if not then redirect him to login page
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
    header("location: login.php");
    exit;
}


$us = $_SESSION["username"];


// Include config file
require_once "config.php";



$last_login = date("Y-md-d H:i:s");
echo nl2br ("$last_login \n");


// Check input errors before inserting in database
if (!empty($last_login)) {
        
    // Prepare an insert statement
    $sql = "UPDATE users SET last_login=? WHERE username=?";
     
    if ($stmt = mysqli_prepare($link, $sql)) {
        // Set parameters
        $param_last_login = $last_login;
        
        // Bind variables to the prepared statement as parameters
        mysqli_stmt_bind_param($stmt, 'ss', $param_last_login, $us);
        
        // Attempt to execute the prepared statement
        if (mysqli_stmt_execute($stmt)) {
            // 
            echo ("the last login date has been set \n");
        } else{
            echo "Oops! Something went wrong. Please try again later.";
        }



        // Close statement
        mysqli_stmt_close($stmt);
    }
}





$sql = "SELECT pictureid, filetype FROM pictures ORDER BY pictureid DESC LIMIT 0,5";
$result = $link -> query($sql);
$output_array = $result -> fetch_assoc();


var_dump($output_array);



while ($output_array = $result->fetch_assoc())
{
   echo $outputarray['pictureid'];
}


echo $output_array[0]['pictureid'].$output_array[0]['filetype'];
echo $output_array[1]['pictureid'].$output_array[1]['filetype'];
echo $output_array[2]['pictureid'].$output_array[2]['filetype'];




$result -> free_result();


// Close connection
mysqli_close($link);


echo "Willkommen zurück   ", $_SESSION["username"], "  !";


?>


 
PC, Computer, Technik, sql, HTML, Programmieren, Informatik, MySQL, PHP
warum bleibt last_login NULL?

ich hab ein script, welches nach dem login das letzte anmeldedatum in die mysql datenbank schreiben soll aber es bleibt NULL und ändert sich nicht

<?php
// Initialize the session
session_start();
 
// Check if the user is logged in, if not then redirect him to login page
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
    header("location: login.php");
    exit;
}


$us = $_SESSION["username"];


// Include config file
require_once "config.php";


$last_login = date("d/m/Y");
echo $last_login;


// Check input errors before inserting in database
if(empty($last_login)){
        
    // Prepare an insert statement
    $sql = "UPDATE users SET last_login='$last_login' WHERE username=$us"; // VALUES (?)
     
    if($stmt = mysqli_prepare($link, $sql)){
        // Bind variables to the prepared statement as parameters
        mysqli_stmt_bind_param($stmt, 's', $param_last_login);
        
        // Set parameters
        $param_last_login = $last_login;
        
        // Attempt to execute the prepared statement
        if(mysqli_stmt_execute($stmt)){
            // Redirect to login page
            echo "the last login date was set";
        } else{
            echo "Oops! Something went wrong. Please try again later.";
        }


        // Close statement
        mysqli_stmt_close($stmt);
    }
}


// Close connection
mysqli_close($link);

?>
<html>
<head>
</head>
<body>
<?php echo "Willkommen zurück   ", $_SESSION["username"], "  !";
?>
</body>
</html>
warum bleibt last_login NULL?
Computer, sql, HTML, IT, Webseite, Programmieren, Datenbank, Informatik, MySQL, PHP
PHP MySQL Eintrag löschen?

Hallo,

ich habe zur Zeit folgendes Problem:

Ich habe eine Datenbank, mit vier Spalten (id, name, link, datum). Die Inhalte der Datenbank lasse ich per PHP einfach in einer Tabelle anzeigen. Jetzt möchte ich aber, dass neben jedem Eintrag, also pro Zeile in einer fünften Spalte, noch ein "Löschen" Button ist, der, wenn angeklickt, die Zeile aus der Datenbank löscht. Die SQL-Abfrage ist mir relativ klar,

DELETE FROM table WHERE id=XYZ;

Aber mir ist nicht ganz klar, wie ich das jetzt in PHP realisiere. Hier ist, wie ich die Tabelle erstellt habe:

$sql = "SELECT id, name, link, datum FROM table";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {


echo "<div class=\"row\">";
    echo "<div class=\"cell\" data-title=\"Name\">";
        echo $row["name"];
        echo "</div>";
    echo "<div class=\"cell\" data-title=\"Link\">";
        echo $row["link"];
        echo "</div>";
    echo "<div class=\"cell\" data-title=\"Date\">";
        echo $row["datum"];
        echo "</div>";
    echo "<div class=\"cell\" data-title=\"ID\">";
        echo $row["id"];
        echo "</div>";
    }
    } ?>

Könnte mir vielleicht jemand helfen, wie ich das mit dem Löschen der Reihe in MYSQL jetzt hinkriege

Danke für alle Antworten im Voraus

Computer, Website, sql, Programmieren, Informatik, MySQL, PHP

Meistgelesene Fragen zum Thema MySQL