CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
08.02.2007, 17:34:29
|
Anfänger
|
|
Registriert seit: Apr 2006
Beiträge: 17
|
|
Lücken beim Lesen einer Tabelle füllen
Ich habe das Problem, dass meine Listennummern (!=IDs!) nicht fortlaufend sind. Um heraus zu bekommen, wo die Lücken sind, möchte ich eine HTML-Tabelle erstellen, die etwa so aussieht:
Mitgliedsnummer 1---
Mitgliedsnummer 2 Username1, Telephon1 (aus DB)
Mitgliedsnummer 3 Username2, Telephon2 (aus DB)
Mitgliedsnummer 4 Username3, Telephon3 (aus DB)
Mitgliedsnummer 5---
Mitgliedsnummer 6 Username4, Telephon4 (aus DB)
. . .
Erster Ansatz war eine Schleife von 0 bis 100, aber wie bekomme ich die vorhandenen Miglieder aus der SQL-Datenbank hineingemischt?
Zweiter Ansatz war ein zweidimensionaler Array, aber da war das Mischproblem auch.
wo hängts?
Geändert von CharlesT (08.02.2007 um 18:15:28 Uhr)
|
08.02.2007, 18:50:16
|
Member
|
|
Registriert seit: Aug 2005
Beiträge: 644
|
|
AW: Lücken beim Lesen einer Tabelle füllen
Zitat:
Erster Ansatz war eine Schleife von 0 bis 100, aber wie bekomme ich die vorhandenen Miglieder aus der SQL-Datenbank hineingemischt?
|
Indem du bei jedem Schleifendurchlauf ein neues Query mit "WHERE id = '$laufvariable'" durchführst und dann entweder das Ergebnis ausgibst oder - wenn nichts zurückkommst - nichts ausgibst.
Ne mySQL Lösung fällt mir jetzt auch nicht ein ...
Theoretisch könnte man die Tabelle per left join an eine Tabelle joinen, die nur aus fortlaufenden ids besteht ... aber dann müsste man sich halt auch erstmal so ne Tabelle machen.
|
08.02.2007, 20:00:53
|
Anfänger
|
|
Registriert seit: Apr 2006
Beiträge: 17
|
|
AW: Lücken beim Lesen einer Tabelle füllen
Oder ich erstelle vorab einen zweidimensionalen Array von
[1][1], [1][2] ...
bis
[100][1], [100],[2]
Danach die Datenbank wie bei http://www.selfphp.de/forum/showpost...22&postcount=2 einlesen. und die entsprechenden Daten ersetzen.
|
09.02.2007, 10:08:51
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Lücken beim Lesen einer Tabelle füllen
Wenn du MySQL ab Version 5.0 verwendest, müsstest du dir so etwas auch mit Triggern bauen können, so dass bei jeder DELETE-Query automatisch die entstandene Lücke korrigiert wird.
|
09.02.2007, 11:03:34
|
Member
|
|
Registriert seit: Oct 2006
Beiträge: 610
|
|
AW: Lücken beim Lesen einer Tabelle füllen
Zitat:
ch habe das Problem, dass meine Listennummern (!=IDs!) nicht fortlaufend sind.
|
Du willst doch aber hoffentlich nicht die Nummern ändern, oder?
Um die leeren Nummern zu finden bietet sich an:
PHP-Code:
<?php include "mysql.inc.php"; $sql="select * from mitglieder order by mitgliedsnummer"; $result=mysql_query($sql) or die(mysql_error()); $zaehler=1; while ($row = mysql_fetch_assoc($result)) { $id=$row['mitgliedsnummer']; while($zaehler<$id) { echo $zaehler . " ---Leer--- <br>\r\n"; $zaehler++; } echo $zaehler . " " . $row['mitlgliesname'] . "<br>\r\n"; $zaehler++; } ?>
Eine einzige Query reicht da aus..
Geändert von BenniG. (09.02.2007 um 11:03:56 Uhr)
|
09.02.2007, 16:06:52
|
Anfänger
|
|
Registriert seit: Apr 2006
Beiträge: 17
|
|
AW: Lücken beim Lesen einer Tabelle füllen
Zitat:
Zitat von BenniG.
Du willst doch aber hoffentlich nicht die Nummern ändern, oder?
Um die leeren Nummern zu finden bietet sich an:
PHP-Code:
<?php include "mysql.inc.php"; $sql="select * from mitglieder order by mitgliedsnummer"; $result=mysql_query($sql) or die(mysql_error()); $zaehler=1; while ($row = mysql_fetch_assoc($result)) { $id=$row['mitgliedsnummer']; while($zaehler<$id) { echo $zaehler . " ---Leer--- <br>\r\n"; $zaehler++; } echo $zaehler . " " . $row['mitlgliesname'] . "<br>\r\n"; $zaehler++; } ?>
Eine einzige Query reicht da aus..
|
Ja!!! Ich habe es noch ein wenig angepasst und in ein PDF-File integriert:
PHP-Code:
$result=mysql_query($query) or die(mysql_error()); $zaehler=1; while ($row = mysql_fetch_assoc($result)) { $id=$row['listennummer']; while($zaehler<$id) { if ($zaehler>=50) { $pdf->Cell(8,5,$zaehler,1,0,R); $pdf->Cell(30,5,' ',1,0,L); $pdf->Cell(40,5,' ',1,0,L); $pdf->Cell(40,5,' ',1,0,L); $pdf->Cell(20,5,' ',1,0,L); $pdf->Cell(40,5,' ',1,0,L); $pdf->Cell(8,5,' ',1,1,L); } $zaehler++; } if (isset($row['listennummer'])) { $listennummer = $row['listennummer']; $runID = $row['runID']; $vorname = $row['vorname']; $nachname = $row['nachname']; $strasse = $row['strasse']; $plz = $row['plz']; $ort = $row['ort']; $telefon = $row['telefon']; $vorwahl = $row['vorwahl']; $email = $row['email']; $bezahlt = $row['bezahlt']; $pdf->Cell(8,5,$listennummer,1,0,R); $pdf->Cell(30,5,$nachname.', '.$vorname,1,0,L); $pdf->Cell(40,5,$strasse,1,0,L); $pdf->Cell(40,5,$plz.' '.$ort,1,0,L); $pdf->Cell(20,5,'('.$vorwahl.') '.$telefon,1,0,L); $pdf->Cell(40,5,$email,1,0,L); $pdf->Cell(8,5,$bezahlt,1,1,L); } $zaehler++; }
Da die Nummern erst bei 50 beginnen, und manche Einträge ohne Nummern vorhanden sind, habe ich noch ein paar IFs eingefügt. Jetzt passt es!
Vielen herzlichen Dank!
Geändert von CharlesT (09.02.2007 um 16:09:40 Uhr)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 02:38:39 Uhr.
|