wie mehre sql befehle nacheinander ausführen?
SELECT something, dateiendung FROM pics
ORDER BY something DESC
LIMIT 0,25
kann ich die einfach aneinender hängen und mit komma oder so verbinden?
5 Antworten
Komplett unterschiedliche SQL Abfragen werden auch unabhängig von einander ausgeführt. Möchte man mehrere Tabellen oder Unterabfragen nebeneinander verbinden nutzt man JOINs, möchte man mehrere Tabellen oder Unterabfragen des selben Aufbaus untereinander verbinden nutzt man UNION.
wie mehre sql befehle nacheinander ausführen?
Was Du geschrieben hast sind nicht mehrere Befehle sondern ist ein einziger Befehl:
SELECT something, dateiendung FROM pics ORDER BY something DESC LIMIT 0,25
Alex
das sollte eigentlich einwandfrei funktionieren, hab ich in anderen sachen auch verwendet, das macht das mit der datenbankverbindung
Das benatwortet meine Frage nicht. Aber egal. Gib mal anstatt Deiner ganzen echos ein
var_dump($output_array);
aus. Denn
echo nl2br("$output_array[0]");
kann nicht funktionieren.
hat """array(2) { ["pictureid"]=> string(8) "example6" ["filetype"]=> string(4) ".jpg" }""""" ausgegeben
array(2) {
["pictureid"]=> string(8) "example6"
["filetype"]=> string(4) ".jpg"
}
das bedeutet, dass jede Zeile des Arrays output_array aus zwei Spalten besteht. Der Spalte 'pictureid' und der Spalte 'filetype'. Das kannst du nicht mit echo $output_array[0] ausgeben sondern z. B. mit
echo $outputarray[0]['pictureid'].$outputarray[0]['filetype'];
oder wenn Du alles ausgeben willst mit
foreach($outputarray as $value)
{
echo $value['pictureid'].$value['filetype'].'<br>';
}
das ist seltsam, in der datenbank stehen 6 einträge der art, ausgegeben wird anscheinend nur ein einziger davon
das ist seltsam, in der datenbank stehen 6 einträge der art, ausgegeben wird anscheinend nur ein einziger davon
Ja. Ausgegeben wird nur der erste. Enweder Du nimmst fetchAll oder Du schreibst
while ($output_array = $result->fetch_assoc())
{
echo $outputarray['pictureid'];
}
nein nein, auch mit var_dunmp kommt nur ein datenpaar raus, anscheinend holt es nicht alle
nein nein, auch mit var_dunmp kommt nur ein datenpaar raus, anscheinend holt es nicht alle, normalerweise sollte das array 5 datenpaare haben, aber mit var_dump kommt nur eins raus, mit
while ($output_array = $result->fetch_assoc())
{
echo $outputarray['pictureid'];
}
kommt gar nichts raus, und mit
echo $output_array[0]['pictureid'].$output_array[0]['filetype'];
echo $output_array[1]['pictureid'].$output_array[1]['filetype'];
wird ebenfalls nichts auf dem bildschirm angezeigt
SELECT something, dateiendung FROM pics ORDER BY something DESC LIMIT 0,25;
SELECT * FROM pics;
Immer Semikolon (;) und den nächsten Befehl. Vergess niemals das Semikolon. Kriegst du in der Schule für Punkte abgezogen ;)
ich hab jetzt folgendes aber es wird nix auf der seite angezeigt
$sql = "SELECT pictureid, filetype FROM pictures ORDER BY pictureid DESC LIMIT 0,5";
$result = $link -> query($sql);
$output_array = $result -> fetch_assoc();
echo nl2br("$output_array[0]");
echo nl2br("$output_array[1]");
echo nl2br("$output_array[2]");
echo nl2br("$output_array[3]");
echo nl2br("$output_array[4]");
echo nl2br("$output_array[5]");
echo nl2br("$output_array[6]");
wie schon mal erwähnt - glaub du solltest dir wirklich mal paar sql basics anschauen....
des was du schreibst is ne ganz normale sql-abfrage
ich hab jz folgendes aber es wird nix angezeigt, obwohl ich den anleitungen von https://w3schools.com gefolgt bin
$sql = "SELECT pictureid, filetype FROM pictures ORDER BY pictureid DESC LIMIT 0,5";
$result = $link -> query($sql);
$output_array = $result -> fetch_assoc();
echo nl2br("$output_array[0]");
echo nl2br("$output_array[1]");
echo nl2br("$output_array[2]");
echo nl2br("$output_array[3]");
echo nl2br("$output_array[4]");
echo nl2br("$output_array[5]");
echo nl2br("$output_array[6]");
<?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);
$result -> free_result();
// Close connection
mysqli_close($link);
echo "Willkommen zurück ", $_SESSION["username"], " !";
?>
hier die config.php:
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'picsone_picsone');
define('DB_PASSWORD', 'randompixeldude');
define('DB_NAME', 'picsone_picsone');
/* Attempt to connect to MySQL database */
$link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
// Check connection
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
?>
SQL ist ein String und da kommen keine kommas etc hin weil es ein select insgesammt ist , ganz am ende ein semikolon wäre sinnvoll
ich hab jetzt folgendes, aber es wird nix angezeigt: