Antworten auf deine Fragen:
Neues Thema erstellen

AJAX Username Check

Jason-Design

Jason-Design

Hiho ich hab mal wieder nen problem,

und zwar nutze ich diese script: http://www.pa-s.de/php/codeschnipsel-AJAX-Username-Check-52.php

mein problem besteht gerade nur darin die daten aus einer ganzen spalte abzurufen und diese in array zu schreiben weiß vllt wer weiter ich poste mal die datei von mir

PHP:
<?php

include("db.php");

if (isset($_GET['usernamecheck'])) {
$usernamecheck = trim(htmlspecialchars($_GET['usernamecheck'], ENT_QUOTES, "UTF-8"));
?>    
              <?php
              $last_action = time() - 1800;
              $query99 = "select id,username from user where id > '".$id."' LIMIT 10000000000 ";
                        $result99 = mysql_query($query99);
              ?>
            <?php 
            
            
            while($arraypa = mysql_fetch_assoc($result99)){ 
                
                $all = $arraypa["username"];
            }?>
            
            <?php
                    
                
    if(!in_array($usernamecheck, $all)){
        echo ' <span style="color:#006600">Frei</span>';
    }else{
        echo ' <span style="color:red">Belegt</span>';
    }
}
?>

vielen dank im voraus.
 

Duddle

Posting-Frequenz: 14µHz

AW: AJAX Username Check

Wenn du sowieso nur einen Nutzer abfragen willst, mach das doch gleich in der SQL-Anfrage:
PHP:
$r = mysql_fetch_row(mysql_query("SELECT COUNT(id) anz from `user` where `username` ='".mysql_escape_string($usernamecheck)."'"));
if($r['anz'] == 1) {
  echo "existiert";
} else {
  echo "existiert nicht";
}

Das reicht zu, falls du die die Daten zwischendurch nicht noch für einen anderen Zweck brauchst, aber das hast du nicht erwähnt.


Duddle
 

Jason-Design

Jason-Design

AW: AJAX Username Check

Wenn du sowieso nur einen Nutzer abfragen willst, mach das doch gleich in der SQL-Anfrage:
PHP:
$r = mysql_fetch_row(mysql_query("SELECT COUNT(id) anz from `user` where `username` ='".mysql_escape_string($usernamecheck)."'"));
if($r['anz'] == 1) {
  echo "existiert";
} else {
  echo "existiert nicht";
}
Das reicht zu, falls du die die Daten zwischendurch nicht noch für einen anderen Zweck brauchst, aber das hast du nicht erwähnt.


Duddle

Okay hab es mal geteste aber irrgend wie zeigt er mir immer an es"existiert nicht" obwohl der name zu 100% vergeben ist...

ich habs jetzt so weit

PHP:
<?php

include("db.php");

$r = mysql_fetch_row(mysql_query("SELECT COUNT(id) anz from user where username ='".mysql_escape_string($usernamecheck)."'"));
if($r['anz'] == 1) {
  echo "existiert";
} else {
  echo "existiert nicht";
}
  
?>
 

Duddle

Posting-Frequenz: 14µHz

AW: AJAX Username Check

Nein, mein Beispiel ersetzt nur dein SQL-Zeugs und die Schleife, nicht die Zuweisung und Abfrage davor. Ausserdem habe ich aus Platzgründen auf eine Fehlerbehandlung verzichtet, die du aber im echten Code einbauen solltest.


Duddle
 

Jason-Design

Jason-Design

AW: AJAX Username Check

War trotzdem noch ein bißchen nen fehler drin haben es jetzt aber gepackt trotzdem danke...

Hier noch der Quel Text... für andere die Hilfe brauchen...

PHP:
<?php

include("db.php");

$r = mysql_fetch_row(mysql_query("SELECT id from `user` where `username` ='". $_GET['usernamecheck'] ."'"));
if($r > 0) {
echo "existiert";
} else {
echo "existiert nicht";
}
  
?>
 

Curanai

Aktives Mitglied

AW: AJAX Username Check

... ich würde ebenfalls noch über eine LIMITierung nachdenken und was MySQL damit anstellt, wenn es im Query steht, wenn er ein passendes Ergebnis findet (doppelte Benutzernamen sind eh in dieser Branche ein no-go). Gerade bei Benutzernamen, die ja nun in erhöhter Anzahl vertreten sein könnten, wäre es nicht schlecht, würde sich "id1" einloggen, er nicht noch weiter die Table mit den anderen 40.000 Usernamen vergleicht, oder?!

Weiterhin habe ich irgendwann mal irgendwo gelesen, dass COUNT() nicht sehr Performance-freundlich sein soll - hier solle man auf mysql_num_rows() in PHP zurückgreifen, nachdem ein Query mit den Bedingungen abgeschickt wurde (bspw. SELECT auf 'key' der Table - mehr nicht) ... sorry, finde die Quelle auf die Schnelle nicht mehr. Es kann aber auch sein, dass dies noch altes Wissen aus MySQL4 ist ...
 

Duddle

Posting-Frequenz: 14µHz

AW: AJAX Username Check

mysql_num_rows() wäre in dem Fall lt. folgendem Link tatsächlich (minimal) schneller. Das gilt aber nicht im allgemeinen, wie der zweite Link zeigt.



Die schnellste Variante ist demzufolge das Zählen von PHP erledigen zu lassen – per mysql_num_rows(). Die anderen beiden Varianten haben aber Ihre Vorteile, wenn man nicht nur auf das Vorhandensein eines einzelnen Datensatzes prüft, sondern eine große Datenmenge hat. Dann würde das Zählen von MySQL die von PHP auszuwertende Datenmenge nämlich beträchtlich senken.



Bei der ersten Methode werden alle Elemente, die sich in der Datenbank befinden, selektiert und an PHP übergeben, die Funktion mysql_num_rows() wertet nun die Anzahl der Datensätze aus.
Dies macht die ganze Sache natürlich etwas langsamer, wie man es an dem Test gemerkt hat.

Die zweite Methode hingegen sendet von dem Datenbanksystem nur eine Zahl, nämlich die Anzahl der Datensätze. Das Zählen übernimmt hier SQL. Der Traffic zwischen PHP und MySQL ist somit viel geringer


Duddle
 

Curanai

Aktives Mitglied

AW: AJAX Username Check

Jau, nicke ich so ab, allerdings ist nicht erwähnt, inwiefern COUNT() dann MySQL selbst bremst - man spricht leider nur von Traffic zwischen PHP und MySQL. Mein Text von einst bezog sich auf das, was intern bei MySQL passiert - muss mal hier in meine Bücherregale schauen ... kann sein, dass ich das "offline" aufgegriffen habe.

In der Praxis benutze ich mysql_num_rows() immer (!) - hat sich auch so eingebürgert, um erst gar keine Abarbeitung anzustoßen, falls Fehler (zu selten) oder keine Ergebnismenge kommt. Aber wie erwähnt: Wenn ich nicht gerade ein SELECT * ... zum eigentlichen Zählen mit mysql_num_rows() mache, sondern wirklich nur das kleinstmögliche Feld an PHP weiterreiche ... klappt super - auch mit sehr großen Datenmengen.
 

Duddle

Posting-Frequenz: 14µHz

AW: AJAX Username Check

Genau das macht doch der Fragesteller im Script. Das in etwas JS einzupacken ändert die Funktionalität nicht.


Duddle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.614
Beiträge
1.538.351
Mitglieder
67.525
Neuestes Mitglied
mgtaucher
Oben