Python - SQL Datensätze in einer HTML Tabelle anzeigen?

Hi, ich versuche gerade in Python die Datensätze aus einem SQL Server in eine HTML Tabelle zu bekommen.

Für die Datenbankverbindung benutze ich pyodbc und für die HTML Tabelle benutze ich dash_table

Was ich bis jetzt habe:

import dash
import dash_table as dt
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import pandas as pd
import pyodbc
# --------------------------------------------- 

sql_conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server}; \
SERVER=offsrv4306;\
Trusted_Connection=yes')

query = '''select *
from [pay].[dbo].[debt]
where dateInserted > '2021-07-01' '''

cursor = sql_conn.cursor()

data = []

cursor.execute(query)
columnssql = [column[0] for column in cursor.description]

rows = cursor.fetchall()
for row in rows:
    data.append([x for x in row])

cursor.close()
sql_conn.close()

# ---------------------------------------------------
app = dash.Dash(__name__, meta_tags=[{"name": "viewport", "content": "width=device-width"}])

app.layout = html.Div([
   
html.Div([
        dt.DataTable(id='my_datatable',
                     columns = [data],
        ], className = 'create_container six columns'),
    
])
])

Ich kann mir zwar mit print(data) oder print(columnssql) alles was ich haben will auf der Konsole anzeigen aber ich möchte es ja nicht auf der Konsole sondern in meiner HTML Tabelle (DataTable).

Die Werde im DataTable kommen ins "columns = [ ] "

Weiß jemand wie das geht?

Danke

sql, Programmieren, Datenbank, Python, python-3
coturn geht nicht?

Hallo ich möchte Nextcloud mit der APP Talk nutzen und benötige dafür coturn.

Wen ich es in Benutzung haben komme mit den Befehl "service coturn status" das:

● coturn.service - coTURN STUN/TURN Server
     Loaded: loaded (/lib/systemd/system/coturn.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-07-03 21:07:13 CEST; 3h 4min ago
       Docs: man:coturn(1)
             man:turnadmin(1)
             man:turnserver(1)
    Process: 172893 ExecStart=/usr/bin/turnserver --daemon -c /etc/turnserver.conf --pidfile /run/turnserver/turnserver.pid (code=exited, status=0/SUCCESS)
    Process: 172908 ExecStartPost=/bin/sleep 2 (code=exited, status=0/SUCCESS)
   Main PID: 172907 (turnserver)
      Tasks: 9 (limit: 7065)
     Memory: 10.3M
     CGroup: /system.slice/coturn.service
             └─172907 /usr/bin/turnserver --daemon -c /etc/turnserver.conf --pidfile /run/turnserver/turnserver.pid


Jul 03 21:07:11 rv2689 turnserver[172907]: 0: IO method (auth thread): epoll (with changelist)
Jul 03 21:07:11 rv2689 turnserver[172907]: 0: IO method (auth thread): epoll (with changelist)
Jul 03 21:07:12 rv2689 turnserver[172907]: 1: IO method (admin thread): epoll (with changelist)
Jul 03 21:07:12 rv2689 turnserver[172907]: 1: SQLite DB connection success: /var/lib/turn/turndb
Jul 03 21:07:13 rv2689 systemd[1]: Started coTURN STUN/TURN Server.
Jul 03 21:07:59 rv2689 turnserver[172907]: 48: setting sqlite thread safe mode to serialized failed!!! return code: 21
Jul 03 21:25:38 rv2689 turnserver[172907]: 1107: session 002000000000000029: TCP socket error: Connection reset by peer 89.204.153.109:25063
Jul 03 22:31:10 rv2689 turnserver[172907]: 5039: session 003000000000000092: TCP socket error: Connection reset by peer 80.187.123.203:24594
Jul 03 22:31:10 rv2689 turnserver[172907]: 5039: session 002000000000000094: TCP socket error: Connection reset by peer 80.187.123.203:24598
Jul 03 23:57:46 rv2689 turnserver[172907]: 10234: session 000000000000000079: TCP socket error: Connection reset by peer 91.43.21.22:54258

Dann Funkt auch die Verbindung nicht mehr (Also in der Talk app)

Fehler, sql, Cloud, Ubuntu 12.04, Nextcloud
Wo ist der Fehler in meiner SQL Abfrage?

Die folgende SQL Abfrage ist zwar syntaktisch richtig und liefert ein Ergebnis. Jedoch werden u.U. mehrere Zeilen Pro ArtNr ausgegeben. Und zwar dann wenn in der Tabelle [Art.Komission] Zeilen mit mehreren Datensätzen für mit gleichem Inhalt für [Art.Komission].ArtNr jedoch unterschiedlichem Datum in [Art.Komission].KomDatumBis Eigentlich will ich aber nur eine aggregierte Zeile pro ArtNr was mache ich falsch?

SELECT art.artnr,
       Isnull(Sum([art.lager].lagermenge), 0)                      AS LagerBest,
       Isnull(art.eksignalbest, 0)                                 AS SigBest,
       Isnull(art.ekmaxbest, 0)                                    AS MaxBest,
       Isnull(Sum([art.komission].anzges), 0)                      AS KomGes,
       Isnull(Sum([art.komission].anzerl), 0)                      AS KomErl,
       Isnull((SELECT Isnull(Sum([art.komission].anzges), 0) - Isnull(Sum(
                      [art.komission].anzerl), 0)
               WHERE  Getdate() < [art.komission].komdatumbis), 0) AS KomOffen,
       Isnull(art.faktorek2vkeinh, 1)                              AS
       FaktorEK2VK,
       Isnull(art.ekgebinde, 1)                                    AS GebindeEKE
       ,
       Isnull(art.ekminofq, 1)                                     AS
       MQEKE,
       Isnull(Sum([ek.bestpos].bestmenge), 0)                      AS ZulaufEKE
FROM   art
       LEFT JOIN [art.lager]
              ON art.artnr = [art.lager].artnr
       LEFT JOIN [art.komission]
              ON art.artnr = [art.komission].artnr
       LEFT JOIN [ek.bestpos]
              ON art.artnr = [ek.bestpos].artnr
WHERE  art.artnr = 2031660
GROUP  BY art.artnr,
          art.faktorek2vkeinh,
          art.ekgebinde,
          art.ekminofq,
          eksignalbest,
          ekmaxbest,
          [art.komission].komdatumbis 
Computer, sql, Programmierung, Datenbank, SuM
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
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
PHP SQL befehl geht nicht?

Hallo,

Kann mir jemand sagen was hier nicht geht?

        $sql = "INSERT INTO data_user (username, password, invited_by) VALUES (?, ?, ?)";
         
        if($stmt = mysqli_prepare($link, $sql)){
            // Bind variables to the prepared statement as parameters
            mysqli_stmt_bind_param($stmt, "sss", $param_username, $param_password, $param_invite);
            
            // Set parameters
            $param_invite = $_GET['usercode'];
            $param_username = $_POST["username"];
            $param_password = password_hash($password, PASSWORD_DEFAULT); // Creates a password hash
            
            // Attempt to execute the prepared statement
            if(mysqli_stmt_execute($stmt)){
                // Redirect to login page
                header("location: login.php");
            } else{
                echo "Something went wrong. Please try again later.";
            }
            // Close statement
            mysqli_stmt_close($stmt);
        }

       Fehler wird mir keiner Angezeigt es Funktioniert einfach nicht.
ich kann mir denken das es an dem dritten ? liegt da es erst ab da zu proplemen kam

Computer, sql, Programmieren, PHP

Meistgelesene Fragen zum Thema Sql