Willkommen in der Webstatt Zum Webstatt Blog und Stories
Bonze am 04.03.06 11:34

mhh probiere schon den ganzen morgen ein datum speichern zu können aber irgendwie möchts ned :(
mysql_query('INSERT INTO `'.$mysql['table'].'` (`hp`,`name`, `nachricht`, `datum` )
VALUES (\''.addslashes($_POST['hp']).'\',\''.addslashes($_POST['name']).'\', \''.addslashes($_POST['nachricht']).'\', \''.time().'\')');

netcup.de Warum gibt es hier Werbung?
Bonze am 04.03.06 11:35

Quote
Original von Bonze
mhh probiere schon den ganzen morgen ein datum speichern zu können aber irgendwie möchts ned :(
mysql_query('INSERT INTO `'.$mysql['table'].'` (`hp`,`name`, `nachricht`, `datum` )
VALUES (\''.addslashes($_POST['hp']).'\',\''.addslashes($_POST['name']).'\', \''.addslashes($_POST['nachricht']).'\', \''.time().'\')');


alle anderen aten kann ich speichern in der db und auslesen ,.

Erdo am 04.03.06 11:55

Spalte 'Datum' vom falschen Typ?

Bonze am 04.03.06 12:10

mhh
Datum datetime

(is das richtig so, mach mit mysql zum ersten ma),.

Jonas Jonas am 04.03.06 12:16

Das ist das MySql Date Format.
Nehm einfach INT.
Gruß,
Jonas

Sven Sven am 04.03.06 12:23

Bäh, immer diese ollen Escapeorgien :/

<?php
$sql = "INSERT INTO `" . $mysql['table'] . "` SET hp='" . addslashes($_POST['hp']) . "', name='" . addslashes($_POST['name'] . "', nachricht='" . addslashes($_POST['nachricht'] . "', datum=NOW()";
mysql_query($sql);
?>

Dann kannst du auch dein datetime behalten (was ich machen würde).

Bonze am 04.03.06 12:49

mhh dann bekomm ich nen Parse error: syntax error, unexpected ';' in E:\xampp\xampp\htdocs\projects\shoutbox\shoutbox.php on line 67
das wäre genau in der zeile die Sven gepostet hat ,.

Sven Sven am 04.03.06 12:52

Ein ) hat gefehlt, sorry.

<?php
$sql = "INSERT INTO `" . $mysql['table'] . "` SET hp='" . addslashes($_POST['hp']) . "', name='" . addslashes($_POST['name']) . "', nachricht='" . addslashes($_POST['nachricht']) . "', datum=NOW()";
?>


*duckundweg*

Bonze am 04.03.06 12:58

mhh entweder bin ich dumm oder es das ich mich ned auskenne, aber es funktioniert immernoch nich ,..

Erdo am 04.03.06 12:58

Hä? Seit wann macht man denn Set =... bei INSERT INTO? ?(

Julian am 04.03.06 13:04

Ähm, klar das geht:

SET-Methode:
$query = 'INSERT INTO blub
SET spalte1 = 1,
spalte2 = 2,
spalte3 = 3';


VALUE-Methode:
$query = 'INSERT INTO blub
VALUES (1,2,3)';


VALUE-Methode inkl. Spaltennamen:
$query = 'INSERT INTO blub (spalte1, spalte2, spalte3)
VALUES (1,2,3)';

Sven Sven am 04.03.06 13:04

Ist eine weitere Methode die ich persönlich präferiere.
Ich schau mir gleich nochmal den Code an :/
Evtl. mal nochmal den Code posten den du jetzt drinnen hast.

Erdo am 04.03.06 13:07

Echt? Ging das schon immer? Dachte, das macht man nur bei UPDATE? Macht ja auch irgendwie mehr Sinn, es nur da zu verwenden.

Sven Sven am 04.03.06 13:08

Schon seit immer. Warum sollte das nur bei UPDATE Sinn machen? Warum sollte ich umdenken in der Query Syntax wenn ich auch immer das selbe verwenden kann?

Bonze am 04.03.06 13:19

if(array_key_exists('submited', $_POST) && $_POST['submited'] == 'save') {
)
$error = array();

if(trim($_POST['name']) == '') $error[] = 'Bitte einen Namen angeben!';
if(trim($_POST['nachricht']) == '') $error[] = 'Bitte einen Text angeben!';

if(count($error) > 0) {

echo implode('<br />', $error);
} else {

mysql_query('INSERT INTO `'.$mysql['table'].'` (`hp`,`name`, `nachricht`, `datum` ) VALUES (\''.addslashes($_POST['hp']).'\',\''.addslashes($_POST['name']).'\', \''.addslashes($_POST['nachricht']).'\')');
} // End if..else
}

ds is der komplette reinschreib code,.

milahu milahu am 04.03.06 13:40

Jetz nur noch anpassen :baby:

Julian am 04.03.06 13:43

Aktuell fügst du für 'datum' gar keinen Wert ein.
Bevor du da irgendwie mit time() oder now() anfängst, solltest du dir Gedanken über die Verwendung vom Datum machen.
Ich generier mir einen Timestamp ( time(); ) und füge ihn dann in ein INT(11) Feld ein. So kann man prima sortieren und auch nachher je nach belieben mit z.B. date("d.m.Y", $datum); ziemlich einfach das Datum darstellen.

$hp = addslashes($_POST['hp']);
$name = addslashes($_POST['name']);
$nachricht = addslashes($_POST['nachricht']);
$jetzt = time();
mysql_query("INSERT INTO '".$mysql['table']."' (hp, name, nachricht, datum)
VALUES ('".$hp."', '".$name."', '".$nachricht."', '".$jetzt."')") or die(mysql_error());

Sven Sven am 04.03.06 14:00

Ahh, also wieder eine Diskussion zum Thema datetime oder Timestamp in INT *hrhr*
Prima sortieren lassen kann man noch besser mit den von MySQL gegebenen Funkionen, Datumsberechnungen lassen sich easy und vorallem Performanter direkt von MySQL durchführen und die Formatierung des Datums geschieht auch direkt im Query.

Genug Argumente?

Bonze am 04.03.06 14:12

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''shoutbox' (hp, name, nachricht, datum) VALUES ('http:/' at line 1

kommt nun, irgendwie werd ich aus dem code auch nich so richtig schlau,.

milahu milahu am 04.03.06 15:59

Wer hat denn da nicht aufgepasst im MySQL Kurs? :P
Merke: Identifier in Backticks, Werte in Hochkommas.
http://dev.mysql.com/doc/refman/5.0/en/legal-names.html

Bonze am 04.03.06 16:17

kannste das auch ma auf deutsch erklären? , mach zum ersten mal was in mysql :D

milahu milahu am 04.03.06 16:21

Nö, lies einfach im Manual nach.

Dustwolf Dustwolf am 04.03.06 17:31

DIeses "Nö" ist ja eiskalt. :D

Wenn du Anfänger mit MySQL bist, solltest du dich erstmal mit einem Integer abfinden. Wenn dann das Script läuft, dann kann man das alles erweitern und optimieren. Aber du wirst vermutlich schon so genug Probleme damit haben...

Bonze am 04.03.06 19:40

also habs jetzt mit den komischen hochkommas gemacht (nich die halben anfuerungszeichen), scheint zu funzen jedoch bekomm ich dann immernoch diesen fehler ,..

Unknown column ''.[URL]http://.[/URL]'' in 'field list'

was soll das heissen?!


EDIT: nenenen funzt nich, wenn ich allerdings dieses hochkomma und das halbe anfuerhungszeichen durch ein " ersetze funzt soweit alles normal, ausser das ich immernoch kein datum hab ,.

milahu milahu am 04.03.06 22:24

Wie sieht deine Abfrage denn jetzt aus?

Dustwolf Dustwolf am 04.03.06 22:56

Ich vermute mal, dass du da irgendwo mit den ganzen ' nen Fehler gemacht hast. Ich geb dir mal nen Beispiel, wie ich solche Abfragen schreibe. Ist zwar sicher nicht die korrekteste Variante, aber es funzt bei mir mit XAMPP und auch online bei all-inkl. Kann also nicht soooo verkehrt sein.

mysql_query("SELECT Titel FROM news WHERE ID='21'");

bastey bastey am 04.03.06 23:31

Wenn wir schon dabei sind:
So würde meine Abfrage aussehen:
mysql_query("INSERT INTO `".$mysql['table']."` SET `hp` = '".addslashes($_POST['hp'])."', `name` = '".addslashes($_POST['name'])."', `nachricht` = '".addslashes($_POST['nachricht'])."', `datum` = '".time()."';");

der_nic der_nic am 04.03.06 23:35

Quote
Original von Dustwolf
Ich vermute mal, dass du da irgendwo mit den ganzen ' nen Fehler gemacht hast. Ich geb dir mal nen Beispiel, wie ich solche Abfragen schreibe. Ist zwar sicher nicht die korrekteste Variante, aber es funzt bei mir mit XAMPP und auch online bei all-inkl. Kann also nicht soooo verkehrt sein.

mysql_query("SELECT Titel FROM news WHERE ID='21'");


ist auch nicht sooo verkehrt aber hochkommas sollten noch rein (ich weiss es funzt auch ohne aber nur der vollständigkeit wegen)

mysql_query("SELECT `Titel` FROM `news` WHERE `ID`='21'");

Bonze am 05.03.06 11:46

also jetzt hab ich es so gemacht wie es dianosos geschrieben hat , und hab auch jetzt in der db
"1141555723" stehen, (besser wie vorher als garnix drin war), nur was kann ich damit anfangen?

Christian am 05.03.06 11:53

das is ein sog timestamp

wie de grunsätzlich damit umgehen kannst, kannst hier nachlesen:

http://www.schattenbaum.net/php/datum.php

Bonze am 05.03.06 13:25

ok jetzt funktioniert es endlich, hat aber jemand ne ahnung wie ich datenbankeinträge zählen kann?

der_nic der_nic am 05.03.06 13:37

$sql="SELECT * FROM `tabelle`";
$erg=mysql_query($sql);
$anz_einträge=mysql_num_rows($erg); //mysql_num_rows zählt deine Einträge

Dustwolf Dustwolf am 05.03.06 13:42

Wegen den Hochkommas. Das habe ich mal getestet, indem ich einfach so nen ausgegeben Query von PHPMyAdmin abgefragt habe. Der hat bei PHPMyAdmin bestens funktioniert, nur leider nicht in meinem eigenen Script.
Dadurch hab ich von den ` dann Abstand genommen.

milahu milahu am 05.03.06 14:13

der_nic, wie unperformant.. ;)
> select count(*) as num from foobar

der_nic der_nic am 05.03.06 15:52

@milahu: sry bin halt ein seht brachialer coder:P

@dustwolf: dann war wahrscheinlich ein fehler in deinem script an einer anderen stelle oder die db was down. weil wie du ja sagst, phpmyadmin stellt dir ja die "richtigen" querys parat

Bonze am 05.03.06 21:58

mhh ok auch das hab ich nun hinbekommen
jedoch hab ich mir überlegt , wie das vielleicht funktioniert das die db nur eine gewisse anzahl von einträgen umfasst, und wenn diese erreicht ist,
die ältesten wieder überschreibt,.

milahu milahu am 06.03.06 14:28

Warum denn löschen/überschreiben? Angst um den Speicherplatz? :D
Lies einfach mit einem Limit aus und feddich:
> select foo from bar limit 10

Bonze am 06.03.06 18:55

danke milahu,.. hat gefunzt, nein das mit dem speicherplatz is mir doch egal :D
nur wenn man ehh nur 10 beiträge z.B. lesen kann bei ner shoutbox, müssen ja nich viele tausende in der db gespeichert werden oder :?

#### text to smilie
$row['$nachricht'] = str_replace(":P", "<img src=\"$grafik/zunge.gif\">", $nachricht);
$row['$nachricht'] = str_replace(":grrr:","<img src=\"$grafik/boese.gif\">", $nachricht);
$row['$nachricht'] = str_replace(":nanana:","<img src=\"$grafik/nanana.gif\">", $nachricht);
$row['$nachricht'] = str_replace(":harg:","<img src=\"$grafik/zaehne.gif\">", $nachricht);
$row['$nachricht'] = str_replace(":blabla:","<img src=\"$grafik/grins.gif\">", $nachricht);
$row['$nachricht'] = str_replace(":heul:","<img src=\"$grafik/heul.gif\">", $nachricht);
$row['$nachricht'] = str_replace(":traurig:","<img src=\"$grafik/traurig.gif\">", $nachricht);
$row['$nachricht'] = str_replace(":D","<img src=\"$grafik/lachen.gif\">", $nachricht);
$row['$nachricht'] = str_replace(":0","<img src=\"$grafik/nanana.gif\">", $nachricht);
$row['$nachricht'] = str_replace(":cool:","<img src=\"$grafik/cool.gif\">", $nachricht);
$row['$nachricht'] = str_replace(":)","<img src=\"$grafik/grins.gif\">", $nachricht);
$row['$nachricht'] = str_replace(";)","<img src=\"$grafik/zwinker.gif\">", $nachricht);
$row['$nachricht'] = str_replace(":frag:","<img src=\"$grafik/frag.gif\">", $nachricht);
?>

<table width="120" border="0" bgcolor="#0099FF">
<tr>
<td width="70"><font color="#0033FF"><a href="<?php echo stripslashes($row['hp']); ?>"><?php echo stripslashes($row['name']); ?></a></font></td>
<td width="42">&nbsp;</td>
</tr>
<tr>
<td height="23" colspan="2"><font color="#0033FF"><?php echo $datum,"-",$uhrzeit,"Uhr"; ?></font><font color="#0033FF">&nbsp;
</font></td>
</tr>
<tr>
<td colspan="2"><font color="#0033FF"><?php echo "$nachricht"; ?></font></td>
</tr>
</table>
jetzt hab ich nurnoch ein letztes problem, es möchte mir nicht bei dem gespeicherten Text, bei der ausgabe alle smilie kombinationen in bilder umwandeln :( obwohl das eigentlich mal so funktioniert hat ( hatte mal ne shoutbiox auf txt datein basis,.)

milahu milahu am 06.03.06 19:37

$row['$nachricht'] ist eben was anderes als $nachricht ;)
Einfacher geht's per Array:
<?php
$grafik = '/img/';
$smilies = array(
':)' => 'grins.gif',
':)' => 'grins.gif',
':)' => 'grins.gif'
);
foreach( $smilies as $code => $bild ) {
$row['$nachricht'] = str_replace( $code, '<img src="'.$grafik.$bild.'" alt="'.$code.'" />', $row['$nachricht'] );
}
?>

Bonze am 06.03.06 19:52

jo0 scheint einfacher zu sein, aba irgendwie funktioniert das auch nit,
denn wenn ich den coe einbaue und anpasse, zeigt er mir die $nachricht ne mehr an ,.

EDIT:ahh doch jetzt funzts, weil das "$" vor nachricht zu viel war

achso, kann man eigentlich die maximale anzahl der zeichen in einem eingabefeld mit php beschränken?

Thiemm Thiemm am 11.03.06 21:41

Quote
Original von milahu
der_nic, wie unperformant.. ;)
> select count(*) as num from foobar

Und das Ergebnis wird in 'num' gespeichert? Darf ich fragen, wie man das dann ausgeben kann?

Michael Michael am 11.03.06 22:19

$query = mysql_query('SELECT COUNT(*) num FROM foobar');
$data = mysql_fetch_assoc($query);
print $data['num']

Meinst du das? Ich habe nur den letzten Beitrag hier gelesen...

Thiemm Thiemm am 11.03.06 22:29

Ja, das meinte ich. Aber dann könnte man doch auch einfach SELECT in Verbindung mit mysql_num_rows verwenden, oder?

Michael Michael am 12.03.06 01:28

Ich weiß nicht wie mysql_num_rows implementiert ist - vielleicht ist die COUNT() Sache schneller.
Als weiteres Pro-Argumentation kommt mir die Partabilität in den Sinn. mysql_num_rows gibt es nicht in allen Sprachen (eher noch in wenigen) COUNT() klappt aber "immer"

Sven Sven am 12.03.06 01:39

Es gilt : Aufgaben die MySQL erledigen kann > Aufgaben die MySQL erledigen kann aber von PHP gelöst werden.

Michael Michael am 12.03.06 01:45

mysql_num_rows benutzt ja auch MySQL um die Aufgabe zu lösen. Dass es nicht für jede MySQL Funktionalität eine "Wrapper" Funktion gibt, muss klar sein.

milahu milahu am 12.03.06 10:00

mysql_num_rows() wird ja bekanntlich mit einem ResultSet gefüttert. Man muss also erstmal die komplette (mehr oder weniger) Tabell von MySQL nach PHP schaufeln lassen, um dann in die Größe des Ergebnisses bestimmen zu können. (PHP-intern!)
Wenn man allerdings nur die Anzahl der Datensätzt braucht, oder nur einen Teil der Tabelle benötigt, sollte / muss man auf count() zurückgreifen.

Bonze am 14.03.06 19:42

mhh
hab wieder ein kleines prob, und zwar is wenn ich
function links($nachricht) {
$p[] = '"(( |^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
$r[] = '<a href="\1" target="_blank">\\1</a>';
$p[] = '"( |^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
$r[] = '\\1<a href="http://\2" target="_blank">\\2</a>';
$p[] = '"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})"i';
$r[] = '<a href="mailto:\1">\\1</a>';
$nachricht = preg_replace($p, $r, $nachricht);
return $nachricht;
}


bekomme ich diesen fehler
Fatal error: Cannot redeclare links() (previously declared in.... zeile 81, das ist die zeile wo function drin steht,.

milahu milahu am 14.03.06 19:51

http://www.google.de/search?q=Fatal+error%3A+Cannot+redeclare

Bonze am 14.03.06 20:07

das hat aberr damit nichts zu tun , oder is ja weder include noch require

milahu milahu am 14.03.06 20:21

Schön, dass du dich mit dem erstbesten von 408.000 Ergebnissen zufrieden gibst. :)
Aber versuche es doch bitte trotzdem Mal mit dem zweiten oder sogar dritten Ergebnis...

Michael Michael am 14.03.06 20:22

Meiner Meinung nach ist der Fehler aber sicher, dass die Funktion schon vorher deklariert wurde.
Du kannst den Fehler umgehen (NICHT lösen) wenn du einfach abfragst ob es die Funktion schon gibt:

if(!function_exists('links')) {
function linke() {
....
}
}


Allerdings rate ich den Fehler zu suchen. Wird der Codeteil vielleicht in einer Schleife aufgerufen?

Michael

Bonze am 14.03.06 20:30

mhh <?php
$query = mysql_query('SELECT * FROM `'.$mysql['table'].'` ORDER BY `id` DESC LIMIT 5 ');
// Das eigentliche auslesen
while($row = mysql_fetch_assoc($query)) {
#######uhrzeit umwandeln
$timestamp = $row['datum'];
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i",$timestamp);

function links($nachricht) {
$p[] = '"(( |^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
$r[] = '<a href="\1" target="_blank">\\1</a>';
$p[] = '"( |^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
$r[] = '\\1<a href="http://\2" target="_blank">\\2</a>';
$p[] = '"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})"i';
$r[] = '<a href="mailto:\1">\\1</a>';
$nachricht = preg_replace($p, $r, $nachricht);
return $nachricht;
}


$smilies = array(
':P' => 'zunge.gif',
':grrr:' => 'boese.gif',
':nanana:' => 'nanana.gif',
':harg:' => 'zaehne.gif',
':blabla:' => 'grins.gif',
':heul:' => 'heul.gif',
':traurig:' => 'traurig.gif',
':D' => 'lachen.gif',
':0' => 'nanana.gif',
':cool:' => 'cool.gif',
':)' => 'grins.gif',
';)' => 'zwinker.gif',
':frag:' => 'frag.gif'
);
foreach( $smilies as $code => $bild ) {
$row['nachricht'] = str_replace( $code, '<img src="'.$grafik.$bild.'" alt="'.$code.'" />', $row['nachricht'] );
}
?>

<table width="120" border="0" bgcolor="#FFFFFF">
<tr>
<td width="70"><font color="#0033FF"><a href="<?php echo stripslashes($row['hp']); ?>"><?php echo stripslashes($row['name']); ?></a></font></td>
<td width="42">&nbsp;</td>
</tr>
<tr>
<td height="23" colspan="2"><font color="#0033FF" size="-3"><?php echo $datum,"-",$uhrzeit,"Uhr"; ?>&nbsp;
</font><font color="#0033FF">&nbsp; </font></td>
</tr>
<tr>
<td colspan="2"><font color="#0033FF"><?php echo stripslashes($row['nachricht']); ?></font></td>
</tr>
</table>
<?php
} // End While

Michael Michael am 14.03.06 20:32

Da haben wir es doch. Du definierst die Funktion innerhalb der while Schleife, also bei jedem Durchlauf neu.
Definiere sie einfach vor der Schleife und der Fehler ist weg.

milahu milahu am 14.03.06 20:35

Oder Zeile 10 und 19 weg und statt $nachricht $row['nachricht'].
Davor müsstest du noch die Arrays $p und $r leeren mit$p = $r = array(); // Geht das überhaupt so dreckig..? :\denn sonst würden die ja bei jedem Durchlauf größer werden.

Bonze am 14.03.06 20:44

jo jetzt funkts :D hab mir schon gedacht das es was mit der while schleife zu tun hat ,. :(

Bonze am 14.03.06 20:47

jo jetzt funkts :D hab mir schon gedacht das es was mit der while schleife zu tun hat ,. :(
aba mal ne andere sache hier bekomm ich nen Parse error: syntax error in der zeile if($result->getRows())
<?php
$db = mysql_pconnect($mysql['host'], $mysql['user'], $mysql['pass']);
if(DB::isError($db))
{
die($db->getMessage());
}
$db->setFetchMode(DB_FETCHMODE_ASSOC);
$id = $_GET['id'];
$mysql['handle'] = mysql_pconnect($mysql['host'], $mysql['user'], $mysql['pass']);
mysql_select_db($mysql['root']);
$result = $db->query(sprintf('SELECT
*
FROM
downloads
WHERE
ID="%u"', $_GET['id']
)
if($result->getRows())
{
$row = $result->fetchRow("");
echo "<p>Voll die Fette Werbung damit der Traffic auch bezaht wird</p>";
#echo "<p>Starte des Downloads von '.$_SESSION['datei'].'</p>";
echo "<p>";
echo "<a href="'.$_SERVER['PHP_SELF'].'?="$id"">";
echo "Download starten";
echo "</a>";
echo "</p>";
}
elseif {
echo 'Kein Download mit dieser ID gefunden: '.$_GET['id'];
} else {
echo 'Bitte geben sie eine Download-ID an';
}

}
?>

Michael Michael am 14.03.06 20:56

Da fehlt ein Semikolon am Zeilenende nach der schließenden Klammer in der Zeile darüber.

Bonze am 14.03.06 21:05

mhh wenn ich da aber eins hinmache bekomm ich
Parse error: syntax error, unexpected ';'

Michael Michael am 14.03.06 21:10

Oh es fehl anscheinend auch noch eine Klammer:

$result = $db->query(sprintf('SELECT
*
FROM
downloads
WHERE
ID="%u"', $_GET['id']
));
if($result->getRows())

Bonze am 14.03.06 21:37

mhh dann bekomm ich aber immernoch nen Parse error: syntax error, unexpected '{', expecting '('
hier

) elseif (

Michael Michael am 14.03.06 21:42

} elseif(Bedingung) {
oder
} else {

Bonze am 14.03.06 21:50

mhh das gibts ja wohl nich .(

Parse error: syntax error, unexpected T_ELSE in } else {

echo "Download starten";
echo "</a>";
echo "</p>";
} else {
echo 'Kein Download mit dieser ID gefunden: '.$_GET['id'];
} else {
echo 'Bitte geben sie eine Download-ID an';
}


also das versteh nu wer will

Sven Sven am 14.03.06 22:23

:/
Wenn {
dann tu
} ansonsten {
tu
} ansonsten {
tu
}

Fällt dir die Logik auf?

Michael Michael am 14.03.06 22:48

ja das kann ja auch nicht gehen
if(Bedingung) {
...
} elseif(Bedingung) {
...
} else {
...
}

Es gibt genu einen IF und genau einen ELSE Teil. Dazwischen beliebig viele (auch keine) elseif. Jedes elseif braucht eine Bedingung - ansonsten hätte es auch keinen Sinn ;)

Bonze am 15.03.06 09:59

mhh hatt mich vielleicht falsch ausgedrückt,. das war nur ein ausschnitt,.huier ma das ganze, (hab alle klammern überprüft , aber irgendwie keinen fehler festgestellt,.

<?php
require ("config.php");


if(empty($_GET['id']))
{
// Verbindet zum MySQL-Server
$mysql['handle'] = mysql_pconnect($mysql['host'], $mysql['user'], $mysql['pass']);
// Und wählt die Datenbank aus
mysql_select_db($mysql['root']);
$query = mysql_query('SELECT * FROM `'.$mysql['table'].'` ORDER BY `id` DESC ');
// Das eigentliche auslesen
while($row = mysql_fetch_assoc($query)) {
#######uhrzeit umwandeln
$timestamp = $row['datum'];
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i",$timestamp);
?>
<table width="75%" border="1">
<tr>
<td>ID</td>
<td>Name</td>
<td>BESCH</td>
<td>Gr&ouml;&szlig;e</td>
<td>Klicks</td>
<td>Datum</td>
</tr>
<tr>
<td><? echo"$row[id]";?></td>
<td><? echo"$row[name]";?></td>
<td><? echo"$row[besch]";?></td>
<td><? echo"$row[size]";?></td>
<td><? echo"$row[klicks]";?></td>
<td><? echo"$row[datum]";?></td>
</tr>
</table>
<?php

}
} else {
$db = mysql_pconnect($mysql['host'], $mysql['user'], $mysql['pass']);
if(DB::isError($db))
{
die($db->getMessage());
}
$db->setFetchMode(DB_FETCHMODE_ASSOC);
$id = $_GET['id'];
$mysql['handle'] = mysql_pconnect($mysql['host'], $mysql['user'], $mysql['pass']);
mysql_select_db($mysql['root']);
$result = $db->query(sprintf('SELECT
*
FROM
downloads
WHERE
ID="%u"', $_GET['id']
)
);
if($result->getRows())

{
$row = $result->fetchRow();
echo "<p>Voll die Fette Werbung damit der Traffic auch bezaht wird</p>";
#echo "<p>Starte des Downloads von '.$_SESSION['datei'].'</p>";
echo "<p>";
#echo "<a href="'.$_SERVER['PHP_SELF'].'?=$id"'>";
echo "Download starten";
echo "</a>";
echo "</p>";
} else {
echo 'Kein Download mit dieser ID gefunden: '.$_GET['id'];
} else {
echo 'Bitte geben sie eine Download-ID an';
}
}//ende 1.else
?>

Bonze am 16.03.06 18:45

mhh keiner ne idee?

dookie dookie am 16.03.06 19:35

Quote
Original von Michael
ja das kann ja auch nicht gehen
if(Bedingung) {
...
} elseif(Bedingung) {
...
} else {
...
}

Es gibt genu einen IF und genau einen ELSE Teil. Dazwischen beliebig viele (auch keine) elseif. Jedes elseif braucht eine Bedingung - ansonsten hätte es auch keinen Sinn ;)


und jetzt schau dir die Zeilen 69 - 72 mal genauer an ;)

Bonze am 16.03.06 20:01

mhh hier isn fehler drin und muss geschen hab diesen teil aus nen tut rausgenommen

$result = $db->query(sprintf[/B]('SELECT
*
FROM
downloads
WHERE
ID="%u"', $_GET['id']
)
);

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt