Was kommt bei einer leeren sql suche raus?

2 Antworten

Wir brauchen den Datenbanktyp, um den SQL Dialekt festzustellen. Wenn Du via PHP abfragst, deutet es auf mySQL hin, muss aber nicht sein.

Suche in Gooble nach SQL mySQL und "if exists.."

Du kannst auch arbeiten mit Feinheiten von "insert" versus "insert or update". Auch hier könnten wir nur vermuten, was die genaue Aufgabe ist.

Bei "keinem Ergebnis" bekommst du einen leeren Array zurück...

also eine variable wäre dann z.b.

$username == "";

oder?

0
@gamestar4124

Du machst es anders:

Du führst auf den SQL-term rowCount() aus und schaust, ob das Ergebnis größer 0 ist:

$db = new PDO('mysql:host=localhost;dbname=your_dbname;charset=utf8mb4', 'username', 'password',[PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
$strSQL=$db->prepare("SELECT * FROM tabellenname WHERE id= ? ");
$strSQL->execute(array($_GET['id']));
if($strSQL->rowCount() > 0){
//Wird nur ausgeführt, wenn es mindestens 1 Ergebnis gibt...
}
2

geht das auch mit mysqli ich kann mich mit pd0 irwie garnicht anfreunden

0
@gamestar4124
$mysqli = new mysqli("localhost", "user", "password", "world");
$mysqli_result=mysqli->query("SELECT * FROM tabellenname WHERE id= id ");

$mysqli_result->num_rows;

Weiß gerade nicht auswendig, wie man bei mysqli das Statement Prepared, ohne depractede Methoden zu verwenden...

0
@Destranix

also so?

<?php
$username = $_POST["usernameregi"];
$passwort = $_POST["passwortregi"];
$pass = md5($passwort);
$mysqli = mysqli_connect("localhost", "root", "", "Nutzerecht");
$sql = "SELECT Benutzername, Passwort FROM login WHERE Passwort LIKE '$pass' AND Benutzername LIKE '$username'";


if (mysqli_connect_errno())
	{
	printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
	}

//$SQL2 = "INSERT INTO login (Benutzername, Passwort) VALUES ('$username', '$pass')";

if (mysqli_connect_errno())
	{
	printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
	}

if ($username == "" or $pass == "")
	{
	header('location: FELDERregi.php');
	}
  else
	{
$ergebnis = mysqli_query($mysqli, $sql);
	}

if ($ergebnis->num_rows > 0)
	{
	echo "eintragung";
	}
//elseif ($username3 == $username and $pass == $pass3)
	//{
	//echo "Herzlich Willkommen $username ";
	//echo "Es ist grade ";
	//echo date("h:i:s");
	//echo " Uhr";
	//}

?>

0
@gamestar4124

1.) Du brauchst hier nicht "LIKE" sondern ein "="-Zeichen!

$sql = "SELECT Benutzername, Passwort FROM login WHERE Passwort = ? AND Benutzername = ?";

2.) Du solltest deine Statements preparen... Habe gerade nachgeschaut, wie das bei mysqli geht:

$ergebnis=$mysqli->prepare($sql);
$ergebnis->mysqli_stmt_bind_param("ss",$password,$username);
$ergebnis->execute();

3.) Der Rest stimmt soweit...Allerdings solltest du die POST-Eingaben evtl. auch irgendwo auf verbotene Zeichen prüfen, beispielsweise, indem du sie mit der Funktion htmlentities() bearbeitest...Ein Bespiel, den ich am Anfang meiner Dateien habe, wenn diese POST-variablen empfangen sollen:

try{
    if(isset($_GET['id'])){
        $_GET['id']=htmlentities($_GET['id']);
    }
    if(isset($_GET['error'])){
        $_GET['error']=htmlentities($_GET['error']);
    }
    if(isset($_POST['submit'])){
        $_POST['submit']=htmlentities($_POST['submit']);
    }
    /*if(isset($_POST['Modi'])){
        $keys=array_keys($_POST['Modi']);
        foreach($keys as &$key){
            $_POST['Modi'][$key]=htmlentities($_POST['Modi'][$key]);
        }
    }*/
}catch(NullPointerException $ex){

}catch(InvalidArgumentException $ex){
    exit("Übergebene Werte hatten nicht den richtigen Typ");
}

Wie du siehst, wird erst geprüft, ob ide Variable existiert und dann wird diese Variable compiled(mir fällt das richtige Wort gerade nicht ein...Du weißt was ich meine...)

Bei Arrays ist die foreach-Schleife wichtig...

Die try-catch-Anweisung wird benötigt, falls irgendjemand einen Array übergibt, obwohl er das nicht sollte...

1
@Destranix

ok klappt nun fast, aber es kommt am ende kein echo eintragung, ist da was falsch mit

$ergebnis->num_rows > 0

oder woran liegt´s?

<?php
$username = $_POST["usernameregi"];
$passwort = $_POST["passwortregi"];
$pass = md5($passwort);
$mysqli = mysqli_connect("localhost", "root", "", "Nutzerecht");
$sql = "SELECT Benutzername, Passwort FROM login WHERE Passwort = ? AND Benutzername = ?";


if (mysqli_connect_errno())
	{
	printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
	}

$SQL2 = "INSERT INTO login (Benutzername, Passwort) VALUES ('$username', '$pass')";

if (mysqli_connect_errno())
	{
	printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
	}

if ($username == "" or $pass == "")
	{
	header('location: FELDERregi.php');
	}
  else
	{
$ergebnis=$mysqli->prepare($sql);
$ergebnis->bind_param("ss",$password,$username);
$ergebnis->execute();
	}

if ($ergebnis->num_rows > 0)
	{
	echo "eintragung";
	}
//elseif ($username3 == $username and $pass == $pass3)
	//{
	//echo "Herzlich Willkommen $username ";
	//echo "Es ist grade ";
	//echo date("h:i:s");
	//echo " Uhr";
	//}

?>

0
@gamestar4124

Ich bin mir nicht sicher, aber ich glaube, dass man das ergebnis vor der Zeilennummerabfrage noch mit

$ergebnis->fetch();

fetchen muss...

Evtl. kannst du aber auch mal die Fehler abfangen und ausgeben, indem du

or die(mysqli_error($db));

nach den zu testenden mysqli-befehlen schreibst.

0

Wie programmiere ich einen HTML Login?

Hallo,

ich bin schon seit längerem auf der Suche nach einem funktionierendem Login für meine Website. Ich habe bis jetzt aber noch nichts gefunden, was funktioniert hat. Ich habe mir auch schon einen SQL Server erstellt und SQL Server Managment Studio installiert. 

Ich weiß auch, dass ich dafür PHP brauche. Brauche ich dann einen PHP Server? 

Ich wäre sehr dankbar darüber wenn mir jemand erklären könnte wie das geht und am besten eine funktionierendes Loginscript mitliefert.

Danke im Voraus :-)

...zur Frage

SQL GUI selbst schreiben?

Nabend Community,

Ich habe mich heute bei unserem W-Seminar dafür gemeldet, ein GUI für den Zugriff auf eine Datenbank zu schreiben. Eigentlich hatte ich vor mit php und HTML ein Web-Interface zu erstellen. So weit so gut, allerdings interessiert mich nun doch, welche anderen Möglichkeiten es dies betreffend noch gibt. Prinzipiell geht es darum ein GUI zu "programmieren", das es Schülern aus unserem Seminar, sowie denjenigen, welche die Datenbank in Zukunft nutzen werden, ermöglicht sowohl neue Datensätze in die SQL einzufügen (sofern entsprechende Rechte vorhanden), als auch Daten auszulesen. Mir würden da nur noch die Frames von Java einfallen, da ich mich allerdings mit Java noch nicht wirklich beschäftigt habe, weis ich nicht, ob es möglich ist, über Java Frames Daten in einer SQL zu ändern. Mit den SQL cmds, HTML und php kenne ich mich weitestgehend aus, bei anderen Programmier/Scriptsprachen siehts allerdings ziemlich mau aus :D, deshalb bin ich für jeden Vorschlag dankbar, ausserdem hab ich kein Problem damit, mich mit neuer Materie (z.B neuen Psprachen oder Protokollen) auseinander zusetzen.

Danke

Gruß Rtex

...zur Frage

Mit welchem Code kann ich c# Daten an php Senden?

Ich suche einen Code der per POST oder etc. einen string an php überträgt.Habe schon viele Codes probiert laufen aber alle auf den fehler 500(Interner Fehler)PS: Bin am verzweifeln

...zur Frage

SUCHE: Lagerverwaltung mit SQL Datenbank Webbasierend (einfach)

**Hallo,

Weiß jemand ein fertiges System bzw. Script/Code für PHP oder HTML um ein einfache Lagerverwaltung übern SQL Server laufen zu lassen ? Vielen Dank!**

Was es können muss: Zugriff von jedem Rechner ca. 30 Verwalten von Bauteilen Lagerort Stückzahl Warnung und Benachrichtigung per eMail Hin und weg buchen von Artikeln Artikelbeschreibung Notiz

Wäre schön: Verschiedene Benutzer Index erhöhung

...zur Frage

SQL: Werte zwischen Datensätze tauschen - Wie geht das?

Hallo miteinander.

ich habe eine sql-tabelle angelegt die so aussieht:

id | name | anmerkung | date

das letzte feld, also date ist mit einem timestamp versehen. die daten werden sortiert nach dem feld 'date' ausgegeben.

soweit sogut...

nun möchte ich in meinem interface manuell die reihenfolge der datensätze verändern können. hier sieht die ausgabe etwa so aus:

name | anmerkung | bearbeiten | löschen | nach oben | nach unten

name | anmerkung | bearbeiten | löschen | nach oben | nach unten

name | anmerkung | bearbeiten | löschen | nach oben | nach unten

mit den letzten vier feldern können die datensätze entsprechend verändert werden. also entweder: editieren, löschen oder verschieben.

bearbeiten und löschen funktioniert soweit schonmal ganz gut. aber nur weiß ich nicht, wie ich die datensätze verschiebe.

mein plan: bei knopfdruck auf "nach oben" wird der timestamp des jeweiligen datensatzes mit dem timestamp des vorherigen (oberen) datensatzes vertauscht, sodass sie die position tauschen. denn sortiert wird ja nach datum.

aber hier bin ich auch schon beim problem angelangt:

wie sieht ein script (php / sql) aus, welches den "vorgängerdatensatz" anspricht und dann mit ihm den wert eines feldes vertauscht? konnte leider auch nichts über google finden.

bitte um hilfe

...zur Frage

Mittels PHP-Skript JSON Datei von Website herunterladen und in CSV konvertieren?

Hallo zusammen,

über den Zugriff auf eine API habe ich die Möglichkeit JSON-Daten abzurufen. Ursprünglich wollte ich diese direkt in MS SQL importieren. Dies ist mir jedoch leider nicht gelungen.

Meine nächste Überlegung ist ein PHP-Skript, welches die Daten von der Website (https://xxxxxxx/API) abruft und dann lokal in eine CSV-Datei unter Angabe des Speicherortes ablegt. Idealerweise sollte dies automatisch alle X Minuten geschehen und die CSV-Datei immer wieder erneuern, um die aktuellsten Daten dann wieder in die MS SQL-Datenbank importieren zu können.

Auf der Website, von der die Daten abgerufen werden sollen, ist eine Authentifizierung mittels Benutzernamen und Passwort erforderlich.

Leider habe ich bisher mit PHP aber nicht viel zu tun gehabt.

Evtl. kann mir hier jemand helfen?

Vielen Dank im Voraus!

...zur Frage

Was möchtest Du wissen?