SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 15.02.2009, 14:16:36
Sandra Sandra ist offline
Anfänger
 
Registriert seit: May 2006
Beiträge: 109
array aus db auslesen und array_count

Hallo,

ich habe folgendes Problem:
In der DB speicher ich die Datensätze von einer Frage mit mehreren Antwortmöglichkeiten wie folgt:
id=1
q5=5,1
id=2
q5=1
id=3
q5=6,7

Nun möchte ich diese auslesen und und gleichzeitig zählen wie viel mal die 1 usw. vorkommt.

Mit einem SQL statement mit Count bekomme ich nur die ersten Werte zusammengerechnen
PHP-Code:
SELECT q5 COUNT(q5)As summe name_lamb AS name,id_lamb FROM opinions LEFT JOIN lamb ON q5=id_lamb GROUP BY id_lamb 
Ergebnis
2x1 und nicht 3x1, also die Zahlen nach dem Komma werden nicht mitgerechnet.

Dann habe ich versucht alles mit php und array_merge, array_count_value auszulesen
PHP-Code:
<?php $array =array($row_rs_5['q5']);
    
$array2=array($row_rs_5['q5']);
    
$q5implode(","$array);
    
$result=array_merge($q5);
    
    
$zaehle array_count_values $result);

while ( list ( 
$key$val ) = each $zaehle ) )
{
    echo 
$key ' kommt ' $val ' mal vor.<br>';
}

?>
Ergebnis:
5,1 kommt 1 mal vor.
1 kommt 1 mal vor.

Was mache ich falsch? Hat Jemand eine Antwort?

Danke
Mit Zitat antworten
  #2  
Alt 15.02.2009, 14:32:30
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
AW: array aus db auslesen und array_count

Du speicherst die Daten falsch oder müsstest erst die Werte zerlegen.
5,1 ist ja keine Zahl sondern ein String. Somit kann 5,1 nie =1 sein.

Du müsstest also entweder die Ergebnisse anders in der Tabelle abspeichern, damit dort jeder Wert für sich steht oder nach dem Auslesen per PHP anhand des "," den Wert in ein Array zerlegen. Dann wäre 1 oder auch 5 für sich allein vorhanden.
Mit Zitat antworten
  #3  
Alt 15.02.2009, 14:40:38
Sandra Sandra ist offline
Anfänger
 
Registriert seit: May 2006
Beiträge: 109
AW: array aus db auslesen und array_count

Hallo,

das Zerlegen habe ich versucht mit
PHP-Code:
$q5implode(","$array); 
wird vollkommen ignoriert und auch mit
PHP-Code:
$q5str_replace(",",''$array); 
Ergebnis:
51 kommt 1 mal vor.
1 kommt 1 mal vor.

also er liest dann 51 anstelle von 5 und 1

Hat jemand noch eine Idee?

Danke
Mit Zitat antworten
  #4  
Alt 15.02.2009, 14:43:25
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
AW: array aus db auslesen und array_count

mit implode und in_array sollte es eigentlich gehen. str_replace ändert ja nichts an der Tatsache, daß auch 51 != 1 ist. :)
Mit Zitat antworten
  #5  
Alt 15.02.2009, 14:56:58
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
AW: array aus db auslesen und array_count

Ok, explode() statt implode. Hab mich selbst ablenken lassen.
PHP-Code:
<?php
$test 
= array(array('id'=>'1','q5' => '5,1'),array('id'=>'2','q5' => '1'),array('id' => '3','q5'=>'6,7'));
echo 
'<pre>';
var_dump($test);
echo 
'</pre>';
$eins '';
foreach(
$test as $val) {
$q5 explode(',',$val['q5']);
if(
in_array('1',$q5)) { $eins++;}
}
echo 
'die 1 ist '.$eins.' mal vorhanden';
?>
Das Sollte vereinfacht dein gewünschtes Ergebnis bringen.

Geändert von urvater (15.02.2009 um 14:57:29 Uhr)
Mit Zitat antworten
  #6  
Alt 15.02.2009, 15:21:06
Sandra Sandra ist offline
Anfänger
 
Registriert seit: May 2006
Beiträge: 109
AW: array aus db auslesen und array_count

Hallo,

danke hab das gemacht, hab aber immer noch nicht das gewünschte Ergebnis. Und zwar läuft jetzt die Daten aus DB richtig bekommen nicht ok
PHP-Code:
<?php 
$query 
sprintf("SELECT q5 AS q5,id_opinion AS id FROM opinions ");
        
$result mysql_query($query);  
     while (
$zeile mysql_fetch_object($result)) {  
               
$q5_n $zeile->q5"<br>";
    
$id $zeile->id"<br>";


$test = array('id'=>'$id','q5' => '$q5_n'); 
echo 
'<pre>'
var_dump($test); 
echo 
'</pre>'
$eins ''
foreach(
$test as $val) { 
$q5 explode(',',$val['q5']); 
if(
in_array('1',$q5)) { $eins++;} 

echo 
'die 1 ist '.$eins.' mal vorhanden'
}
?>
Ergebnis mit Wiederholung:
array(2) {
["id"]=>
string(3) "$id"
["q5"]=>
string(5) "$q5_n"
}
die 1 ist mal vorhanden

Sieht Jemand meinen Fehler?

Danke
Mit Zitat antworten
  #7  
Alt 15.02.2009, 16:03:23
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
AW: array aus db auslesen und array_count

Also ich habs schnell mal so getestet und es funktioniert.
PHP-Code:
/*function select($sqli="") {
if(empty($sqli)) { echo 'Falsche SQL-Anweisung!<br>'; return false; break;}
$result = mysql_query($sqli);
if(!$result) { return false; break;}
while($row = mysql_fetch_array($result)) {
$resultat[] = $row;
}
mysql_free_result($result);
return $resultat;
}*/

$query sprintf("SELECT * FROM options ");
$result $db->select($query);

echo 
'<pre>';
var_dump($result);
echo 
'</pre>';
$eins '';
foreach(
$result as $val) {
$q5 explode(',',$val['q5']);
if(
in_array('1',$q5)) { $eins++;}
}
echo 
'die 1 ist '.$eins.' mal vorhanden';

?> 
Acvhtung: Hab die Tabelle als options angelegt!Müsstest du deinem Script also anpassen.
Mit Zitat antworten
  #8  
Alt 15.02.2009, 16:12:26
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
AW: array aus db auslesen und array_count

Wenn ich nicht irre, dann müsste dies so bei dir funktionieren (ungetestet):
PHP-Code:
<?php

$query 
sprintf("SELECT q5 AS q5,id_opinion AS id FROM opinions ");
$result mysql_query($query);
while (
$zeile mysql_fetch_object($result)) {
$test[][q5] = $zeile->q5"<br>";
$test[][id] = $zeile->id"<br>";
}


echo 
'<pre>';
var_dump($test);
echo 
'</pre>';
$eins '';
foreach(
$test as $val) {
$q5 explode(',',$val['q5']);
if(
in_array('1',$q5)) { $eins++;}
}
echo 
'die 1 ist '.$eins.' mal vorhanden';

?>

Geändert von urvater (15.02.2009 um 16:14:12 Uhr)
Mit Zitat antworten
  #9  
Alt 15.02.2009, 16:33:59
Sandra Sandra ist offline
Anfänger
 
Registriert seit: May 2006
Beiträge: 109
AW: array aus db auslesen und array_count

Hallo,

danke für die viele Hilfe von dir und da ist bestimmt auch nur noch ein kleiner Fehler.
Ich habe deinen Code genommen und die DB Tabelle in meinen Tabellennamen geändert und anstelle von $db meinen DB namen genommen, bekomme nur leider immer noch eine Fehlermeldung:

PHP-Code:
$db=$database_my;
$query sprintf("SELECT * FROM opinions  "); 
$result $db->select($query); 
Fatal error: Call to a member function on a non-object

Vielleicht noch einen Fehler gesehen?
Mit Zitat antworten
  #10  
Alt 15.02.2009, 16:37:26
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
AW: array aus db auslesen und array_count

Zitat:
Zitat von Sandra Beitrag anzeigen
PHP-Code:
$db=$database_my;
$query sprintf("SELECT * FROM opinions  "); 
$result $db->select($query); 
Fatal error: Call to a member function on a non-object

Vielleicht noch einen Fehler gesehen?
select() ist bei mir als Funktion innerhalb der Klasse $db. Ich hab sie dir nur mitgepostet, damit du das Ergebnis besser nachvollziehen kannst.
Sollte $db bei dir keine Klasse sein in der die Funktion select() vorhanden ist muß es zu einem Fehler kommen.
Mit Zitat antworten
Antwort


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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Array sortieren Mathiis PHP Grundlagen 1 13.02.2009 14:29:20
Array formatiert ausgeben Faang PHP Grundlagen 3 15.08.2008 01:47:43
Array umstrukturieren Tikiwiki PHP Grundlagen 2 28.07.2008 13:24:28
Doppelte einträge aus einem Mehrdimensionalen Array aussortieren und löschen PHoenix_KM PHP für Fortgeschrittene und Experten 2 17.04.2008 18:19:53
Array wie Datenbank per ID auslesen conmunich PHP für Fortgeschrittene und Experten 3 29.08.2006 16:05:18


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:10:59 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt