![]() |
mysql abfrage rückgabewert
Hallo Zusammen,
ich habe folgenden Code:
Code:
Der Code läuft soweit 1a.
$link = $_SERVER["REQUEST_URI"];
$sql = 'SELECT *FROM nl_anmeldungen WHERE link = $link'; mysql_query($sql,$con); Jetzt möchte ich gerne prüfen, ob die sql abfrage einen datensatz in der datenbank findet oder nicht. das ganze soll mit einer if else funktion laufen. |
Re: mysql abfrage rückgabewert
Code:
Edit:// Ah, ich sehe gerade, ich habe einen Parameter vergessen. *g* Ansonsten einfach mal die
if (mysql_num_rows($result) >= 1) {
/* gefunden */ } else { /* nichts gefunden */ } ![]() Mit freundlichen Grüßen, Valle |
Re: mysql abfrage rückgabewert
Code:
Ist das so richtig? Ich bekomme immer raus das keine daten gefunden worden sind...irgendwas muss doch faul sein..?!??!?!
$link = $_SERVER["REQUEST_URI"];
$sql = 'SELECT *FROM nl_anmeldungen WHERE link = $link'; mysql_query($sql,$con); if (mysql_num_rows($result) >= 1) { echo "<font color='#ff0000'>Daten gefunden!</font> "; } else { echo "<font color='#ff0000'>keine Daten gefunden!</font> "; } |
Re: mysql abfrage rückgabewert
Code:
$result = mysql_query($sql,$con);
|
Re: mysql abfrage rückgabewert
es kommt immer keine daten gefunden!
Code:
$link = $_SERVER["REQUEST_URI"];
$sql = 'SELECT *FROM nl_anmeldungen WHERE link = $link'; $result = mysql_query($sql,$con); if (mysql_num_rows($result) >= 1) { echo "<font color='#ff0000'>Daten gefunden!</font> "; } else { echo "<font color='#ff0000'>keine Daten gefunden!</font> "; } |
Re: mysql abfrage rückgabewert
Bist du auch mit mysql_query zum Server Verbunden?
Hast du dort die Verbindung auch in $con gespeichet? Was gib mysql_error() nach dem mysql_query aus? Bist du dir sicher, dass ein entsprechender Datensatz existiert? Edit:// Du solltest umbedingt noch im SQL-String Anführungszeichen um $link setzen:
Code:
Mit freundlichen Grüßen,
$sql = "SELECT * FROM nl_anmeldungen WHERE link = '".$link."'";
Valle |
Re: mysql abfrage rückgabewert
ich hab geschlafen sry. es wurde nach einem result gefragt mit einer anzahlt von>=1 ich habe aber nur einen richtigen datensatz in der datenbank der auf die abfrage rauskommt.
|
Re: mysql abfrage rückgabewert
Zitat:
Also dass >= "größer oder gleich" heißt weißt du ja, oder? Selbst wenn nur ein Datensatz beim Query rauskommt, müsste die Abfrage eigentlich auch wahr sein. Nur bei weniger als 1 (0,9 oder 0 ;-) ) wird die Abfrage unwahr. Mit freundlichen Grüßen, Valle |
Re: mysql abfrage rückgabewert
so ist jetzt der code:
Code:
es ist jetzt gerade kein passender datensatz mehr zu der abfrage vorhanden der richtig zurückliefern sollte.
$link = $_SERVER["REQUEST_URI"];
$sql = 'SELECT *FROM nl_anmeldungen WHERE link = $link'; $result = mysql_query($sql,$con); if (mysql_num_rows($result) >= 1) { echo "<font color='#ff0000'>Daten gefunden!</font> "; } else { echo "<font color='#ff0000'>Keine Daten gefunden!</font> "; } Es ist nur ein einziger datensatz vorhanden und der passt nicht zu der abfrage müsste also keine daten anzeigen. Es wird aber Daten gefunden! angezeigt! WARUM? |
Re: mysql abfrage rückgabewert
Bist du sicher, dass du das Richtige anzeigst?
|
Re: mysql abfrage rückgabewert
Code:
$link = $_SERVER["REQUEST_URI"];
$sql = "SELECT *FROM nl_anmeldungen WHERE link = $link"; //in Anführungszeichen //oder so: //$sql = 'SELECT *FROM nl_anmeldungen WHERE link = '.$link; $result = mysql_query($sql,$con); if (mysql_num_rows($result) >= 1) { echo "<font color='#ff0000'>Daten gefunden!</font> "; } else { echo "<font color='#ff0000'>Keine Daten gefunden!</font> "; } |
Re: mysql abfrage rückgabewert
Guten Morgen,
ich vertehe die Welt nicht mehr. Irgendwo muss ein Fehler sein:
Code:
jetzt habe ich einen falschen und zwei richtige einträge in der datenbank, im bezug auf die abfrage.
$link = $_SERVER["REQUEST_URI"];
$sql = "SELECT *FROM nl_anmeldungen WHERE link = $link"; $result = mysql_query($sql,$con); if (mysql_num_rows($result) >= 1) { echo "<font color='#ff0000'>Daten gefunden!</font> "; } else { echo "<font color='#ff0000'>Keine Daten gefunden!</font> "; } wieso kommt: "keine datensätze gefunden" ??? |
Re: mysql abfrage rückgabewert
Du machst ja anscheinend einen Stringvergleich: link = $link. Da muss die Schreibweise exakt gleich sein. Ist sie das?
|
Re: mysql abfrage rückgabewert
also ich sehe es so das die schreibweise gleich ist!
Kannst du es mal testen bitte! *snip* ich lasse hinger dem doppelpunkt bei keine daten gefunden mal zum testen die variavble $link ausgeben [edit=Admin]Link auf Wunsch des Autors entfernt. Mfg, Daniel[/edit] |
Re: mysql abfrage rückgabewert
ich@da.de -> Anmeldung erfolgreich :gruebel:
|
Re: mysql abfrage rückgabewert
ja du musst ja noch die email bekommen!!
und in der mail ist ein link! |
Re: mysql abfrage rückgabewert
Ja gut, wie sehen die Einträge in der DB denn aus?
[edit] Der String, der mir angezeigt wird, lautet /newsletter_bestaetigung.php/902cbc498b15becc838bd7ad96c3fc39 [/edit] |
Re: mysql abfrage rückgabewert
-- phpMyAdmin SQL Dump
-- version 2.8.2.4 -- ![]() -- -- Host: localhost:3306 -- Erstellungszeit: 01. Dezember 2008 um 11:23 -- Server Version: 5.0.45 -- PHP-Version: 5.2.6 -- -- Datenbank: `kueber_newsletter` -- -- -------------------------------------------------------- -- -- Tabellenstruktur für Tabelle `nl_anmeldungen` -- CREATE TABLE `nl_anmeldungen` ( `id` int(11) NOT NULL auto_increment, `date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `anrede` varchar(50) NOT NULL, `vorname` varchar(50) NOT NULL, `nachname` varchar(50) NOT NULL, `email` varchar(50) NOT NULL, `bestaetigung` varchar(50) NOT NULL, `link` varchar(255) NOT NULL, `linkmail` varchar(255) NOT NULL, `md5wert` varchar(50) NOT NULL, `bestaetigungemail` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=106 DEFAULT CHARSET=utf8 AUTO_INCREMENT=106 ; -- -- Daten für Tabelle `nl_anmeldungen` -- INSERT INTO `nl_anmeldungen` ( *snip* ); [edit=Admin]Daten auf Wunsch des Autors entfernt. Mfg, Daniel[/edit] |
Re: mysql abfrage rückgabewert
Der Zeilenumbruch ist Dir aufgefallen?
P.S.: Hab ich mich aus Faulheit zur Frau gemacht :lol: |
Re: mysql abfrage rückgabewert
welchen zeilenumbruch meinst du?????
|
Re: mysql abfrage rückgabewert
Hinter "newsletter_bestaetigung.php", den hab ich nach der Anmeldung auch gesehen, obwohl er nicht im Quelltext steht.
|
Re: mysql abfrage rückgabewert
und nu? haste ne idee???
|
Re: mysql abfrage rückgabewert
Es würde doch genügen, den Hash zu vergleichen, oder?
|
Re: mysql abfrage rückgabewert
haste recht? wie würdest du das denn dann machen?
|
Re: mysql abfrage rückgabewert
Explode mit dem Slash als Trenner, dann hast Du als letztes Array-Element den Hash.
|
Re: mysql abfrage rückgabewert
kannst du mir den code mal bitte posten!?!
|
Re: mysql abfrage rückgabewert
Code:
Müsste so stimmen.
$array = explode ( '/', $string );
$hash = $array[count($array) - 1]; |
Re: mysql abfrage rückgabewert
ich geh mal kurz ne kleinigkeit essen und dann teste ich es!
bis gleich! |
Re: mysql abfrage rückgabewert
ist es so richtig??
Code:
$link = $_SERVER["REQUEST_URI"];
$sql = "SELECT *FROM nl_anmeldungen WHERE link = $link"; $result = mysql_query($sql,$con); if $array = explode ( '/', $string ); $hash = $array[count($array) - 1]; { echo "<font color='#ff0000'>Daten gefunden!</font> "; } else { echo "<font color='#ff0000'>Keine Daten gefunden!</font> "; } |
Re: mysql abfrage rückgabewert
Wenn man davon ausgeht, dass in der DB auch nur der Hash gespeichert wird:
Code:
$link = $_SERVER["REQUEST_URI"];
$array = explode ( '/', $link ); $hash = $array[count($array) - 1]; $sql = "SELECT *FROM nl_anmeldungen WHERE link = $hash"; $result = mysql_query($sql,$con); if (mysql_num_rows($result)) { echo "<font color='#ff0000'>Daten gefunden!</font> "; } else { echo "<font color='#ff0000'>Keine Daten gefunden!</font> "; } |
Re: mysql abfrage rückgabewert
Zitat:
Außerdem solltest du die Parameter, die du in einer SQL-Abfrage nutzt, maskieren: ![]() LG, Xong |
Re: mysql abfrage rückgabewert
danke für die info. aber irgendwie will es immer nochnicht.
ich habe hinter es werden keine daten mehr gefunden mal die variable hash ausgegeben. teste mal bitte nochmal mit einem link! oder lass dir einen neuen senden... |
Re: mysql abfrage rückgabewert
Das sieht schonmal gut aus, es kommt nur noch der Hash. Aber Du weißt schon, dass man auf einem öffentlich erreichbaren System nicht testen sollte, oder? An Deiner Stelle würde ich mir XAMPP installieren, damit testen und im Anschluss alles hochladen.
|
Re: mysql abfrage rückgabewert
danke xong das du auch versuchst zu helfen.
hier nochmal der aktuelle code:
Code:
wo soll ich hier genau maskieren!?!?!?
$link = $_SERVER["REQUEST_URI"];
$array = explode ( '/', $link ); $hash = $array[count($array) - 1]; $sql = "SELECT *FROM nl_anmeldungen WHERE md5wert = $hash"; $result = mysql_query($sql,$con); if (mysql_num_rows($result)) { echo "<font color='#ff0000'>Daten gefunden!</font> "; } else { echo "<font color='#ff0000'>Keine Daten gefunden!$hash</font> "; } |
Re: mysql abfrage rückgabewert
Folge doch einfach dem Link, den Xong gepostet hat, dann siehst Du es schon.
|
Re: mysql abfrage rückgabewert
stimmt schon das man nicht öffentlich erreichbar testen sollte, aber es stört mich im moment nicht wirklich;)
Genau in der variable steht nur noch der hashwert. irgendwie muss es doch dann jetzt an der sql abfrage hängen oder?? |
Re: mysql abfrage rückgabewert
Zitat:
|
Re: mysql abfrage rückgabewert
SQL-Code:
Und damit? Nein, es geht nicht nur um Sicherheit, sondern auch um das Escapen von z.B. Hochkommata innerhalb des Strings.
$sql = "SELECT * FROM nl_anmeldungen WHERE md5wert = '$hash'";
[edit] Oder mussten das Accent Graves sein? Wäre auch noch einen Versuch wert.
SQL-Code:
[/edit]
$sql = "SELECT * FROM nl_anmeldungen WHERE md5wert = `$hash`";
|
Re: mysql abfrage rückgabewert
SQL-Code:
Diese Ausgabe kopierst du jetzt in PHPMyAdmin und führst dort die Abfrage durch. Dann weißt du ob der Fehler in der Abfrage oder im Quelltext ist
$sql = "SELECT * FROM `nl_anmeldungen` WHERE md5wert = '$hash'";
echo $sql; |
Re: mysql abfrage rückgabewert
JUBELSCHREI!!!!
:dp: :dp: :dp: :dp: :dp: :dp: :dp: :dp: :dp: :dp: Jetzt läuft es wie geschmiert! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz