WinFuture-Forum.de: Datensätze Zählen - Php & Mysql - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Datensätze Zählen - Php & Mysql


#1 Mitglied ist offline   noONE 

  • Gruppe: Mitglieder
  • Beiträge: 7
  • Beigetreten: 16. August 05
  • Reputation: 0
  • Wohnort:Remscheid

  geschrieben 14. Februar 2006 - 15:05

Hallo Zusammen,

also ich habe folgendes vor, ich will wissen wieviele einträge in meiner Tabelle sind in denen unter name der jeweilige [SUCHBEGRIF] steht.

Folgender Code klappt bei mir nich. Ich bekomme immer eine "1" ausgegeben!

$counter = mysql_query("
	SELECT Count(*)
	as Anzahl
	FROM [TABELLE]
	WHERE name LIKE '[SUCHBEGRIF]'
");

$counter2 = mysql_fetch_array($counter);
echo "$counter2[Anzahl]<br>\n";


Gruß
Ivo

Dieser Beitrag wurde von noONE bearbeitet: 14. Februar 2006 - 15:06

0

Anzeige



#2 Mitglied ist offline   tobiasndw 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.815
  • Beigetreten: 24. September 03
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 14. Februar 2006 - 15:33

echo "Anzahl = ". mysql_num_rows($counter);
0

#3 Mitglied ist offline   noONE 

  • Gruppe: Mitglieder
  • Beiträge: 7
  • Beigetreten: 16. August 05
  • Reputation: 0
  • Wohnort:Remscheid

geschrieben 14. Februar 2006 - 16:23

danke für die schnelle antwort!

klappt aber leider nicht! bekomme trotzdem nur ein 1 ausgegeben!
0

#4 Mitglied ist offline   pSyCHo_SolDiEr 

  • Gruppe: aktive Mitglieder
  • Beiträge: 847
  • Beigetreten: 19. Februar 04
  • Reputation: 0
  • Wohnort:Unterfranken

geschrieben 14. Februar 2006 - 17:30

Liefert dir dein Query überhaupt vernünftige Daten zurück? Sprich hast du dir dass Ergebniss schon mal ausgeben lassen?
Eingefügtes Bild
0

#5 Mitglied ist offline   tobiasndw 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.815
  • Beigetreten: 24. September 03
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 14. Februar 2006 - 18:44

Ändere dein Abfrage mal in:

SELECT * FROM [TABELLE] WHERE name LIKE '[SUCHBEGRIF]'

und mit "mysql_num_rows($result)" bekommst du dann die Anzahl der gefundenen Einträge
0

#6 Mitglied ist offline   mo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.796
  • Beigetreten: 17. Juni 02
  • Reputation: 0
  • Wohnort:Ulm / BaWü

geschrieben 15. Februar 2006 - 11:24

omg, das ist ja von hinten durch die brust! erst alle datensätze holen (auch noch mit allen feldern), dann die lahme skriptsprache die datensätze zählen lassen.

lass doch die datenbank die arbeit machen:

Zitat

// no errorhandling :)
$resultset = mysql_query ( "SELECT COUNT(*) FROM table WHERE name LIKE 'supisuchi'";
$anzahl = mysql_fetch_row ( $resultset );
print ( "Anzahl...:".$anzahl[0]."<Br\>\n");

mysql_fetch_row sollte schneller sein als mysql_fetch_array, mit nur einem feld gibts auch keine verwechslungsgefahr...

grüsse,
mo
ps: im ersten beispiel sprichst du hash-arrays ganz komisch an ... versuchs doch mal mit $hasharray["feldname"].
I'm mó. mo's good twin.
0

#7 Mitglied ist offline   Xfer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 22
  • Beigetreten: 06. Mai 04
  • Reputation: 0
  • Wohnort:Hessen

geschrieben 15. Februar 2006 - 12:26

Beitrag anzeigenZitat (tobiasndw: 14.02.2006, 18:44)

Ändere dein Abfrage mal in:

SELECT * FROM [TABELLE] WHERE name LIKE '[SUCHBEGRIF]'

und mit "mysql_num_rows($result)" bekommst du dann die Anzahl der gefundenen Einträge


hi,

SELECT COUNT(*) FROM [TABELLE] WHERE name LIKE '[SUCHBEGRIF]'

ist schon richtig zum Zählen der Datensätze, das Abfragen der Daten und anschließende zählen mit mysql_num_rows belastet den Server viel mehr.

evl. solltest du es mal mit ... LIKE '%SUCHBEGRIFF%' ... versuchen % = Wildcard

cu
Xfer

Dieser Beitrag wurde von Xfer bearbeitet: 15. Februar 2006 - 12:27

0

#8 Mitglied ist offline   noONE 

  • Gruppe: Mitglieder
  • Beiträge: 7
  • Beigetreten: 16. August 05
  • Reputation: 0
  • Wohnort:Remscheid

geschrieben 15. Februar 2006 - 23:55

 
<?
$abfrage = "SELECT * FROM kategorie ORDER BY id";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{

$result = mysql_query("SELECT Count(*) FROM kategorie WHERE name LIKE '%$row->name%'");
echo mysql_num_rows($result);

echo "<a href=\"index.php?goto=Links02&kat=$row->name\">$row->name</a><br>\n";
echo "<br>\n";

}
?>


^^ so sieht mein script momentan komplett aus... und bei "echo mysql_num_rows($result);" gibt der mir immer noch nur die 1 aus :-/ ich bin am verzweifelen!

@mo
$resultset = mysql_query ( "SELECT COUNT(*) FROM kategorie WHERE name LIKE '$row->name'" );
$anzahl = mysql_fetch_row ( $resultset );
print ( "Anzahl...:".$anzahl[0]."<Br\>\n");


^^ des hab ich auch ausprobiert und da bekomme ich auch nur ne 1 ausgegeben...

Gruß
Ivo

Dieser Beitrag wurde von noONE bearbeitet: 16. Februar 2006 - 00:06

0

#9 Mitglied ist offline   mo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.796
  • Beigetreten: 17. Juni 02
  • Reputation: 0
  • Wohnort:Ulm / BaWü

geschrieben 16. Februar 2006 - 07:38

Ivo, du kannst doch nicht einfach wie wild pointer mitten im text verwenden... php versucht das zwar irgendwie rauszusuchen, aber ne gute idee ist das sicher nicht.

versuchs doch mal so...
$resultset = mysql_query ( "SELECT COUNT(*) FROM kategorie WHERE name LIKE '".$row->name."'" );
I'm mó. mo's good twin.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0