php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.05.2005, 17:55  
Gast
 
Beiträge: n/a
Standard Gibt es mysql_fetch_assoc

Ich hab eine Frage: Gibt es die Funktion mysql_fetch_assoc?
Ich habe nämlich ein Buch in welchem dies benutzt wird aber bei mir selber klappt es nicht.
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 27.05.2005, 17:59  
Gast
 
Beiträge: n/a
Standard

http://de3.php.net/mysql_fetch_assoc
Natürlich gibts die Funktion!

Was sagt phpinfo() ?


Zu beachten:
Zitat:
mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)
Ich würde also vermuten dass Du eine frühere Version als PHP 4.0.3 verwendest...
  Mit Zitat antworten
Alt 27.05.2005, 18:06  
Gast
 
Beiträge: n/a
Standard

Aber ich hab folgenden code (für einen Login angewendet):
PHP-Code:
<?php

     $Nickname
=$_POST['Nickname'];
     
$Passwort=$_POST['Passwort'];
     
     
//Zur Datenbank connecten und auswählen:

     
mysql_connect("localhost","davidspy1000","326435");
     
mysql_select_db("davidspy1000");
     
     
//Anfrage erstellen:
     
     
$anfr="Select * From ´user´";
     
     
//Anfrage senden:

     
$erg=mysql_query($anfr);
     
     
//Daten auslesen:
     
$anz mysql_num_rows($erg);
     while(
$dsatz mysql_fetch_assoc($erg))
     {
         
//Daten überprüfen:
           
if($dsatz["Nickname"]==$Nickname && $dsatz["Passwort"]==$Passwort)

               echo 
"[url='email.html']E-mail schreiben:[/url]";
           else

               echo 
"Angaben falsch. Bitte nocheinmal versuchen";

     }
    
?>
Aber dann kommt immer:

PHP-Code:
Warningmysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/davidspy1000/login.php on line 26

Warning
mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/davidspy1000/login.php on line 27 
  Mit Zitat antworten
Alt 27.05.2005, 18:10  
Gast
 
Beiträge: n/a
Standard

Ich hab gerade nachgeschaut : ich habe vers 4.3.11
  Mit Zitat antworten
Alt 27.05.2005, 18:11  
Gast
 
Beiträge: n/a
Standard

Also.

1. Warum soll ich nicht SELECT * schreiben?
2. Nicht
Code:
Select * From ´user´
sondern wenn dann
Code:
Select * From `user`

Gruß
Max
  Mit Zitat antworten
Alt 27.05.2005, 18:17  
Gast
 
Beiträge: n/a
Standard

Klappt aber immer noch nicht.
  Mit Zitat antworten
Alt 27.05.2005, 18:23  
Gast
 
Beiträge: n/a
Standard

Dann mach mal
PHP-Code:
<?php
 $Nickname
=$_POST['Nickname'];
 
$Passwort=$_POST['Passwort'];
  
 
//Zur Datenbank connecten und auswählen:
 
mysql_connect("localhost","davidspy1000","326435");
 echo 
mysql_error();

 
mysql_select_db("davidspy1000");
 echo 
mysql_error();
     
 
//Anfrage erstellen:
 
$anfr="Select * From `user`";
     
 
//Anfrage senden:
 
$erg=mysql_query($anfr);
 echo 
mysql_error();
     
 
//Daten auslesen:
 
$anz mysql_num_rows($erg);
 echo 
mysql_error();

 while(
$dsatz mysql_fetch_assoc($erg) or die(mysql_error()))
 {
  
//Daten überprüfen:
  
if($dsatz["Nickname"]==$Nickname && $dsatz["Passwort"]==$Passwort)
   echo 
"[url='email.html']E-mail schreiben:[/url]";
  else
   echo 
"Angaben falsch. Bitte nocheinmal versuchen";
  }
?>

Gruß
Max
  Mit Zitat antworten
Alt 27.05.2005, 19:08  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.818
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das warning entsteht nicht, weil die funktion mysql_fetch_assoc() nicht existiert, sondern weil deine abfrage falsch war.

feldnamen werden in backticks ( ` ) eingebunden, und nicht in ticks ( ') ...

aus diesem grund war:

Code:
Select * From ´user´
falsch und hat das warning ausgelöst.

immer so arbeiten:

PHP-Code:
<?php
$qry 
mysql_query($sqlAnfrage) or die($sqlAnfrage ' ' mysql_error() . ' ' __LINE__ );
?>
axo ist offline   Mit Zitat antworten
Alt 27.05.2005, 19:17  
Gast
 
Beiträge: n/a
Standard

Was hab ich gesagt?
  Mit Zitat antworten
Alt 28.05.2005, 14:18  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.818
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von maxibt
Was hab ich gesagt?
du hast folgendes 'gesagt':

PHP-Code:
<?php
//Anfrage senden:
$erg=mysql_query($anfr);
echo 
mysql_error();
     
//Daten auslesen:
$anz mysql_num_rows($erg);
echo 
mysql_error();

while(
$dsatz mysql_fetch_assoc($erg) or die(mysql_error())) 
?>
richtig wäre:

PHP-Code:
<?php
$erg 
mysql_query($anfr) or die(mysql_error() . ' ' $anfr ' ' __LINE__ );

while(
$dsatz mysql_fetch_assoc($erg)) { 
 
// 
 
}
?>
es sollte dir bewusst sein, dass das mysql_error() nur beim ersten mysql_query() sinn macht, und dann sollte es dort mit
$erg = mysql_query($anfr) or die(mysql_error() ) abgefangen werden und nicht in der while-schleife.
axo ist offline   Mit Zitat antworten
Antwort


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

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql_fetch_assoc auslesen, daten auslesen mysql_fetch_assoc, = <?php $dsatz[\passwort\] ?>, mysql_num_rows($erg), mysql_fetch_assoc($daten), mysql_fetch_assoc php 5, mysql_fetch_assoc php, mysql_fetch_assoc() überprüfen, mysql_fetch_assoc passwort, mysql_fetch_assoc while, mysql_fetch_assoc(mysql_query php 5, mysql_fetch_assoc überprüfen, mysql_fetch_assoc alle auslesen

Alle Zeitangaben in WEZ +1. Es ist jetzt 11:24 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.