mysqldumper
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 16.12.2002, 01:20   #1
TP-Senior
 
Registriert seit: Dec 2002
Ort: Gernsbach
BRIX macht alles soweit korrekt
Question

Abfrage


Hi @ll,
bei meiner Linkliste auf http://www.paulke.com sind mir zwei Fehler aufgefallen und ich weiss nicht wie ich diese beheben kann... Ich habe sämtliche mir zur Verfügung stehende Lektüre durchgesehen, die Fehler sind aber nirgendwo explizit aufgeführt.

Zum einen:
Wenn jemand doppelt auf den Link in der Mail klickt, so wird er auch zwei oder mehrmals in der Liste gespeichert. D.h. es müsste doch möglich sein, z.B. die Nachnamen und Vornamen auf doppelte Einträge zu überprüfen.
Zum zweiten:
Wenn jemand z.B. von Namen heisst, und dieses im Nachnamen auch eingibt, schneidet mir der Link immer den Namen nach dem erstem Wort ab. Soll ich hier vielleicht die Funktion trim() mit einbauen?

Vielen Dank für die Hilfe...

BRIX

__________________
------------------------------------------
Protestseite für besseren Tierschutz
BRIX ist offline   Mit Zitat antworten


Alt 16.12.2002, 08:28   #2
jph
TP-Veteran
 
Benutzerbild von jph
 
Registriert seit: Apr 2001
Ort: Münster und gerade aus Brisbane
jph ist auf einem guten Weg
poste doch bitte mal das php-skript für die anmeldung!
__________________
Internetprojekte & Webdesign
www.janheck.de
post@janheck.de
jph ist offline   Mit Zitat antworten
Alt 16.12.2002, 10:30   #3
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
bau dir deine app anders auf. speichere den namen schon direkt beim mailversand und füge ein 'aktivieren' flag ran. dieses setzt du dann via mailklick. und dann kann der user tausendmal draufdrücken - der status wird sich dann nicht mehr ändern.
voraussetzung, du schickst ihm auch noch eine eindeutige id mit dem link mit, da du ja schon auf einen bestehenden datensatz zurückgreifst.
dein zweites problem würde sich übrigends auch mit der methode lösen, da du dir ersparst, den vollen namen über den link mitzuschicken.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 16.12.2002, 21:10   #4
TP-Senior
 
Registriert seit: Dec 2002
Ort: Gernsbach
BRIX macht alles soweit korrekt
Zitat:
Original geschrieben von jph
poste doch bitte mal das php-skript für die anmeldung!
Hallo, vielen Dank für die Antworten. Zum allgemeinem Verständnis poste ich mal das Script hier... :-)

Script:
PHP-Code:
<td height="134" valign="top">
<form name="form1" method="post" action="<?php echo $PHP_SELF ?>">
//Hier der allgemeine Teil des Scripts mit Datenbankanbindung.
<?php
mysql_connect
($sqlhost,$sqluser,$sqlpass) OR DIE( "Kann den SQL-Server nicht finden. Bitte versuchen Sie es zu einem späteren Zeitpunkt noch einmal.");
mysql_select_db($database);
$sql "INSERT INTO link (vorname,nachname,email,homepage) VALUES ('$vorname','$nachname' , '$email' , '$homepage')";
$result mysql_query($sql);
echo 
"<font face=\"Verdana, Arial, Helvetica, sans-serif\"><h2>Datensatz wurde erfolgreich aktualisiert!</h2><br><br>";}
?>
        &nbsp;<br>
        <br>
        <br>
        <hr>
        <br>
        Sie haben hier die M&ouml;glichkeit noch andere Personen anzumelden. Sollten 
        Sie dieses nicht vorhaben, k&ouml;nnen Sie hier die Seite schlie&szlig;en, 
        oder hier zur Homepage zur&uuml;ckgehen.<br>
        <br>
        <br>
        <table width="100%" border="0">
          <tr> 
            <td width="40%"><div align="right">Ihr Vorname:</div></td>
            <td width="60%">&nbsp; <input name="vorname" type="text" id="vorname" size="20" onfocus="style.background='<?php echo $bgcolor?>'" onblur="style.background='<?php echo $bgcolorfeld?>'"></td>
          </tr>
          <tr> 
            <td><div align="right">Ihr Nachname:</div></td>
            <td>&nbsp; <input name="nachname" type="text" id="nachname" size="20" onfocus="style.background='<?php echo $bgcolor?>'" onblur="style.background='<?php echo $bgcolorfeld?>'"></td>
          </tr>
          <tr> 
            <td><div align="right">Ihre eMail-Adresse:</div></td>
            <td>&nbsp; <input name="email" type="text" id="vorname3" size="20" onfocus="style.background='<?php echo $bgcolor?>'" onblur="style.background='<?php echo $bgcolorfeld?>'"></td>
          </tr>
          <tr> 
            <td><div align="right">Ihre Homepage:</div></td>
            <td>&nbsp; <input name="homepage" type="text" id="vorname4" size="20" onfocus="style.background='<?php echo $bgcolor?>'" onblur="style.background='<?php echo $bgcolorfeld?>'"></td>
          </tr>
          <tr> 
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr> 
            <td colspan="2"><div align="center"> 
                <input type="submit" name="Submit" value="Absenden" onfocus="style.background='<?php echo $bgcolor?>'" onblur="style.background='<?php echo $bgcolorfeld?>'">
              </div></td>
          </tr>
        </table>
      </form></td>
  </tr>
  <tr> 
    <td height="19" valign="top"><br>
      <br>
    </td>
  </tr>
  <tr> 
    <td height="34" valign="top"> <div align="center"><strong>[<a href="index.php">zur&uuml;ck 
        zur Startseite</a>]<br>
        <br>
        <br>
        <br>
        </strong></div></td>
  </tr>
  <tr>
    <td height="29" valign="top"><div align="center">
      <?php echo $copyright?></div></td>
Ich werde noch etwas anderes versuchen...

Danke für die HILFE...

__________________
------------------------------------------
Protestseite für besseren Tierschutz

Geändert von mike (17.12.2002 um 00:14 Uhr).
BRIX ist offline   Mit Zitat antworten
Alt 16.12.2002, 23:11   #5
TP-Supporter
 
Benutzerbild von Sebi
 
Registriert seit: Feb 2002
Ort: Hamburg
Sebi ist auf einem guten Weg
du solltest auch gleich beim anmelden überprüfen ob der datensatz schon existiert. sonst kann man sich ja trotzdem tausendmal anmelden

das machst du einfach indem du überprüfst ob vorname in kombination mit nachname und evtl domain schon einmal vorhanden ist (hier einfach die mysql_num_rows benutzen) und dann kannst du falls anzahl >= 1 einen fehler ausgeben. andernfalls kannst du einfach das ganze normal einfügen lassen.

das mit dem aktivieren flag ist, wie bereits von longfang erwähnt, zu empfehlen.
Sebi ist offline   Mit Zitat antworten
Alt 17.12.2002, 00:16   #6
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
ich werd aus deinem script nicht schlau.
was geanau macht das und von wo kommen die daten her, die du insertest?
wer ruft das script auf?
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 18.12.2002, 00:15   #7
TP-Senior
 
Registriert seit: Dec 2002
Ort: Gernsbach
BRIX macht alles soweit korrekt
Zitat:
Original geschrieben von Longfang
ich werd aus deinem script nicht schlau.
was geanau macht das und von wo kommen die daten her, die du insertest?
wer ruft das script auf?
Hi Longfang, Hi Sebi,

das Script holt die Informationen aus der config.php und die Einträge aus der anmelden.php. Sobald die Anmelden PHP abgeschickt ist, bekommt der User eine Mail mit dem Bestätigungslink. Bis hierhin habe ich es geschafft. Aber jetzt bin ich halt am Problem. Habe aufgegriffen das ich mit der Funktion msql_num_rows() die Anzahl der Zeilen zurückgeben kann. Ich habe jetzt folgenden Script ausprobiert und bekomme immer folgende Fehlermeldung:

Geliefertes Argument ist nicht ein gültiges MySQL Resultat.

Der Code sieht da jezt so aus:
<?php
mysql_connect($sqlhost,$sqluser,$sqlpass) OR DIE( "Kann den SQL-Server nicht finden. Bitte versuchen Sie es zu einem späteren Zeitpunkt noch einmal.");
mysql_select_db($database);

$vergleichen = mysql_num_rows("vorname, nachname");
if($vergleichen ==0)
{
$sql = "INSERT INTO link (vorname,nachname,email,homepage) VALUES ('$vorname','$nachname' , '$email' , '$homepage')";
}
$result = mysql_query($sql);

echo "<font face=\"Verdana, Arial, Helvetica, sans-serif\"><h2>Datensatz wurde erfolgreich aktualisiert!</h2><br><br>";

?>

Vieleicht sieht ja einer von Euch jetzt eine passende Lösung. Ich werde zwar weiterprobieren, aber schwer ist es für einen Anfänger wie mich schon...

Gruß BRIX

__________________
------------------------------------------
Protestseite für besseren Tierschutz
BRIX ist offline   Mit Zitat antworten
Alt 18.12.2002, 16:25   #8
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Äh, bevor Du irgendwas aus der Datenbank "vergleichen" willst, musst Du doch erstmal Daten holen via SELECT dies, das FROM tabelle ...
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 19.12.2002, 19:58   #9
TP-Supporter
 
Benutzerbild von Sebi
 
Registriert seit: Feb 2002
Ort: Hamburg
Sebi ist auf einem guten Weg
so sollte es gehen.

PHP-Code:
$select=mysql_query("SELECT vorname, nachname FROM tabelle");
$vergleichen mysql_num_rows($select);
if(
$vergleichen == 0)
{
$sql "INSERT INTO link (vorname,nachname,email,homepage) VALUES ('$vorname','$nachname' , '$email' , '$homepage')";
}
else{
    
$result mysql_query($sql);
    echo 
"<font face=\"Verdana, Arial, Helvetica, sans-serif\"><h2>Datensatz wurde erfolgreich aktualisiert!</h2><br><br>";

Sebi ist offline   Mit Zitat antworten
Alt 20.12.2002, 10:42   #10
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
sorry sebi, aber was soll gehen?

spätestens nach dem ersten datensatz, der gespeichert wird, ist ruhe im keller, da du immer mehr als 0 datensätze mit deinem vorgehenden select rausbekommst.

$select=mysql_query("SELECT id FROM tabelle where vorname=$vorname and nachname=$nachname");

triffts wohl eher.

deine if abfrage verstehe ich nicht.
if -then -else sind entweder - oder abfragen.
wenn 0 dann macht er dir einen string namens $sql und sonst nichts.
wenn > 0 dann fügt er dir einen string namens $sql (von wo?) ein.
das stimmt also nicht ganz.


$sql = "insert...."

if ($ergebnis == 0)
mysql_query($sql)

__________________
Gehelft? Hier kannst du dich bedanken.

mike

Geändert von mike (20.12.2002 um 10:49 Uhr).
mike ist offline   Mit Zitat antworten
Alt 27.01.2003, 13:30   #11
TP-Senior
 
Registriert seit: Dec 2002
Ort: Gernsbach
BRIX macht alles soweit korrekt
Cool

Linkliste Lösung


Hi Leutz,

hier die Antwort auf das Problem...

Mit Hilfe eines anderen Forums bin ich auf die Lösung gekommen...

Vielen Dank für alle Helfer.

Hier der Code:

<?php
// Verbindung zur DB herstellen
mysql_connect($sqlhost,$sqluser,$sqlpass) OR DIE( "Kann den SQL-Server nicht finden. Bitte versuchen Sie es zu einem späteren Zeitpunkt noch einmal.");
mysql_select_db($database);
// alle Zeilen aus der DB, auf die die eingegebenen Daten zutreffen,
// sollen gezählt werden
$user = "SELECT * FROM link WHERE vorname='$vorname' AND nachname='$nachname' AND email='$email' AND homepage='$homepage'";
$result = mysql_query($user);
$num_rows = mysql_num_rows($result);
// Falls keine passenden Zeilen gefunden wurden
// ist $num_rows=0
if($num_rows==0 || $num_rows=='') {
$sql = "INSERT INTO link (vorname,nachname,email,homepage) VALUES ('$vorname','$nachname' , '$email' , '$homepage')";
$result = mysql_query($sql);
echo "<font face=\"Verdana, Arial, Helvetica, sans-serif\"><h2>Datensatz wurde erfolgreich aktualisiert!</h2><br><br>";
} else {
echo "<h3>Ihre Daten sind doppelt</h3>";
}
?>



Gruß BRIX

__________________
------------------------------------------
Protestseite für besseren Tierschutz
BRIX ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Abfrage Abfrage
« Wie realisiere ich am Besten eine mehrsprachige Seite? | Bilder mittels PHP4 einfügen! »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:59 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67