php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.07.2009, 04:13  
Benutzer
 
Registriert seit: 25.06.2009
Beiträge: 42
PHP-Kenntnisse:
Anfänger
marcoz befindet sich auf einem aufstrebenden Ast
Standard loginscript--query bringt kein num rows ergebnis

Hallo bin gerade dabei für mein Newsscript ein Loginscript zu schreiben und jetzt ist eigentlich alles soweit fertig nur habe ich ein Problem in meiner login.php

und zwar bringt diese abfrage: if ($result->num_rows > 0) kein Ergebnis das größer als 0 ist, und ich verstehe nicht wieso wenn ich es umschreibe das die Anfrage so ist: $result = mysql_query ($sql);

if (mysql_num_rows ($result) > 0)

funktioniert alles.

An was kann das liegen?

Hier der Code:

PHP-Code:
<?php 
// Session starten
session_start ();

// Datenbankverbindung aufbauen 
$db  = @new MySQLi("localhost""**""**""**");
if (
mysqli_connect_errno()) 

  die(
"Konnte keine Verbindung zur Datenbank aufbauen: ".mysqli_connect_error()."(".mysqli_connect_errno().")");


$sql "SELECT "
    
"Id, Nickname, Nachname, Vorname "
  
"FROM "
    
"benutzerdaten"
  
"WHERE "
    
"(Nickname like '".$_POST["name"]."') AND "
    
"(Kennwort = '".md5 ($_POST["pwd"])."')"
$result $db->query($sql); 

if (
$result->num_rows 0

  
// Benutzerdaten in ein Array auslesen. 
  
$data $result->fetch_array

  
// Sessionvariablen erstellen und registrieren 
  
$_SESSION["user_id"] = $data["Id"]; 
  
$_SESSION["user_nickname"] = $data["Nickname"]; 
  
$_SESSION["user_nachname"] = $data["Nachname"]; 
  
$_SESSION["user_vorname"] = $data["Vorname"]; 

  
header ("Location: intern.php"); 

else 

  
header ("Location: formular.php?fehler=1"); 

?>
marcoz ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.07.2009, 05:18  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.733
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Dein Code ist ziemlich genau wie das Beispiel auf der Handbuchseite zu mysqli_result->num_rows. Ich sehe da auch kein Problem...

Code:
"(Nickname like '".$_POST["name"]."') AND ".
Hier solltest du jedoch $_POST["name"] escapen.

Und wieso prüfst du dort auf LIKE?
mermshaus ist gerade online  
Alt 13.07.2009, 10:42  
lou
Benutzer
 
Registriert seit: 21.04.2009
Beiträge: 43
lou befindet sich auf einem aufstrebenden Ast
Standard

Was gibt es dir var_dump($result->num_rows) aus?
lou ist offline  
Alt 13.07.2009, 13:17  
Benutzer
 
Registriert seit: 25.06.2009
Beiträge: 42
PHP-Kenntnisse:
Anfänger
marcoz befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von lou Beitrag anzeigen
Was gibt es dir var_dump($result->num_rows) aus?
Es gibt NULL aus -.-

hmm habe es aus nem Tutorial deswegen steht da like wusste eigentlich auch nciht wieso man da nich mit = vergleicht.
marcoz ist offline  
Alt 13.07.2009, 13:34  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von marcoz Beitrag anzeigen
Es gibt NULL aus -.-
Da liegt wahrscheinlich das Problem, $result ist vermutlich schon NULL. Was steht denn in $db->error? Und lass dir auch mal $sql ausgeben.
__________________
Gruss
L
lazydog ist offline  
Alt 13.07.2009, 14:44  
Benutzer
 
Registriert seit: 25.06.2009
Beiträge: 42
PHP-Kenntnisse:
Anfänger
marcoz befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von lazydog Beitrag anzeigen
Da liegt wahrscheinlich das Problem, $result ist vermutlich schon NULL. Was steht denn in $db->error? Und lass dir auch mal $sql ausgeben.
also error is behoben war n Fehler in MYSQL Code jetzt hab ich nur noch das problem das als num rows ergebnis int(0) raus kommt und ich nicht weiß wieso.

$sql ausgabe bewirkt: SELECT Id, Nickname, Nachname, Vorname FROM benutzerdaten WHERE (Nickname like 'mzweb@1') AND (Kennwort = '549d21d79d7b86416a1da5779fb60dc4')
marcoz ist offline  
Alt 13.07.2009, 15:28  
lou
Benutzer
 
Registriert seit: 21.04.2009
Beiträge: 43
lou befindet sich auf einem aufstrebenden Ast
Standard

kann es sein, dass nicht "...WHERE Nickname Like 'xyz'..." sondern "...WHERE Nickname='xyz' AND Kennwort='bimbimbim'" gemeint ist?

Mit "like" suchst du nach Mustern, wie "SELECT user_id FROM users WHERE user_nick LIKE '%AB%'" -> als Ergebnis z.B.: "Fabian, Baby".

Wenn du einen konkreten Vergleich machen willst, ist "like" verkehrt.
lou ist offline  
Alt 13.07.2009, 15:32  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von lou Beitrag anzeigen
Wenn du einen konkreten Vergleich machen willst, ist "like" verkehrt.
wieso?
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline  
Alt 13.07.2009, 15:44  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von lou Beitrag anzeigen
Wenn du einen konkreten Vergleich machen willst, ist "like" verkehrt.
Verkehrt ist es nicht (d.h. es führt nicht zu einem Fehler), aber schlecht, weil die DB dann die Suchbegriffe zuerst überflüssigerweise durch den Wildcard-Parser schickt.
Das kann also nicht das Problem sein. Aber wahrscheinlich wird einfach nichts gefunden. Probier doch die Abfrage mal im PMA aus.
__________________
Gruss
L
lazydog ist offline  
Alt 13.07.2009, 15:45  
Erfahrener Benutzer
 
Registriert seit: 05.04.2005
Beiträge: 1.333
Freeaak ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich habe bei abfragen (ohne wildcards) mit "like" bzw "=" nie geschwindigkeitsunterschiede feststellen können
__________________
"Wenn du nicht weißt, was du tust: Machs mit Eleganz!"

(Murphy's Gesetze)
Freeaak ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Regular Expression: Tabellennamen aus query extrahieren Celli PHP Tipps 2009 7 31.05.2009 16:42
Query später weiter einschränken? MatzeMuc86 Datenbanken 9 14.04.2009 14:15
[Erledigt] Subquery mit ORDER BY ohne Ergebnis stefanjann Datenbanken 8 11.12.2008 10:35
[Erledigt] Query mit JOIN funktioniert in PHP nicht (bei mir...) b_i_g_b_o Datenbanken 2 27.11.2008 22:54
Query funktioniert im SQL Query Browser aber nicht in PHP - DB zu groß ? john_the_bad Datenbanken 10 16.09.2008 18:17
Query optimieren __abcde__ Datenbanken 8 28.08.2008 10:44
[Erledigt] Kein Ergebnis bei SELECT (MySQL 4.1.9) dr.e. Datenbanken 4 15.06.2008 19:54
ergebnis von einem query in eine PDF speichern simon78 PHP Tipps 2008 2 17.05.2008 09:59
PHP/MySQL: Query wird nicht ausgeführt Zergling-new Tutorials 5 09.05.2006 23:16
Oracle decode - Bei Select ohne Ergebnis ? Cyberbob_at_tot Datenbanken 6 09.03.2006 12:04
query r�cksetzen? Promaetheus PHP Tipps 2007 15 01.12.2005 13:53
verschiedene Query Ergebnisse in MySQL 4.0.x und 4.1.x Datenbanken 3 18.09.2005 15:57
Query, was aus einer Tabelle mehrere Summen rausholt Datenbanken 3 14.09.2005 16:45
Ergebnis einer DBabfrage in HTML Dateien Suchen u. anzeigen PHP Tipps 2005-2 0 15.08.2005 22:35
[Erledigt] Query läuft nicht Datenbanken 6 13.08.2004 21:13

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
?id=login query=/, $result->num_rows, mysqln num rows fehler bei login script, oracle rows num_rows result, numrows ausgeben, php login skript num rows, numrows, oracle num_rows, num_rows 0, php num rows ausgeben, content, php oracle login script, php num rows query, if numrows 0, php wenn num_rows gleich 0, if numrows = 0, if numrows größer als null, $result->num_rows(), if num_rows 0, $numrows

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:21 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum