Brauche kleine php-Hilfe für Petitions-Script
-
- Valued Contributor
- Beiträge: 3570
- Registriert: 21.04.2004 12:22
- Wohnort: Berlin
- Kontaktdaten:
Brauche kleine php-Hilfe für Petitions-Script
Hi Leute ich brauch dringend eine kleine Hilfe in PHP, hab schon einiges Probiert, komm aber nicht weiter.
Folgendes ich hab ein Petitions-Script, es ist so ganz fein, nur hats einen Hacken.
Jede Eintragung muss vom Admin freigeschaltet werden - ok damit könnte ich noch Leben.
Nur das große Problem ist, das jeder Eintrag mit einer ID in der MySQL Datenbank angelegt wird, nach dieser ID, werden die Einträge auch auf der Seite sortiert.
Das Problem an der Sache ist, wenn z.B. nun der Eintrag 1 in die Datenbank kommt, hat er die ID 1.
Wenn jetzt nun der 2. Eintrag erfolgen soll, bekomm ich auf meiner Seite eine Fehlermeldung, das die 1 schon vorhanden ist.
Die IDs werden also nicht automatisch weiterführend in die MySQL eingetragen.
Selbst nach der Freischaltung.
Ich hab es auch hinbekommen, das wenn die Daten beim Absenden des Formulars in die Datenbank gespeichert werden, sie dann automatisch freigeschaltet sind, aber der Counter der Anzeigen soll wie viele Einträge es schon gibt, zählt nicht weiter, da will er die Zahl in der Datenbank nicht updaten.
Wenn sich jemand bereit erklären würde mir zu helfen, wäre ich sehr Dankbar, das kleine Script würde ich dann natürlich auch senden.
Wäre echt nett, weil ich brauchs dringend, weil ich ein großes Projekt eigentlich heute schon starten wollte.
Danke
Folgendes ich hab ein Petitions-Script, es ist so ganz fein, nur hats einen Hacken.
Jede Eintragung muss vom Admin freigeschaltet werden - ok damit könnte ich noch Leben.
Nur das große Problem ist, das jeder Eintrag mit einer ID in der MySQL Datenbank angelegt wird, nach dieser ID, werden die Einträge auch auf der Seite sortiert.
Das Problem an der Sache ist, wenn z.B. nun der Eintrag 1 in die Datenbank kommt, hat er die ID 1.
Wenn jetzt nun der 2. Eintrag erfolgen soll, bekomm ich auf meiner Seite eine Fehlermeldung, das die 1 schon vorhanden ist.
Die IDs werden also nicht automatisch weiterführend in die MySQL eingetragen.
Selbst nach der Freischaltung.
Ich hab es auch hinbekommen, das wenn die Daten beim Absenden des Formulars in die Datenbank gespeichert werden, sie dann automatisch freigeschaltet sind, aber der Counter der Anzeigen soll wie viele Einträge es schon gibt, zählt nicht weiter, da will er die Zahl in der Datenbank nicht updaten.
Wenn sich jemand bereit erklären würde mir zu helfen, wäre ich sehr Dankbar, das kleine Script würde ich dann natürlich auch senden.
Wäre echt nett, weil ich brauchs dringend, weil ich ein großes Projekt eigentlich heute schon starten wollte.
Danke
-
- Valued Contributor
- Beiträge: 3570
- Registriert: 21.04.2004 12:22
- Wohnort: Berlin
- Kontaktdaten:
Hi Beagleman,
Ok, hier ist das Script in einer RAR-Datei.
Es ist auch eine sql_install.php bei, man muss aber erst in der config.php die Verbindungsdaten zur Datenbank eintragen.
Wenn du es testest, dann mach mit dem formular ein Eintrag.
Dann gehst du in die Datenbank und änderst die IP von deinem Eintrag, damit du dann einen zweiten Eintrag versuchen kannst, sonst sagt er dir, das die IP schon registriert ist (zwecks Spam).
Dann bekommt man beim Absenden des zweiten Eintrages die Fehlermeldung und der Eintrag wird nicht vorgenommen, da die ID schon existiert.
Danke
Ok, hier ist das Script in einer RAR-Datei.
Es ist auch eine sql_install.php bei, man muss aber erst in der config.php die Verbindungsdaten zur Datenbank eintragen.
Wenn du es testest, dann mach mit dem formular ein Eintrag.
Dann gehst du in die Datenbank und änderst die IP von deinem Eintrag, damit du dann einen zweiten Eintrag versuchen kannst, sonst sagt er dir, das die IP schon registriert ist (zwecks Spam).
Dann bekommt man beim Absenden des zweiten Eintrages die Fehlermeldung und der Eintrag wird nicht vorgenommen, da die ID schon existiert.
Danke
-
- Valued Contributor
- Beiträge: 3570
- Registriert: 21.04.2004 12:22
- Wohnort: Berlin
- Kontaktdaten:
@Beagleman ich danke dirBeagleman hat geschrieben:Testen werde ich es sicher nicht, ich wollte mir den Code und die Tabellenstruktur nur ansehen.
Versuche mal in der Tabelle 'eintrag' die Spalte 'id' auf 'auto_increment' zu setzen.
Scheint zu funktionieren, er setzt die ID jetzt fort und gibt auch keine Fehlermeldung beim Absenden des Formulars.
Und ich da die ganze Nacht und fummel mich zu tode, dabei ist es doch so einfach

Vielen Dank, hast mir sehr geholfen.
PS: Nun kann ich ja das Ergebnis zeigen - siehe Signatur: Fight-4-Tuning
-
- Valued Contributor
- Beiträge: 3570
- Registriert: 21.04.2004 12:22
- Wohnort: Berlin
- Kontaktdaten:
OK, mich beschäftigt gerade noch eine anderes Thema.
Wie kann ich sie sortierung (DESC/ASC), der ausgelesenen Daten ändern.
Also folgendes:
- es werden immer 20 Zeilen angezeigt (die Anzahl ist in der config.php so bestimmt)
- sortiert wird nach der id
- und es beginnt mit der 1, sprich so
Die letzten Einträge werden immer auf der letzten Seite angezeigt.
Nun möchte ich es aber gerne so haben, das der letzte Eintrag immer als erstes angezeigt wird.
Also das dann auf der ersten Seite z.B. so aussieht:
Kann mir jemand sagen wie ich die Sortierung umdrehe.
Hab schon einiges Probiert, hat aber nur Fehler gebracht.
Danke.
Wie kann ich sie sortierung (DESC/ASC), der ausgelesenen Daten ändern.
Also folgendes:
- es werden immer 20 Zeilen angezeigt (die Anzahl ist in der config.php so bestimmt)
- sortiert wird nach der id
- und es beginnt mit der 1, sprich so
Nach 20 kommt dann "nächste Seite", wo es dann weiter geht.1 Name A
2 Name B
3 Name C
...
Die letzten Einträge werden immer auf der letzten Seite angezeigt.
Nun möchte ich es aber gerne so haben, das der letzte Eintrag immer als erstes angezeigt wird.
Also das dann auf der ersten Seite z.B. so aussieht:
Das ist der PHP Abschnitt, der das alles Anzeigt:246 Name BBC
245 Name BBB
244 Name BBA
...
Code: Alles auswählen
<?
if($_GET[s] == "") { $_GET[s] = 0; }
$sql="SELECT * FROM eintrag WHERE frei = '1' ORDER BY id LIMIT ".$_GET[s].",".($Zeilen_pro_seite+1);
$result=mysql_query($sql);
if(mysql_num_rows($result) < $Zeilen_pro_seite+1) { $letzte=1; }
$anzahl=0;
if(mysql_num_rows($result) == 0) {
?>
<tr style="font-family:Verdana, Arial; font-size:12px">
<td colspan="4" align="center" bgcolor="<?=$farbe[1] ?>">Noch keine Einträge</td>
</tr>
<?
}
while($eintrag=mysql_fetch_array($result) and $anzahl<$Zeilen_pro_seite) {
$anzahl++;
?>
<tr bgcolor="<? echo $farbe[$zeile]; ?>" style="font-family:Verdana, Arial; font-size:12px">
<td align="left"><? echo $eintrag[id]; //ID ?></td>
<td align="left"><? echo $eintrag[name].", ".$eintrag[vorname]; //Name ?></td>
<td align="left"><? echo $eintrag[stadt]; //Stadt ?></td>
<td align="left"><? echo $eintrag[beruf]; //Beruf ?></td>
</tr>
<tr>
<th height="1" colspan="4"></th>
</tr>
<?
$zeile=1-$zeile;
}
?>
Hab schon einiges Probiert, hat aber nur Fehler gebracht.
Danke.
Probier es mal so:
Code: Alles auswählen
<?
if($_GET[s] == "") { $_GET[s] = 0; }
$sql="SELECT * FROM eintrag WHERE frei = '1' ORDER BY id DESC LIMIT ".$_GET[s].",".($Zeilen_pro_seite+1);
-
- Valued Contributor
- Beiträge: 3570
- Registriert: 21.04.2004 12:22
- Wohnort: Berlin
- Kontaktdaten:
Ich glaub ich brauch ne Brille ^^Beagleman hat geschrieben:Probier es mal so:Code: Alles auswählen
<? if($_GET[s] == "") { $_GET[s] = 0; } $sql="SELECT * FROM eintrag WHERE frei = '1' ORDER BY id DESC LIMIT ".$_GET[s].",".($Zeilen_pro_seite+1);
Ich hatte es fast genauso, nur hatte ich LIMIT dafür weg genommen, als ich an dieser stelle DESC eingesetzt hatte.
Ohman, ich wusste doch das es wieder so simple ist

Ich danke dir wieder einmal sehr, für die schnelle Hilfe.

- Olli Oberhausen
- Mitglied
- Beiträge: 561
- Registriert: 22.10.2004 01:03
- Wohnort: Oberhausen NRW
- Kontaktdaten:
Wenn du deinen code schon veröffentlichst solltest du dringend was gegen sql injections tun - sonst ist deine list bald leer oder voll mit spam. ;o)
Die einfachste lösung wäre:
Olli
Die einfachste lösung wäre:
Code: Alles auswählen
$sql="SELECT * FROM eintrag WHERE frei = '1' ORDER BY id DESC LIMIT " . intval($_GET[s]) . "," . ($Zeilen_pro_seite+1);
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
-
- Valued Contributor
- Beiträge: 3570
- Registriert: 21.04.2004 12:22
- Wohnort: Berlin
- Kontaktdaten:
Hi Olli,
danke für den Hinweis, werds mal testen.
Wegen dem Spam, erstmal, wird ja die IP mit gespeichert und es ist so, das jede IP sich nur einmal eintragen kann, sprich bei jedem Absenden des Formular wird das überprüft.
Und zusätzlich müssen alle Einträge erst von mir im Adminbereich freigeschaltet werden, damit sie auf der Seite angezeigt und auch gezählt werden.
%Edit:
Funktioniet und läuft
danke für den Hinweis, werds mal testen.
Wegen dem Spam, erstmal, wird ja die IP mit gespeichert und es ist so, das jede IP sich nur einmal eintragen kann, sprich bei jedem Absenden des Formular wird das überprüft.
Und zusätzlich müssen alle Einträge erst von mir im Adminbereich freigeschaltet werden, damit sie auf der Seite angezeigt und auch gezählt werden.
%Edit:
Funktioniet und läuft
