return 'Sie können nicht auf eigene Items bieten';
}
// Nun erstmal pruefen ob noch geboten werden kann
if($zeitdifferenz <0){
return 'Deadline abgelaufen!';
}
// Was ist das aktuelle startgebot?? Rufe die Funktion auf!
$klGebot = aktuellesMindestgebot($auktionsid);
if($klGebot == -1){
return 'Fehler beim Bieten aufgetreten';
}
if($gebot < $klGebot){
return 'Es muss mindestens '.$klGebot.' geboten werden';
}
//Nun muss noch geprueft werden ob der User genug Geld hat und auch mit allen Geboten gesamt nicht in den Minusbereich kommt
$user_a = mysql_fetch_assoc(mysql_query('SELECT nickname, geld FROM user WHERE id = '.$userid));
$usermoney = $user_a['geld'];
$auktionensumme = mysql_fetch_assoc(mysql_query('SELECT SUM(aktuellesgebot) as summe FROM auktion WHERE bieter = '.$userid.' AND auktionsid != '.$auktionsid.' GROUP BY bieter'));
$auktionensumme = $auktionensumme['summe'];
if($usermoney < $auktionensumme + $gebot){
return 'Nicht genug Geld!';
}
//Wenn 10 minuten vor Deadline-ende geboten wird wird die deadline um 10 Minuten verschoben
if($zeitdifferenz <10){
mysql_query('UPDATE auktion SET bieter='.$userid.', aktuellesgebot='.$gebot.', deadline=TIMESTAMPADD(Minute,10,TIMESTAMPADD(Second,-second(now()),now())) WHERE auktionsid='.$auktionsid);
// Speichern der neuen deadline in die deadlinevariable
$res_deadline = mysql_fetch_assoc(mysql_query('SELECT deadline FROM auktion WHERE auktionsid = '.$auktionsid));
$deadline = $res_deadline['deadline'];
} else{
// Ansonsten nur die Grundwerte
mysql_query('UPDATE auktion SET bieter='.$userid.', aktuellesgebot='.$gebot.' WHERE auktionsid='.$auktionsid);
}
// Nun noch den aktuellen bieter eine Nachricht senden
sendMessage('Auktionsmarkt', $bieter, 'Überboten worden', 'Sie sind von '.$user_a['nickname'].' überboten worden, er bietet '.$gebot.' für das Item '.debbcode($itemname).'. Deadline: '.$deadline.' Link: [url='.$GLOBALS['server_url_long'].'/ag/index.php?as=auktion&action=1&auktionsid='.$auktionsid.']Auktion[/url]');
// mysql_query($new_query);
// echo '<br><br>'.$new_query.'<br><br>';
return ''; // Leerer String, also kein Fehler!
}
// Funktion erstellt die Optionen die Auswahl
// Returns items mit Anzahl die der User verkaufen kann
// @Return String-Array
function getItemOptions($userid,$preselected){
$result = NULL;
$index = 0;
// Die etwas abgewandelten SQL-Querys aus dem Onlinemarkt (MEGA-QUERY)
$query = 'SELECT i.id, i.name, count(i.id) AS anzahl, \'ware\' as tablename FROM ware w INNER JOIN item i ON(i.id=w.item_id) WHERE w.user = '.$userid.' AND s_type = \'Trank\' GROUP BY i.id
union
SELECT i.id, i.name,count(i.id) AS anzahl, \'sp_ware\' as tablename FROM sp_ware w INNER JOIN sp_item i ON(i.id=w.item) WHERE w.user = '.$userid.' GROUP BY i.id
union
SELECT i.id, i.item AS name, count(i.id) AS anzahl, \'wochen_ware\' as tablename FROM wochen_ware w INNER JOIN wochen_markt i ON(i.id=w.item) WHERE w.user = '.$userid.' GROUP BY (i.id)';
$qry = mysql_query($query);
// Damit waeren alle noetigen Datenbankaufrufe erledigt!
return 'Es muss ein gültiges Gebot abgegeben werden.';
}
$startgebot = floor($startgebot);
if(!is_numeric($anzahl) || floor($anzahl) <= 0){
return 'Es muss eine gültige Anzahl angegeben werden.';
}
$anzahl = floor($anzahl);
preg_replace('#,#','',$id_db_mix); // Entferne die Gefaehrlichen \' !!!
$mix_explode = explode(',',$id_db_mix);
$id = $mix_explode[0]; // ID des items
$db = getDatabaseAdditions($mix_explode[1]); // Datenbank die das Item speichert, mit samt den Zusatzinformationen abholen
// Nun die Anzahl vergleichen
$test = 'SELECT count(i.id) AS anzahl FROM '.$db[0].' as w INNER JOIN '.$db[1].' as i ON(i.id=w.'.$db[2].') where w.user= '.$userid.' AND i.id = '.$id;
function getAuktionTotalCount($kategorie,$itemnamepart,$maxPrice){
// vorbereiten der uebergabevariablen zu sicherheitszwecken
$priceDelimiter = '';
$kategorieDelimitier ='';
$stringDelimiter = '';
if($maxPrice > 0){
$priceDelimiter = ' AND startgebot <= '.$maxPrice.' AND (aktuellesgebot IS NULL OR aktuellesgebot <= '.$maxPrice.') ';
}
if($kategorie == 'wochen_ware' OR $kategorie == 'ware' OR $kategorie == 'sp_ware'){
$kategorieDelimitier = ' AND tablename = \''.$kategorie.'\' ';
}
if($itemnamepart != NULL && $itemnamepart != ''){
$stringDelimiter = ' AND itemname LIKE \'%'.$itemnamepart.'%\' ';
}
$test = 'SELECT count(auktionsid) as anzahl FROM auktion WHERE 1 '.$kategorieDelimitier.$stringDelimiter.$priceDelimiter.' AND TIMESTAMPDIFF(Minute,now(),deadline) >= 0';
$qry = mysql_query($test);
if(mysql_num_rows($qry) == 0){
return 0;
}
$result = mysql_fetch_assoc($qry);
return $result['anzahl'];
}
function getAuktionEntries($kategorie,$itemnamepart,$entriesPerSite,$pageNumber,$maxPrice,$order,$dir){
// vorbereiten der uebergabevariablen zu sicherheitszwecken
$priceDelimiter = ' AND startgebot <= '.$maxPrice.' AND (aktuellesgebot IS NULL OR aktuellesgebot <= '.$maxPrice.') ';
}
if($kategorie == 'wochen_ware' OR $kategorie == 'ware' OR $kategorie == 'sp_ware'){
$kategorieDelimitier = ' AND tablename = \''.$kategorie.'\' ';
}
if($itemnamepart != NULL && $itemnamepart != ''){
$stringDelimiter = ' AND itemname LIKE \'%'.$itemnamepart.'%\' ';
}
$index = 0;
$test = 'SELECT a.auktionsid, u.nickname AS anbietername, u2.nickname AS bietername, a.deadline, a.aktuellesgebot, a.startgebot, a.anzahl, a.itemname, a.bieter, a.anbieter, a.itemid, a.tablename FROM auktion AS a INNER JOIN user as u ON a.anbieter = u.id LEFT JOIN user as u2 ON a.bieter = u2.id WHERE 1 '.$kategorieDelimitier.$stringDelimiter.$priceDelimiter.' AND TIMESTAMPDIFF(Minute,now(),deadline) >= 0 ORDER BY '.$order.' '.$dir.' '.$interval;
$qry = mysql_query($test);
//echo '<br>'.$test.'<br>';
while($result = mysql_fetch_assoc($qry)){
$returnArray[$index++] = $result;
}
return $returnArray;
}
function getEntryInformation($auktionsid){
if(!is_numeric($auktionsid)){return;}
$qry = mysql_query('SELECT u.nickname AS anbietername, u2.nickname AS bietername, a.auktionsid,a.anbieter,a.bieter,a.itemid,a.itemname,a.tablename,a.anzahl,a.startgebot,a.aktuellesgebot,a.deadline,a.startdate,a.cheatingverdacht, TIMESTAMPDIFF(Minute,now(),deadline) AS zeitdifferenz FROM auktion AS a INNER JOIN user as u ON a.anbieter = u.id LEFT JOIN user as u2 ON a.bieter = u2.id WHERE auktionsid = '.$auktionsid);
$sql = 'INSERT INTO '.$auktionsdaten['tablename'].' ('.$item_row_name.', user) VALUES('.$auktionsdaten['itemid'].','.$userid.')';
mysql_query($sql);
// echo '<br>'.$sql.'<br>';
}
$sql = 'INSERT INTO nachricht(von, besitzer, betreff, text) VALUES (\'Auktionsmarkt\', '.$auktionsdaten['anbieter'].', \'Item zurückgezogen!\', \' Sie haben das Item '.$auktionsdaten['itemname'].' für eine Gebühr von '.$gebuehr.' zurückgezogen!\')';
mysql_query($sql);
// echo '<br>'.$sql.'<br>';
if($auktionsdaten['bieter'] != NULL){
$sql = 'INSERT INTO nachricht(von, besitzer, betreff, text) VALUES (\'Auktionsmarkt\', '.$auktionsdaten['bieter'].', \'Item zurückgezogen!\', \' Das Item '.$auktionsdaten['itemname'].' wurde von '.$auktionsdaten['anbietername'].' zurückgezogen!\')';
mysql_query($sql);
// echo '<br>'.$sql.'<br>';
}
}
function getAveragePrice($itemid, $tablename, $anzahl){
$sql = 'SELECT avg(betrag) / avg(anzahl) AS average FROM auktion_transaktionen WHERE anbieter != 1 and itemid = '.$itemid.' and tablename = \''.$tablename.'\' and cheatingverdacht = 0 and TIMESTAMPADD(DAY,30,deadline) > CURRENT_TIMESTAMP';