Login Script

An dem SQL Befehl hapert es nicht (dieses SELECT....). Der ist richtig.

Bei der PHP muss also der Fehler liegen. Nur wo und wie würde ein verbessertes Script aussehen? :confused:
 
ich glaub ich weis jetzt warum..

versuch mal

PHP:
$row = mysql_fetch_object(mysql_query("SELECT * FROM erksspaceeintrag WHERE `kd-nr`='test'"));
    
    if($row['kd-nr']==test){
    echo 'Schon Vergeben';
    }
    else{
    echo 'Noch frei';
    }

wobei das natürlich auch sinnlos ist, denn du hast ja schon im MySQL-Query gesagt "WHERE `kd-nr`='test'" also brauchtst du eigendlich keine if-Abfrage mehr..

mfg

Philipp9494
 
Seit wann geht denn sowas: $row->kd-nr?
Das hieße eigentlich "$row->kd" [minus] Konstante "nr"... Richtiger daher: $row->{"kd-nr"}, wenn es denn überhaupt sein muss.
Das lässt sich auch auf MySQL übertragen. Ein Minus wird in diesem Kontext als Subtraktion gewertet, vehindern lässt sich das durch das Kennzeichnen als Bezeichner via Backticks.
Eine effektivere Abfrage könnte übrigens so aussehen:
SQL:
SELECT
    COUNT(*)
FROM
    `table`
WHERE
    `kd-nr` = '$kdnr'
LIMIT
    1

Das vorher verwendete LIKE ist bei Äquivalenzsuchen eventuell langsamer als eine festgelegte Äquivalenzrelation - Das ist aber eher eine Vermutung als ein bewiesener Fakt.

Übrigens sollte man evaluieren, ob es wirklich fetch_object sein muss, oder ob es auch mit fetch_assoc oder fetch_row geht.
Das Query oben bietet zB folgendes an:
PHP:
list( $count ) = mysql_fetch_row( mysql_query( $querystring ) );
 
Zuletzt bearbeitet:
Ich habe jetzt mein Script weitergeschrieben und verschiedene Variablen etc. verwendet. Der Tipp von maeTimmae...

Das hieße eigentlich "$row->kd" [minus] Konstante "nr"... Richtiger daher: $row->{"kd-nr"}, wenn es denn überhaupt sein muss.

hat mit weitergeholfen und nun glaub ich klappt es.

PHP:
<form name="form1" method="post" action="">
  <label>
  <input type="text" name="test" id="test">
  </label>

  <label></label>
  <input type="submit" name="button" id="button" value="Senden">
  <?php


    if($button=='Senden') {
    require('mysql.php');
    $abfrage = "SELECT * FROM erksspaceeintrag WHERE `kd-nr`='$test'";
    $ergebnis = mysql_query($abfrage) or die(mysql_error());  
    $row = mysql_fetch_object($ergebnis);
    
    if($row->{"kd-nr"}==$test){
    echo 'Schon Vergeben';
    }
    else{
    echo 'Noch frei';
    }
    }
    ?>
</form>

Danke für die Hilfe :rolleyes: :)
 
Dann erwidere ich einfach mal:
[phpf]mysql_fetch_array[/phpf]
[phpf]mysql_fetch_assoc[/phpf]
[phpf]mysql_fetch_object[/phpf]
[phpf]mysql_fetch_row[/phpf]
Rückgabewerte studieren, und dann den Unterschied erkennen.

Durch die SPL in PHP5+ ist es über die Implementierung von ArrayAccess oder die Erweiterung oder Instanzierung von ArrayObject zwar möglich, auf festgelegte Eigenschaften von Objekten im Array-Format zuzugreifen, aber anderweitig ist mir es nicht bekannt, dass man auf Objekte, wie von [phpf]mysql_fetch_object[/phpf] zurückgegeben (stdObject), als Array zugreifen kann.

Erks: Keine Ursache :)
 
Zurück