anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Mo 16 Jun, 2025 06:21

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: mysql_num_rows klappt nicht....
BeitragVerfasst: Fr 13 Okt, 2006 21:50 
Offline
Profi
Profi
Benutzeravatar

Registriert: So 15 Jan, 2006 20:28
Beiträge: 108
Wohnort: Hangelar
Ich habe einen Hack geschriben. Leider brauchte ich dafürm umbeding di efunktion mysql_num_rows. Naja, das Projekt habe ich damals ann doch auf eis gelegt. Aber nun habe ich mit nem neuen Projekt angefangen und da brauche ich wieder die Funktion, und wieder funktioniert sie nicht....
Es wird auch kein "or die" ausgegeben

Ich weis wirklich nicht weiter :cry:

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 13 Okt, 2006 22:11 
Offline
Meister
Meister
Benutzeravatar

Registriert: So 02 Okt, 2005 15:22
Beiträge: 377
Wohnort: Aachen
LoGD: http://www.dragon-tale.de/logd/source.php
Vlt gibtst du mal deine bisherige Datei hier rein und eine kleine Beschreibung was genau pasieeren soll ;)

_________________
Derzeitiges Projekt:

Neues Kampfsystem
Ein Kampfsystem mit Spielfeld und taktischeren Kämpfen. Beinhaltet Nahkampf und Fernkampf wie auch Auren.
Fertigstellung unbekannt (aber lange)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 14 Okt, 2006 06:10 
Offline
Held
Held
Benutzeravatar

Registriert: Di 23 Aug, 2005 23:46
Beiträge: 268
Wohnort: Köln
LoGD: http://www.dragnir.de
Wie genau verwendest du denn diese Funktion?

schon so, oder?

[php]$result = mysql_query("SELECT * FROM blablubb") or die ("Fehler: " . mysql_error());
$anz_datensaetze = mysql_num_rows($result); [/php]

_________________
Warum UNIX/Linux böse ist:

- 'kill' macht Menschen zu brutalen, blutrünstigen Bestien
- 'killall' züchtet regelrecht Massenmörder
- 'whoami' löst bei psychisch labilen Personen Existenzkrisen aus!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 14 Okt, 2006 07:06 
Offline
Profi
Profi
Benutzeravatar

Registriert: So 15 Jan, 2006 20:28
Beiträge: 108
Wohnort: Hangelar
Es geht darum, das ich einen Spielernamen eingeben kann und dann ein mysql- befehl erstellt wird mit der Accunt- id. Und wenn $i = anzahl der ergebnisse ist soll natürlich kein Or mehr in $where eingesetzt werden.

$this->bbcode_second_pass_code('', ' $result=mysql_query("SELECT * FROM accounts WHERE login LIKE '".$_POST['spieler']."'") or die(mysql_error());

if($row[acctid]=="") {
$fehler.="Achtung, Name konnte nicht gefunden werden`n";
}
$i2=1;
$count=mysql_num_rows($result);
while($row=mysql_fetch_assoc($result)) {
if($i2<=$count) {
$where.=" author='".$row['acctid']."' OR ";
} else {
$where.=" author='".$row['acctid']."' ";
}
$i2++;
}')

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 14 Okt, 2006 09:11 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Benutzt doch die LotGD Funktionen?, dort sind doch alle Funktionen bereits vorgegeben. Im Sinne "alle", bezieht sich das auf die Standart Funktionen wie z.b.: db_num_rows, db_free_result, db_fetch_assoc, usw. etc. pp.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 14 Okt, 2006 10:26 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 25 Aug, 2005 00:53
Beiträge: 135
LoGD: http://schwarzer-drache.cwsurf.de/logd/source.php
[php]if($i2<=$count) [/php]
müsste
[php]if($i2<$count) [/php] heißen,
weil beim letzen account dann eben $i2 genau count ist...

aber probiers am besten mal so:
da brauchste mysql_num_ros garnicht und es geht trotzdem einwandfrei^^

[php] $result = db_query("SELECT * FROM accounts WHERE login LIKE '".$_POST['spieler']."'");

if($row[acctid]=="") {
$fehler.="Achtung, Name konnte nicht gefunden werden`n";
}
$i2=1;
while($row = db_fetch_assoc($result)) {
$where.=" author='".$row['acctid']."' OR ";
$i2++;
}
$where = substr($where,0,strlen($where)-4);
[/php]
Probiers mal so, da brauchste mysql_num_rows


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 14 Okt, 2006 11:54 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Wenn dann so bitte:
[php]<?php
$sql = 'SELECT `author` FROM `accounts` WHERE `login ` LIKE "%'.addslashes(stripslashes($_POST['spieler'])).'%" ';
$result = db_query($sql) or die (db_error($sql));

if (db_num_rows($result)) {
while ($row = db_fetch_assoc($result)) {
$msg .= "{$row['author']}`n":
}
} else {
$msg = '`$`bAchtung`b, der Name konnte nicht gefunden werden!`0`n';
}

db_free_result($result);
output($msg);
?>[/php]

Ein bissel Klugscheissen am morgen tut immer gut =D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 14 Okt, 2006 12:27 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
In LotGD nicht nötig. Werfe dazu einfach einen Blick auf die dbwrapper.php.

Zudem wäre mysql_real_escape_string() angebrachter.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 14 Okt, 2006 13:44 
Offline
Admin
Admin
Benutzeravatar

Registriert: Di 21 Jan, 2003 01:11
Beiträge: 1604
Wohnort: Haßfurt
Geschlecht: Männlich
LoGD: http://www.anpera.net/logd
Skype: anpera-net
Ich bin mit mysql_real_escape_string() (wie mit allen "mysql_"-Befehlen) lieber etwas vorsichtig.

Eventuell betreibt jemand LoGD mit einer anderen Datenbank, die etwas andere Anforderungen an Strings stellt, als MySQL. Da ist man mit der zugegebenermaßen etwas blöderen Konstruktion aus add- und stripslashes vielleicht besser beraten, weil man dann nur die dbwrapper.php entsprechend an die Datenbank anpassen muss, und nicht noch im Script nach für MySQL-optimierten Stellen zu suchen braucht.

Man könnte sich natürlich auch eine neue Funktion db_real_escape_string() in der dbwrapper.php definieren, um dieses Problem zu umgehen. ;)

Ok, ich kennen niemanden, der eine andere DB für LoGD verwendet, und ich vermute, dass man dafür trotzdem einiges anpassen müsste. Von daher dürfte es also fast egal sein.

_________________
Praxis ist, wenn alles klappt aber keiner weiß warum. Theorie ist, wenn man weiß wie es geht, aber nichts klappt. Wir haben beides erfolgreich vereinigt: Bei uns klappt nichts und keiner weiß warum!

Neues Video: Marios freier Tag in Second Life


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 14 Okt, 2006 14:40 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
anpera hat geschrieben:
Ok, ich kennen niemanden, der eine andere DB für LoGD verwendet, und ich vermute, dass man dafür trotzdem einiges anpassen müsste. Von daher dürfte es also fast egal sein.


Es ist so... Leider.
MySQLi geht nicht so ohne weiteres (Parameter sind anders geordnet), PostgreSQL hat eine ganz andere Art der Anmeldung, "last_insert_id" heisst da "last_oid", zudem darf man da die Spaltennamen nicht mit Backticks (`) umgeben.
Die PDO-Erweiterung kann man eh vergessen, SQLite geht auch nicht so ohne weiteres (last_insert_rowid(), sqlite_fetch_assoc gibts nicht).
MSSQL könnte gehen, jedoch gibt es, nach dem Manual, keine vergleichbare Funktion für last_insert_id. Interbase verlangt die Paramter wieder in anderer Anordnung als MySQL, Oracle verbindet ganz anders zur Datenbank (ora_login / _logoff).
ODBC schreibt Querys anders (prepare/execute).


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum