Bestehende Codebasis als Ausgangsstand aufgenommen. - .gitignore: Kundendaten (uploads_*), Smarty-Compile-Cache (templates_c), Laufzeit-Temp und Datenbank-Dumps ausgeschlossen; Verzeichnisstruktur ueber .gitkeep erhalten - .gitattributes: Zeilenenden normalisiert (LF im Repo), Binaerformate markiert - db-backup.php: MySQL-Zugangsdaten kommen jetzt wie im Rest der Anwendung aus der externen Konfiguration statt hartkodiert aus der Datei; Passwort wird ueber eine temporaere Optionsdatei statt per Kommandozeile uebergeben, Fehler von mysqldump/gzip werden gemeldet, Aufraeumen aelterer Backups berechnet Jahr und Monat konsistent Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
50 lines
2.7 KiB
PHP
50 lines
2.7 KiB
PHP
<?php
|
|
|
|
require_once("./connectmysql.php");
|
|
|
|
if(!$err)
|
|
{
|
|
if($_GET["term"])
|
|
{
|
|
$qry = mysqli_query($dbconn,"SELECT MAX(artikel.id) AS id FROM artikel
|
|
JOIN artikeltyp ON typ_id = artikeltyp.id
|
|
WHERE artikel.bezeichn LIKE '".$_GET["term"]."%' AND dropdown = 1 AND YEAR(artikel.datetime) >= YEAR(NOW())-1 GROUP BY artikel.bezeichn") or die(mysqli_error($dbconn));
|
|
if($tmpres=mysqli_fetch_array($qry))
|
|
{
|
|
$innerqry = mysqli_query($dbconn,"SELECT artikel.bezeichn, artikel.typ_id, artikel.einheit_id, artikel.id, artikel_rechn.preis, artikel_rechn.rech_id, artikel_rechn.posnr FROM artikel
|
|
JOIN artikeltyp ON typ_id = artikeltyp.id
|
|
JOIN artikel_rechn ON artikel.id = art_id
|
|
WHERE artikel.id = ".$tmpres["id"]." ORDER BY artikel_rechn.art_id DESC LIMIT 1") or die(mysqli_error($dbconn));
|
|
$res = mysqli_fetch_array($innerqry);
|
|
echo "[ ";
|
|
echo '{"value": "'.$res[0].'","typ": "'.$res[1].'","einh": "'.$res[2].'","preis": "'.number_format($res[4],2,",","").'","eig":[';
|
|
$qry2 = mysqli_query($dbconn,"SELECT bezeichn, wert, einheit_id FROM eigensch
|
|
JOIN artikel_eigensch ON eig_id = eigensch.id
|
|
WHERE art_id='".$res[3]."' AND rech_id='".$res[5]."' AND artposnr = '".$res[6]."' ORDER BY posnr ASC");
|
|
if($res2 = mysqli_fetch_array($qry2))
|
|
echo '{"des":"'.$res2[0].'","val":"'.$res2[1].'", "einh":"'.$res2[2].'"}';
|
|
while($res2=mysqli_fetch_array($qry2))
|
|
echo ',{"des":"'.$res2[0].'","val":"'.$res2[1].'", "einh":"'.$res2[2].'"}';
|
|
echo ']}';
|
|
while($tmpres=mysqli_fetch_array($qry))
|
|
{
|
|
$innerqry = mysqli_query($dbconn,"SELECT artikel.bezeichn, artikel.typ_id, artikel.einheit_id, artikel.id, artikel_rechn.preis, artikel_rechn.rech_id, artikel_rechn.posnr FROM artikel
|
|
JOIN artikeltyp ON typ_id = artikeltyp.id
|
|
JOIN artikel_rechn ON artikel.id = art_id
|
|
WHERE artikel.id = ".$tmpres["id"]." ORDER BY artikel_rechn.art_id DESC LIMIT 1") or die(mysqli_error($dbconn));
|
|
$res = mysqli_fetch_array($innerqry);
|
|
echo ',{"value": "'.$res[0].'","typ": "'.$res[1].'","einh": "'.$res[2].'","preis": "'.number_format($res[4],2,",","").'","eig":[';
|
|
$qry2 = mysqli_query($dbconn,"SELECT bezeichn, wert, einheit_id FROM eigensch
|
|
JOIN artikel_eigensch ON eig_id = eigensch.id
|
|
WHERE art_id='".$res[0]."' AND rech_id='".$res[5]."' AND artposnr = '".$res[6]."' ORDER BY posnr ASC");
|
|
if($res2 = mysqli_fetch_array($qry2))
|
|
echo '{"des":"'.$res2[0].'","val":"'.$res2[1].'", "einh":"'.$res2[2].'"}';
|
|
while($res2=mysqli_fetch_array($qry2))
|
|
echo ',{"des":"'.$res2[0].'","val":"'.$res2[1].'", "einh":"'.$res2[2].'"}';
|
|
echo ']}';
|
|
}
|
|
echo "]";
|
|
}
|
|
}
|
|
}
|
|
?>
|