Fehler bei Ausgabe

Read-Only-Modus

Das 01-Supportforum befindet sich im Read-Only-Modus. Es ist nicht mehr möglich sich zu registrieren, neue Themen zu erstellen oder auf bestehende Themen zu antworten.

Alle Inhalte stehen bis auf absehbare Zeit jedoch weiterhin lesend zur Verfügung.


Bei Fehlern oder Problemen mit PHP-Scripten von 01-Scripts.de erstellen Sie gerne einen Issue-Eintrag auf Github oder nehmen Sie per E-Mail Kontakt auf.

  • Also, ich habe einen Fehler irgendwo im Script, nur ich habe ka wo. Komischerweise ging es noch, als ich es letztes mal aufgerufen habe...


    Also, der Fehler:


    Code
    1. Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource


    Dazu muss ich sagen, dass er nicht ausgegeben wurde, egal was ich gemacht habe, dann habe ich die Formularinhalte entfernt, und siehe da, da war er, aber ich weis echt nicht warum -.-


    Und nun der Teilscript:


    [PHP]<form action="<?php echo $_SERVER['PHP_SELF']; ?>?<?php echo strip_tags(session_name()."=".session_id()) ?>&type=detail" method="POST">
    <table width="50%" border="0" cellspacing="10" align="center>
    <tr>
    <td align="center">Charakterauswahl von <b><u><?php echo REALM_NAME1; ?></u></b>:</td>
    <td align="center"><select name="char" size="1">
    <option value="">Charakter wählen...</option>


    <?php


    $acc = $_SESSION["ACCT"];


    $connect = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die("Konnte keine Verbindung zum Datenbankserver aufbauen!");
    $selectDB = @mysql_select_db(MYSQL_DATABASE1, $connect) or die("Konnte die Datenbank <b>MYSQL_DATABASE1</b> nicht auswählen!");


    $querychar = @mysql_query("SELECT guid, name, race, class, level, gold, mapId, guildid FROM characters WHERE acct = '$acc' ORDER BY name ASC;") or die("Konnte die Tabelle nicht öffnen!");


    if(mysql_num_rows($querychar)) {


    while($row = mysql_fetch_assoc($querychar)) {
    ?>


    <option value="<?php echo $row['guid'] ?>"><?php echo $row['name'] ?></option>


    <?php }


    } else {


    ?>


    <option value="-">KEIN EINTRAG</option>


    <?php


    } mysql_close($connect); ?>
    </select></td>
    </tr>
    <tr>
    <input type="hidden" name="realm" value="1">
    <td align="center" colspan="2"><input type="Submit" name="sub1" value="Auswählen"></td>
    </tr>
    </table></form>[/PHP]


    Hoffe mal du kannst damit was anfangen, ansonsten muss es ich dir per PM schicken.


    Du bist erfahren da drinne, ich habe so vieles probiert, ich bin auch langsam am Ende, ich finde nix...
    Hoffentlich findest du was, am Ende liegt es nur an der XAMPP Version^^

  • So spontan seh ich da im Quellcode auch keinen Fehler.
    Wenn ich danach schauen soll, müsstest du mir das Script inkl. Dump der MySQL-Tabelle mal schicken. Ansonsten kann ich da leider wenig dazu sagen.


    Das einzige was mir dazu so ohne das Script noch einfällt:
    Existiert denn ein Datensatz, der ausgegeben werden könnte oder ist die Tabelle noch leer?

  • Zitat

    Original von Black NEXUS
    Das ist nur ab Version 1.6.6a von XAMPP so, mit 1.6.2 und 1.6.4 hatte ich keine solchen Probleme :(


    Läuft das Script denn dann online auf deinem Server?


    Edit:
    Was noch sein könnte: Mach mal den Strichpunkt in Zeile 15 am Ende des MySQl-Befehls weg. (nach dem ASC; )

  • Zitat

    Original von Black NEXUS
    Also ich habe den auf meinem Rechner, ist dann einfacher handzuhaben und brauch man nicht immer alles online machen^^


    Also ich habe das Simekolon weg gemacht, ist immer noch das Problem da :(


    In deinem MySQL-Query "guildid" aus der Fieldlist nehmen. Dieses DB-Feld existiert in deiner DB nämlich nicht (mehr)... ;)


    Falsch:

    Code
    1. $querychar = @mysql_query("SELECT guid, name, race, class, level, gold, mapId, guildid FROM characters WHERE acct = '$acc' ORDER BY name ASC;") or die("Konnte die Tabelle nicht öffnen!");


    Richtig:

    Code
    1. $querychar = @mysql_query("SELECT guid, name, race, class, level, gold, mapId FROM characters WHERE acct = '".$acc."' ORDER BY name ASC;") or die("Konnte die Tabelle nicht öffnen!");