DB Einträge auslesen wenn 1 dann $player_on um 1 erhöhen

Hi

PHP:
<?php
// Die DB-Daten würde ich in eine seperaten Datei schreiben ... t.B. dbdaten.php ind HT-geschütztem Ordner

// Verbindungsinfos
$db_host="localhost";
$db_name="l2jdb";
$db_user="FBIagent";
$db_pw="";


// Das Connect mit der DB, sowie alle benötigten Variablen stellte ich in eine Datei ...
// configinc.php in der ich die Datenbank-Vari's includen würde - so wären die Daten auch beim Ausfall des PHP-Parser's sicher

// Mit DB verbinden
$db_con = mysql_connect($db_host,$db_user,$db_pw);
if (!$db_con){
   echo  "Fehler ".mysql_errno."<br>Datenbank nicht erreichbar (".mysql_error().")$outi<br>";
}else{
   $connect=mysql_select_db($db_name,$db_con);
   if (!$connect){
      echo "Fehler ".mysql_errno."<br>Datenbank nicht anwählbar (".mysql_error().")$outi<br>";
      $db_con="";
   }
}
if (!$db_con){
   @mysql_close();
   echo "Beende Script<br>";
   die();
}


// Ab hier würde meine Haupt-Datei beginnen, am Anfang ein include("configinc.php");

//DB-Anfrage stellen
$result=mysql_query("SELECT * FROM 'characters' WHERE online=1");
$player_on=0;
$anzahl=mysql_num_rows($result);
if ($anzahl>0){
   echo "$anzahl User sind online:<br>";
   while ($row=mysql_fetch_array($result)){
      echo $row['account_name']."<br>";
   }
}else{
   echo "Kein User online :-/<br>";
}
?>
Hab die num_rows mal erst in eine Vari gepackt ... sollte zwar auch direkt klappen, aber vll hilft's.
Im Editor sieht das Ganze eigendlich brauchbar aus.
Wenn Du trotzdem noch Fehlermeldungen bekommst, pflaster uns damit zu *g*
Dabei wäre aber ne Markierung in Deinem Code brauchbar, welches die betreffende Zeile ist ... ein 22: vll davor?
Dann wäre vll noch die Struktur Deiner DB hilfreich.
Vll haben wir uns hier ja einfach bei einem Spaltennamen ect. verschrieben ... dann mag mySQL nimmi.

MfG
Posti
 
Zuletzt bearbeitet:
Hi,

so siets im momemt aus:

PHP:
<?php
 
echo '<style type="text/css">body{scrollbar-base-color:#000000;scrollbar-arrow-color:#ff0000;scrollbar-highlight-color:#ff0000;scrollbar-track-color:#000000;}</style>';
 
// Die DB-Daten würde ich in eine seperaten Datei schreiben ... t.B. dbdaten.php ind HT-geschütztem Ordner 
// Verbindungsinfos 
$db_host="localhost"; 
$db_name="l2jdb"; 
$db_user="FBIagent"; 
$db_pw=""; 
 
// Das Connect mit der DB, sowie alle benötigten Variablen stellte ich in eine Datei ... 
// configinc.php in der ich die Datenbank-Vari's includen würde - so wären die Daten auch beim Ausfall des PHP-Parser's sicher 
// Mit DB verbinden 
$db_con = mysql_connect($db_host,$db_user,$db_pw); 
if (!$db_con){ 
echo "Fehler ".mysql_errno."<br>Datenbank nicht erreichbar (".mysql_error().")$outi<br>"; 
}else{ 
$connect=mysql_select_db($db_name,$db_con); 
if (!$connect){ 
	 echo "Fehler ".mysql_errno."<br>Datenbank nicht anwählbar (".mysql_error().")$outi<br>"; 
	 $db_con=""; 
} 
} 
if (!$db_con){ 
@mysql_close(); 
echo "Beende Script<br>"; 
die(); 
} 
 
// Ab hier würde meine Haupt-Datei beginnen, am Anfang ein include("configinc.php"); 
//DB-Anfrage stellen 
$result=mysql_query("SELECT * FROM 'characters' WHERE online=1"); 
$player_on=0; 
$anzahl=mysql_num_rows($result); 
if ($anzahl>0){ 
echo "$anzahl User sind online:<br>"; 
while ($row=mysql_fetch_array($result)){ 
	 echo $row['account_name']."<br>"; 
} 
}else{ 
echo "Kein User online :-/<br>"; 
}
?>

Also die Struktur meiner DB sieht so aus:

http://www.websamba.com/fbiagent/DBstruct.jpg


Hier ein Auszug Der Tabelle Characters:

http://www.websamba.com/fbiagent/characterstable.jpg

Nen Fehlöer bekomme ich immer noch bei
PHP:
 anzahl=mysql_num_rows($result);

Also gefällt dem am Befehl mysql_num_rows(); etwas nicht. Aber warum nur.

THX im Vorraus
MFG FBIagent
 
Zuletzt bearbeitet:
Köennte es an meinen Einstellungen liegen? Oder vieleicht das man in mysql_query();
statt ' zeichen ` zeichen benutzt? Oder sogar garkeine zeichen um den Tabellennamen
macht?
 
Zuletzt bearbeitet:
Hi!

Tabellen- und Spaltennamen werden in MySQL mit ` umschlossen, Werte hingegen mit '.
Ändere mal Deinen Quelltext dahingehen durch.

redlama
 
Also hab ich mit den zeichen ' die den Tabellennamen einschließen bewirk das er direkt nen Wert
nehmen will und dadurch der Fehler lieg ich da richtig?
 
Also hier jetzt der funktionierende code:

PHP:
<?php
 
echo '<style type="text/css">body{scrollbar-base-color:#000000;scrollbar-arrow-color:#ff0000;scrollbar-highlight-color:#ff0000;scrollbar-track-color:#000000;}</style>';
 
// Verbindungsinfos 
$db_host="localhost"; 
$db_name="l2jdb"; 
$db_user="FBIagent"; 
$db_pw=""; 
 
// Mit DB verbinden 
$db_con = mysql_connect($db_host,$db_user,$db_pw); 
if (!$db_con){ 
echo "Fehler ".mysql_errno."<br>Datenbank nicht erreichbar (".mysql_error().")$outi<br>"; 
}else{ 
$connect=mysql_select_db($db_name,$db_con); 
if (!$connect){ 
echo "Fehler ".mysql_errno."<br>Datenbank nicht anwählbar (".mysql_error().")$outi<br>"; 
$db_con=""; 
} 
} 
if (!$db_con){ 
@mysql_close(); 
echo "Beende Script<br>"; 
die(); 
} 
 
//DB-Anfrage stellen 
$result=mysql_query("SELECT * FROM `characters` WHERE online=1"); 
$player_on=0; 
$anzahl=mysql_num_rows($result); 
if ($anzahl>0){ 
echo "$anzahl User sind online:<br>"; 
while ($row=mysql_fetch_array($result)){ 
echo $row['account_name']."<br>"; 
} 
}else{ 
echo "Kein User online :-/<br>"; 
}
?>

Ich werde es natürlich nicht so belassen und es mal von ganz alleine schreiben ohne hilfe.
ich will ja nicht nur abgeschrieben haben, sondern auch was von lernen ;)
Ich werd mir jetzt mal nen Buch schnapen und mich durch das Thema PHP und MySQL
durchwelzen. Aber vorher noch zwei Fragen:

1) Muss immer ein PRIMARY KEY in einer Tabelle angegeben sein und wenn nicht wofür
----der PRIMARY KEY gut ist.

2) Ich würde gerne noch wissen wie ich einen eintrag aus Tabellen entferne.
----Also gegeben ist wieder die DB 'l2jdb'. Die Tabelle 'account' ist gegeben. Ich will
----in einem Formular <form></form> eine Input Box <input type="text"> in der ich einen
----Account Namen eingebe und wenn dieser eintrag unter einem der Einträge in der Spalte
----'login' vorkommt soll dieser Eintrag entfernt werden. Das Formular ist schon soweit
----abschickbereit nur fehlt mir das um die eingabe mit den einträgen zu vergleichen.
----Hier mal mein versuch ohne das Formular nur mit einem vordefiniertem Account Name:
PHP:
<?php
 
echo '<style type="text/css">body{scrollbar-base-color:#000000;scrollbar-arrow-color:#ff0000;scrollbar-highlight-color:#ff0000;scrollbar-track-color:#000000;}</style>';
 
// Verbindungsinfos 
$db_host="localhost"; 
$db_name="l2jdb"; 
$db_user="FBIagent"; 
$db_pw="";
// Den zu löschenden Account Name
$the_account_to_delete='Herscher' 
 
// Mit DB verbinden 
$db_con = mysql_connect($db_host,$db_user,$db_pw); 
if (!$db_con){ 
echo "Fehler ".mysql_errno."<br>Datenbank nicht erreichbar (".mysql_error().")$outi<br>"; 
}else{ 
$connect=mysql_select_db($db_name,$db_con); 
if (!$connect){ 
echo "Fehler ".mysql_errno."<br>Datenbank nicht anwählbar (".mysql_error().")$outi<br>"; 
$db_con=""; 
} 
} 
if (!$db_con){ 
@mysql_close(); 
echo "Beende Script<br>"; 
die(); 
} 
 
//DB-Anfrage stellen 
$result=mysql_query("SELECT * FROM `accounts` WHERE login"); 
while ($row=mysql_fetch_array($result)){ 
if($the_account_to_delete==$row['login']{ // <----- Wenn die Variable $the_account_to_delete gleich der Spalte 'login' ist, des grad durchgehende
mysql_query("SELECT * FROM `account` DROP $row"); // <----- Hier den Befehl um den entsprehenden Eintrag zu löschen. Vieleicht so?
} 
} 
?>

THX im Vorraus
MFG FBIagent
 
Zuletzt bearbeitet:
Hmmm, da fragst Du jetzt was.
Bei mir funktioniert genau diese Zeile ...
Hat jemand noch ne Ahnung?

Wie sieht's aus ... hat die Variable der Anfrage bei Erfolg und Misserfolg einen Inhalt?
Also kann man
PHP:
if ($result){
   //Ergebnis ... also auslesen
}else{
   //Kein Ergebnis ... also keine USer online
}

Hab das aber glaube schon Mal getestet ... funktionierte glaube aber nicht ... glaube ... ist schon länger her.

MfG
Posti
 
Und wie ist der Befehl mit dem ich einen Eintrag entfernen kann?

Das wär es dann auch erstmal wenn diese Frage beantwortet ist.

THX im Vorraus
MFG FBIagent
 
Hi

Entfernen von Einträgen aus einer Tabelle:
(mit WHERE einstellen, WAS entfernt werden soll, mit LIMIT, wieviele Einträge)
PHP:
$result=mysql_query("DELETE FROM `tabellen_name` WHERE `znr` = '3' LIMIT 1");

Entfernen einer ganzen Tabelle:
PHP:
$result=mysql_query("DROP TABLE `tabellen_name`");

MfG
Posti
 
Wofür steht denn da das LIMIT? Ok hat sich schon erledigt hab was von deinem Beitrag überlesen:D

Kann ich das mysql_query(); nicht auch alleine stehen lassen? oder gibt mysql_query(); den
entsprechenden fehlercode zurück wenn etwas nicht geklapt hat? Und was wenn es klappt?
 
Zuletzt bearbeitet:
Zurück