Hä wo ist da bitte der Fehler?

2Pac

Erfahrenes Mitglied
Hallo Leute!

Ich will eine Art PM System mit einer Userliste, in die man User adden und löschen kann programmieren.

Dabei wird folgendes gemacht:

PHP:
<form action="hinzufugen2.php" method="post">
                  <input name="nick" value="User">
                  <input type="Submit" value="Suchen">
                  </form>
Damit übergebe ich den Namen mit '$nick' und versuche nun aus der Tabelle user die ID zu bekommen (auto_increment)
PHP:
$sq177 = mysql_db_query("$DatabaseName", "SELECT id FROM user where nick='$nick'") OR die(mysql_error());
                  $treffer = mysql_fetch_row($sq177);
                  if ($treffer == 1)
                  {
                   while ($data = mysql_fetch_row($sq177))
                   {
                    $id = $data[0];
                    echo "<center><font size='1' face='Verdana' color='#000000'>$nick</font>&nbsp;<a href='hinzufugen3.php?id=$id'><font size='1' face='Verdana' color='#000000'><b>hinzufügen</b></font></a></center>";
                   }
                  }
                  else
                  {
                   echo "<center><font size='1' face='Verdana' color='#000000'>$nick existiert nicht!</font></center>";
                  }
Jetzt kommt trotz das dieser User 100% in der Datenbank-Tabelle ist, die Meldung es gäbe keinen User mit solch einem Namen. Ich probier da jetzt schon Stunden ich seh da einfach keinen Fehler...

Das Feld hat die Eigenschaft Text mehr nicht.
 
Versuchs mal so:
PHP:
<?php
    $sql = mysql_query("SELECT id FROM user WHERE nick='".$_GET['nick']."'") OR die(mysql_error()); 
    if(mysql_num_rows($sql)) {
        $data = mysql_fetch_assoc($sql);
        $id = $data['id'];
        echo "<center><font size='1' face='Verdana' color='#000000'>".$_GET['nick']."</font>&nbsp;<a href='hinzufugen3.php?id=".$id."'><font size='1' face='Verdana' color='#000000'><b>hinzufügen</b></font></a></center>"; 
    }
    else {
        echo "<center><font size='1' face='Verdana' color='#000000'>".$_GET['nick']." existiert nicht!</font></center>"; 
    }
?>
Du benötigst keine while-Schleife, da du ja nur einen Datensatz auswählst.
 
neee kommt genau das Selbe, dass das angeblich nicht existieren soll! Boah ich raffs mal gar nicht. Das ist doch unnormal :(

*EDIT*

Der Name wird fehlerfrei übermittelt, nur er finde anscheinend keinen in der Datenbank. Blos warum er existiert 100% ich habe eben nochmal nachgeschaut. Auch andere User klappen nicht. Passiert das Selbe.
 
Zuletzt bearbeitet:
das war schon fast richtig.. aber bei der Request_Methode Post sollte auch POST[] verwendet werden und nicht GET[] *g*

PHP:
<?php 
    $sql = mysql_query("SELECT id FROM user WHERE nick = '".$_POST['nick']."'") OR die(mysql_error()); 
    if(mysql_num_rows($sql)) { 
        $data = mysql_fetch_assoc($sql); 
        $id = $data['id']; 
        echo "<center><font size='1' face='Verdana' color='#000000'>".$_POST['nick']."</font>&nbsp;<a href='hinzufugen3.php?id=".$id."'><font size='1' face='Verdana' color='#000000'><b>hinzufügen</b></font></a></center>"; 
    } 
    else { 
        echo "<center><font size='1' face='Verdana' color='#000000'>".$_POST['nick']." existiert nicht!</font></center>"; 
    } 
?>

probiers halt so mal. ...das nick= waere eventuell aucj ein error .. nick = * scheint besser zu funktionieren. ich habs entsprechend geaendert.
 
Zuletzt bearbeitet:
Danke jetzt geht es ;)

Aber trotzdem versteh ich nicht warum meins nicht ging war doch im prinzip genau das selbe halt nur inna while schleife :(
 
So jetzt kommt das nächste Problem ich versteh das gar nicht. Sonst ging das so wie ich das hatte immer.

Und zwar hab ich folgendes Problem:

Ich will auch eine Lösch-Funktion erstellen

Übergeben wird hier $usera
PHP:
$sql = mysql_db_query("$DatabaseName", "SELECT * FROM user where nick='".$_POST['usera']."'") OR die(mysql_error());
                  if(mysql_num_rows($sql)) 
                  {
                   $data = mysql_fetch_assoc($sql);
                   $id = $data['id'];
                   mysql_db_query("$DatabaseName", "DELETE FROM buddy where user='".$_POST['usera']."' and id='".$id."'") OR die(mysql_error());
                   echo "<center><font size='1' face='Verdana' color='#000000'>User erfolgreich gelöscht!</font></a></center>"; 
                  } 
                  else 
                  { 
                   echo "<center><font size='1' face='Verdana' color='#000000'>Es ist ein Fehler aufgetreten!</font></center>"; 
                  }

Ich bin schon wieder am verzweifeln :(

Das 1. Problem ist gelöst hatte nur paar dumme Fehler gemacht ^^ ;)
Aber das was noch da steht ist weiterhin ein Problem :(
 
Zuletzt bearbeitet:
aber bei der Request_Methode Post sollte auch POST[] verwendet werden und nicht GET[]
Stimmt, ich hab mir das Formular nicht angesehn :-)

zu 2)
- Hast du error_reporting(E_ALL) gesetzt?
- Fehlermeldungen?
- Was gibt PHP aus?
- Wozu brauchst du bei DELETE $usera und $id? Die ID würde doch genügen!
- Schreibe mal immer ein Leerzeichen vor und nach das "=" (where a = b) [obwohl ich bezweifle, dass das ein Fehler ist]
- Lass dir mal alle übergebenen Variablen ausgeben! (mit var_dump)
 
Sag ich dir wazu ich das brauch. Die Tabelle buddy besteht aus 3 Spalten:

id user userid

id die id desjenigen der eingeloggt ist

user der Name des Buddykontakts

userid die ID des Buddykontakts

Und da nun alle Kontakte also bis zu 100 oder mehr in dieser Tabelle sind, muss ich dich zu dem Eingeloggten zuordnen. :)
 
Also ich bin jetzt soweit dass er folgendes sagt:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/local/httpd/htdocs/kunden/web1254/html/loschen2.php on line 338

Es ist ein Fehler aufgetreten!

Aber er löscht es!

PHP Quelltext dazu:

PHP:
$sql = mysql_db_query("$DatabaseName", "DELETE FROM buddy where user='".$_POST['userus']."' and id='".$id."'") OR die(mysql_error());
                  if(mysql_num_rows($sql)) 
                  {
                   echo "<center><font size='1' face='Verdana' color='#000000'>User erfolgreich gelöscht!</font></a></center>"; 
                  } 
                  else 
                  { 
                   echo "<center><font size='1' face='Verdana' color='#000000'>Es ist ein Fehler aufgetreten!</font></center>"; 
                  }

Ich hab $usera in $userus umgenannt um zu sehen ob es vielleicht an der Variable liegt die Übergeben wird. Er muss also die Variable richtig übergeben aber irgendwas an der $sql Zeile nicht gut finden nur was!?

MfG 2Pac
 
Achso :-)

Gut, dann wüsste ich gerne ob PHP durch die If-Abfrage kommt. Wenn ja ist, dann lass dir mal den gesamten Query per echo ausgeben!

//EDIT zu langsam!
 
Zurück